From 7602a54309adbe5c5346ee6befecc2e596976504 Mon Sep 17 00:00:00 2001 From: mbeierl Date: Tue, 11 Jul 2017 15:12:35 -0400 Subject: [PATCH] Change all paths Changes the paths of all source code so that it exists under the dockerfile location for each container. This way we can use COPY instead of git clone, as well as use the existing JJB. Change-Id: I883b2957d89659c164fff0a1ebc4d677c534796d JIRA: STORPERF-188 Signed-off-by: mbeierl --- ci/setup.py | 43 ----------------- ci/verify.sh | 38 ++++++++++----- docker-compose/docker-compose.yaml | 29 ++++++----- docker/Dockerfile-httpfrontend | 25 ++++++++++ docker/{Dockerfile => Dockerfile-master} | 56 +++++++--------------- .../Dockerfile => docker/Dockerfile-reporting | 13 +++-- docker/storperf-httpfrontend/html/index.html | 14 ++++++ .../storperf-httpfrontend}/nginx.conf | 11 +++-- docker/{ => storperf-master}/requirements.pip | 0 .../storperf-master/rest_server.py | 4 +- .../storperf-master/storperf}/__init__.py | 0 .../storperf-master/storperf}/carbon/__init__.py | 0 .../storperf-master/storperf}/carbon/converter.py | 0 .../storperf-master/storperf}/carbon/emitter.py | 0 .../storperf-master/storperf}/db/__init__.py | 0 .../storperf}/db/configuration_db.py | 0 .../storperf-master/storperf}/db/graphite_db.py | 0 .../storperf-master/storperf}/db/job_db.py | 0 .../storperf}/db/test_results_db.py | 0 .../storperf-master/storperf}/fio/__init__.py | 0 .../storperf-master/storperf}/fio/fio_invoker.py | 0 .../storperf-master/storperf}/logging.json | 0 .../storperf}/resources/hot/agent-group.yaml | 0 .../storperf}/resources/hot/storperf-agent.yaml | 0 .../storperf}/resources/ssh/storperf_rsa | 0 .../storperf}/resources/ssh/storperf_rsa.pub | 0 .../storperf-master/storperf}/storperf_master.py | 0 .../storperf-master/storperf}/test_executor.py | 0 .../storperf}/utilities/__init__.py | 0 .../storperf}/utilities/data_handler.py | 0 .../storperf}/utilities/data_treatment.py | 0 .../storperf}/utilities/dictionary.py | 0 .../storperf-master/storperf}/utilities/math.py | 0 .../storperf}/utilities/steady_state.py | 0 .../storperf}/utilities/thread_gate.py | 0 .../storperf}/workloads/__init__.py | 0 .../storperf}/workloads/_base_workload.py | 0 .../storperf}/workloads/_ssd_preconditioning.py | 0 .../storperf}/workloads/_warm_up.py | 0 .../storperf-master/storperf}/workloads/rr.py | 0 .../storperf-master/storperf}/workloads/rs.py | 0 .../storperf-master/storperf}/workloads/rw.py | 0 .../storperf-master/storperf}/workloads/wr.py | 0 .../storperf-master/storperf}/workloads/ws.py | 0 docker/{ => storperf-master}/supervisord.conf | 11 +---- .../storperf-master/tests}/__init__.py | 0 .../tests}/carbon_tests/__init__.py | 0 .../tests}/carbon_tests/emitter_test.py | 0 .../tests}/carbon_tests/json_to_carbon_test.py | 0 .../storperf-master/tests}/db_tests/__init__.py | 0 .../tests}/db_tests/configuration_db_test.py | 14 ++++-- .../tests}/db_tests/graphite_db_test.py | 0 .../storperf-master/tests}/db_tests/job_db_test.py | 7 ++- .../storperf-master/tests}/fio_tests/__init__.py | 0 .../tests}/fio_tests/fio_invoker_test.py | 0 .../storperf-master/tests}/storperf_master_test.py | 18 +++++-- .../tests}/utilities_tests/__init__.py | 0 .../tests}/utilities_tests/data_handler_test.py | 0 .../tests}/utilities_tests/data_treatment_test.py | 0 .../tests}/utilities_tests/dictionary_test.py | 0 .../tests}/utilities_tests/math_average_test.py | 0 .../tests}/utilities_tests/math_range_test.py | 0 .../tests}/utilities_tests/math_slope_test.py | 0 .../tests}/utilities_tests/steady_state_test.py | 0 .../tests}/utilities_tests/thread_gate_test.py | 0 .../tests}/workload_tests/__init__.py | 0 .../workload_tests/workload_subclass_test.py | 0 .../storperf-reporting}/requirements.txt | 0 docker/storperf-reporting/src/app.py | 38 +++++++++++++++ .../src/static/css/bootstrap.min.css | 0 .../storperf-reporting}/src/static/js/Chart.min.js | 0 .../src/static/js/bootstrap.min.js | 0 .../src/static/js/jquery-2.1.3.min.js | 0 .../src/static/js/jquery.bootpag.min.js | 0 .../src/static/js/plotly-latest.min.js | 0 .../storperf-reporting}/src/templates/index.html | 0 .../src/templates/plot_tables.html | 0 reporting/docker/app.py | 9 ---- reporting/docker/src/app.py | 28 ----------- 79 files changed, 186 insertions(+), 172 deletions(-) delete mode 100755 ci/setup.py create mode 100644 docker/Dockerfile-httpfrontend rename docker/{Dockerfile => Dockerfile-master} (73%) rename reporting/docker/Dockerfile => docker/Dockerfile-reporting (79%) create mode 100644 docker/storperf-httpfrontend/html/index.html rename {docker-compose => docker/storperf-httpfrontend}/nginx.conf (71%) rename docker/{ => storperf-master}/requirements.pip (100%) rename rest_server.py => docker/storperf-master/rest_server.py (99%) rename {storperf => docker/storperf-master/storperf}/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/carbon/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/carbon/converter.py (100%) rename {storperf => docker/storperf-master/storperf}/carbon/emitter.py (100%) rename {storperf => docker/storperf-master/storperf}/db/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/db/configuration_db.py (100%) rename {storperf => docker/storperf-master/storperf}/db/graphite_db.py (100%) rename {storperf => docker/storperf-master/storperf}/db/job_db.py (100%) rename {storperf => docker/storperf-master/storperf}/db/test_results_db.py (100%) rename {storperf => docker/storperf-master/storperf}/fio/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/fio/fio_invoker.py (100%) rename {storperf => docker/storperf-master/storperf}/logging.json (100%) rename {storperf => docker/storperf-master/storperf}/resources/hot/agent-group.yaml (100%) rename {storperf => docker/storperf-master/storperf}/resources/hot/storperf-agent.yaml (100%) rename {storperf => docker/storperf-master/storperf}/resources/ssh/storperf_rsa (100%) rename {storperf => docker/storperf-master/storperf}/resources/ssh/storperf_rsa.pub (100%) rename {storperf => docker/storperf-master/storperf}/storperf_master.py (100%) rename {storperf => docker/storperf-master/storperf}/test_executor.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/data_handler.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/data_treatment.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/dictionary.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/math.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/steady_state.py (100%) rename {storperf => docker/storperf-master/storperf}/utilities/thread_gate.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/__init__.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/_base_workload.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/_ssd_preconditioning.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/_warm_up.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/rr.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/rs.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/rw.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/wr.py (100%) rename {storperf => docker/storperf-master/storperf}/workloads/ws.py (100%) rename docker/{ => storperf-master}/supervisord.conf (78%) rename {tests => docker/storperf-master/tests}/__init__.py (100%) rename {tests => docker/storperf-master/tests}/carbon_tests/__init__.py (100%) rename {tests => docker/storperf-master/tests}/carbon_tests/emitter_test.py (100%) rename {tests => docker/storperf-master/tests}/carbon_tests/json_to_carbon_test.py (100%) rename {tests => docker/storperf-master/tests}/db_tests/__init__.py (100%) rename {tests => docker/storperf-master/tests}/db_tests/configuration_db_test.py (86%) rename {tests => docker/storperf-master/tests}/db_tests/graphite_db_test.py (100%) rename {tests => docker/storperf-master/tests}/db_tests/job_db_test.py (98%) rename {tests => docker/storperf-master/tests}/fio_tests/__init__.py (100%) rename {tests => docker/storperf-master/tests}/fio_tests/fio_invoker_test.py (100%) rename {tests => docker/storperf-master/tests}/storperf_master_test.py (88%) rename {tests => docker/storperf-master/tests}/utilities_tests/__init__.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/data_handler_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/data_treatment_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/dictionary_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/math_average_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/math_range_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/math_slope_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/steady_state_test.py (100%) rename {tests => docker/storperf-master/tests}/utilities_tests/thread_gate_test.py (100%) rename {tests => docker/storperf-master/tests}/workload_tests/__init__.py (100%) rename {tests => docker/storperf-master/tests}/workload_tests/workload_subclass_test.py (100%) rename {reporting/docker => docker/storperf-reporting}/requirements.txt (100%) create mode 100644 docker/storperf-reporting/src/app.py rename {reporting/docker => docker/storperf-reporting}/src/static/css/bootstrap.min.css (100%) rename {reporting/docker => docker/storperf-reporting}/src/static/js/Chart.min.js (100%) rename {reporting/docker => docker/storperf-reporting}/src/static/js/bootstrap.min.js (100%) rename {reporting/docker => docker/storperf-reporting}/src/static/js/jquery-2.1.3.min.js (100%) rename {reporting/docker => docker/storperf-reporting}/src/static/js/jquery.bootpag.min.js (100%) rename {reporting/docker => docker/storperf-reporting}/src/static/js/plotly-latest.min.js (100%) rename {reporting/docker => docker/storperf-reporting}/src/templates/index.html (100%) rename {reporting/docker => docker/storperf-reporting}/src/templates/plot_tables.html (100%) delete mode 100644 reporting/docker/app.py delete mode 100644 reporting/docker/src/app.py diff --git a/ci/setup.py b/ci/setup.py deleted file mode 100755 index d40ef9f..0000000 --- a/ci/setup.py +++ /dev/null @@ -1,43 +0,0 @@ -############################################################################## -# Copyright (c) 2015 EMC and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -from setuptools import setup, find_packages - - -setup( - name="storperf", - version="0.dev0", - packages=find_packages(), - include_package_data=True, - package_data={ - 'storperf': [ - 'storperf/resources/hot/*' - ] - }, - url="https://www.opnfv.org", - install_requires=["flask==0.10", - "flask-restful==0.3.5", - "flask-restful-swagger==0.19", - "html2text==2016.1.8", - "python-cinderclient==1.6.0", - "python-glanceclient==1.1.0", - "python-heatclient==0.8.0", - "python-keystoneclient==1.6.0", - "python-neutronclient==2.6.0", - "python-novaclient==2.28.1", - "pyyaml==3.10", - "requests==2.13.0", - "six==1.10.0" - ], - entry_points={ - 'console_scripts': [ - 'storperf=storperf.main:main', - ], - } -) diff --git a/ci/verify.sh b/ci/verify.sh index feb84d2..cd5bbbb 100755 --- a/ci/verify.sh +++ b/ci/verify.sh @@ -45,19 +45,35 @@ pip install requests==2.13.0 pip install scp==0.10.2 pip install six==1.10.0 -python ci/setup.py develop - -flake8 storperf +final_rc=0 +flake8 docker/storperf-* flake8rc=$? -nosetests --with-xunit \ - --with-coverage \ - --cover-package=storperf\ - --cover-xml \ - --cover-html \ - tests -rc=$? +for testdir in docker/storperf-* +do + if [ -d $testdir/tests ] + then + cwd=$(pwd) + cd $testdir + + nosetests --with-xunit \ + --with-coverage \ + --cover-package=storperf\ + --cover-xml \ + --cover-html \ + tests + rc=$? + if [ $rc -ne 0 ] + then + final_rc=$rc + fi + cd $cwd + fi +done + +cp ./docker/storperf-master/coverage.xml . +cp ./docker/storperf-master/nosetests.xml . deactivate @@ -67,4 +83,4 @@ then exit $flake8rc fi -exit $rc +exit $final_rc diff --git a/docker-compose/docker-compose.yaml b/docker-compose/docker-compose.yaml index dbba825..7747506 100644 --- a/docker-compose/docker-compose.yaml +++ b/docker-compose/docker-compose.yaml @@ -1,25 +1,30 @@ version: '2' services: - storperf: - container_name: "storperf" - image: "opnfv/storperf:${TAG}" + storperf-master: + container_name: "storperf-master" + image: "opnfv/storperf-master:${TAG}" ports: - "8000:8000" env_file: ${ENV_FILE} volumes: - ${CARBON_DIR}:/opt/graphite/storage/whisper - swagger-ui: - container_name: "swagger-ui" + storperf-reporting: + container_name: "storperf-reporting" + image: "opnfv/storperf-reporting:${TAG}" + ports: + - "5080:5000" + + storperf-swaggerui: + container_name: "storperf-swaggerui" image: "schickling/swagger-ui" - http-front-end: - container_name: "http-front-end" - image: nginx:stable-alpine + storperf-httpfrontend: + container_name: "storperf-httpfrontend" + image: "opnfv/storperf-httpfrontend:${TAG}" ports: - "5000:5000" - volumes: - - ./nginx.conf:/etc/nginx/nginx.conf:ro links: - - storperf - - swagger-ui \ No newline at end of file + - storperf-master + - storperf-reporting + - storperf-swaggerui \ No newline at end of file diff --git a/docker/Dockerfile-httpfrontend b/docker/Dockerfile-httpfrontend new file mode 100644 index 0000000..dc97b80 --- /dev/null +++ b/docker/Dockerfile-httpfrontend @@ -0,0 +1,25 @@ +############################################################################## +# Copyright (c) 2017 Dell EMC and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +# Docker container for StorPerf HTTP Front ENd +# +# Build: +# $ docker build -t opnfv/storperf-frontend:tag . +## + + +FROM nginx:stable-alpine +MAINTAINER Mark Beierl +LABEL version="3.1" description="OPNFV Storperf HTTP Front End Container" + +ARG BRANCH=master + +COPY storperf-httpfrontend/nginx.conf /etc/nginx/nginx.conf +COPY storperf-httpfrontend/html /etc/nginx/html + +EXPOSE 5000 diff --git a/docker/Dockerfile b/docker/Dockerfile-master similarity index 73% rename from docker/Dockerfile rename to docker/Dockerfile-master index f1ec617..38e8265 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile-master @@ -12,16 +12,12 @@ # # Maintained by Jose Lausuch, Mark Beierl # Build: -# $ docker build -t opnfv/storperf:tag . +# $ docker build -t opnfv/storperf-master:tag . # -# Execution: -# $ docker run -t opnfv/storperf /bin/bash -# - FROM ubuntu:14.04 MAINTAINER Jose Lausuch -LABEL version="0.1" description="OPNFV Storperf Docker container" +LABEL version="5.0" description="OPNFV Storperf Docker container" ARG BRANCH=master @@ -30,55 +26,36 @@ ENV DEBIAN_FRONTEND noninteractive WORKDIR /home/opnfv +# Needed for Graphite installation +RUN echo 'deb http://us.archive.ubuntu.com/ubuntu/ trusty universe' >> /etc/apt/sources.list + # Packaged dependencies RUN apt-get update && apt-get install -y \ libaio1 \ libaio-dev \ zlib1g-dev \ supervisor \ -ssh \ libssl-dev \ libffi-dev \ -rsync \ git \ -wget \ -puppet \ build-essential \ python-dev \ python-pip \ --no-install-recommends - -# Allow root SSH access with 'storperf' as the password - -RUN echo 'root:storperf' | chpasswd -RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config - -# SSH login fix. Otherwise user is kicked off after login -RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd - -ENV NOTVISIBLE "in users profile" -RUN echo "export VISIBLE=now" >> /etc/profile -RUN mkdir -p /var/run/sshd - -RUN mkdir -p ${repos_dir} RUN mkdir -p /root/.ssh RUN chmod 700 /root/.ssh -# Graphite installation -RUN echo 'deb http://us.archive.ubuntu.com/ubuntu/ trusty universe' >> /etc/apt/sources.list -RUN apt-get -y update - # Install required packages + RUN apt-get -y install python-ldap python-cairo python-django python-twisted python-django-tagging python-simplejson python-memcache python-pysqlite2 python-support python-tz python-pip gunicorn supervisor nginx-light RUN pip install whisper==0.9.15 RUN pip install --install-option="--prefix=/var/lib/graphite" --install-option="--install-lib=/var/lib/graphite/lib" carbon==0.9.15 RUN pip install --install-option="--prefix=/var/lib/graphite" --install-option="--install-lib=/var/lib/graphite/webapp" graphite-web==0.9.15 -# Add system service config -ADD graphite/nginx.conf /etc/nginx/nginx.conf - # Add graphite config + +ADD graphite/nginx.conf /etc/nginx/nginx.conf ADD graphite/initial_data.json /var/lib/graphite/webapp/graphite/initial_data.json ADD graphite/local_settings.py /var/lib/graphite/webapp/graphite/local_settings.py ADD graphite/carbon.conf /var/lib/graphite/conf/carbon.conf @@ -91,27 +68,27 @@ RUN chmod 0775 /var/lib/graphite/storage /var/lib/graphite/storage/whisper RUN chmod 0664 /var/lib/graphite/storage/graphite.db RUN cd /var/lib/graphite/webapp/graphite && python manage.py syncdb --noinput + # Git configuration RUN git config --global http.sslVerify false -RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/storperf ${repos_dir}/storperf RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${repos_dir}/releng + # Third party git fetches RUN git clone http://git.kernel.dk/fio.git ${repos_dir}/fio RUN cd ${repos_dir}/fio && git checkout tags/fio-2.2.10 -RUN cd ${repos_dir}/fio && make install +#RUN cd ${repos_dir}/fio && make install -RUN chmod 600 ${repos_dir}/storperf/storperf/resources/ssh/storperf_rsa +# Install StorPerf +COPY storperf-master ${repos_dir}/storperf +RUN chmod 600 ${repos_dir}/storperf/storperf/resources/ssh/storperf_rsa RUN pip install --upgrade setuptools==33.1.1 -RUN pip install -r ${repos_dir}/storperf/docker/requirements.pip - - -# Open access to SSH if desired -EXPOSE 22 +RUN pip install -r ${repos_dir}/storperf/requirements.pip +COPY storperf-master/supervisord.conf /etc/supervisor/conf.d/supervisord.conf # Graphite EXPOSE 8000 @@ -119,5 +96,4 @@ EXPOSE 8000 # ReST API EXPOSE 5000 -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf CMD ["/usr/bin/supervisord"] diff --git a/reporting/docker/Dockerfile b/docker/Dockerfile-reporting similarity index 79% rename from reporting/docker/Dockerfile rename to docker/Dockerfile-reporting index 541845c..ad00019 100644 --- a/reporting/docker/Dockerfile +++ b/docker/Dockerfile-reporting @@ -21,14 +21,13 @@ LABEL version="0.1" description="OPNFV Storperf Reporting Container" ARG BRANCH=master -ENV repos_dir /home/opnfv/repos -WORKDIR /home/opnfv - RUN apk add --update python py-pip -COPY . /app -WORKDIR /app -RUN pip install -r requirements.txt +COPY storperf-reporting /home/opnfv/storperf-reporting +WORKDIR /home/opnfv/storperf-reporting + +RUN pip install -r /home/opnfv/storperf-reporting/requirements.txt ENTRYPOINT ["python"] -CMD ["./src/app.py"] +CMD ["/home/opnfv/storperf-reporting/src/app.py"] + EXPOSE 5000 \ No newline at end of file diff --git a/docker/storperf-httpfrontend/html/index.html b/docker/storperf-httpfrontend/html/index.html new file mode 100644 index 0000000..7c772a0 --- /dev/null +++ b/docker/storperf-httpfrontend/html/index.html @@ -0,0 +1,14 @@ + + + +StorPerf Home + + +

StorPerf

+ + + \ No newline at end of file diff --git a/docker-compose/nginx.conf b/docker/storperf-httpfrontend/nginx.conf similarity index 71% rename from docker-compose/nginx.conf rename to docker/storperf-httpfrontend/nginx.conf index 6771358..d655aee 100644 --- a/docker-compose/nginx.conf +++ b/docker/storperf-httpfrontend/nginx.conf @@ -16,12 +16,17 @@ http { listen 5000; location /api/ { - proxy_pass http://storperf:5000; + proxy_pass http://storperf-master:5000; proxy_set_header Host $host:$proxy_port; } location /graphite/ { - proxy_pass http://storperf:8000; + proxy_pass http://storperf-master:8000; + proxy_set_header Host $host:$proxy_port; + } + + location /reporting/ { + proxy_pass http://storperf-reporting:5000/; proxy_set_header Host $host:$proxy_port; } @@ -29,7 +34,7 @@ http { if ($containsurl = 0) { return 302 $scheme://$host:$server_port$uri?url=http://$host:$server_port/api/spec.json$args; } - proxy_pass http://swagger-ui:80/; + proxy_pass http://storperf-swaggerui:80/; } } } diff --git a/docker/requirements.pip b/docker/storperf-master/requirements.pip similarity index 100% rename from docker/requirements.pip rename to docker/storperf-master/requirements.pip diff --git a/rest_server.py b/docker/storperf-master/rest_server.py similarity index 99% rename from rest_server.py rename to docker/storperf-master/rest_server.py index f2ee815..cc8d834 100644 --- a/rest_server.py +++ b/docker/storperf-master/rest_server.py @@ -167,7 +167,7 @@ class Job(Resource): }, { "name": "metrics_type", - "description": "The metrics_type of metrics to report. May be " + "description": "The metrics_type of metrics to report. May be " "metrics (default), or metadata", "required": False, "metrics_type": "string", @@ -309,7 +309,7 @@ class Quota(Resource): return jsonify({'quota': quota}) -def setup_logging(default_path='storperf/logging.json', +def setup_logging(default_path='logging.json', default_level=logging.INFO, env_key='LOG_CFG'): """Setup logging configuration """ diff --git a/storperf/__init__.py b/docker/storperf-master/storperf/__init__.py similarity index 100% rename from storperf/__init__.py rename to docker/storperf-master/storperf/__init__.py diff --git a/storperf/carbon/__init__.py b/docker/storperf-master/storperf/carbon/__init__.py similarity index 100% rename from storperf/carbon/__init__.py rename to docker/storperf-master/storperf/carbon/__init__.py diff --git a/storperf/carbon/converter.py b/docker/storperf-master/storperf/carbon/converter.py similarity index 100% rename from storperf/carbon/converter.py rename to docker/storperf-master/storperf/carbon/converter.py diff --git a/storperf/carbon/emitter.py b/docker/storperf-master/storperf/carbon/emitter.py similarity index 100% rename from storperf/carbon/emitter.py rename to docker/storperf-master/storperf/carbon/emitter.py diff --git a/storperf/db/__init__.py b/docker/storperf-master/storperf/db/__init__.py similarity index 100% rename from storperf/db/__init__.py rename to docker/storperf-master/storperf/db/__init__.py diff --git a/storperf/db/configuration_db.py b/docker/storperf-master/storperf/db/configuration_db.py similarity index 100% rename from storperf/db/configuration_db.py rename to docker/storperf-master/storperf/db/configuration_db.py diff --git a/storperf/db/graphite_db.py b/docker/storperf-master/storperf/db/graphite_db.py similarity index 100% rename from storperf/db/graphite_db.py rename to docker/storperf-master/storperf/db/graphite_db.py diff --git a/storperf/db/job_db.py b/docker/storperf-master/storperf/db/job_db.py similarity index 100% rename from storperf/db/job_db.py rename to docker/storperf-master/storperf/db/job_db.py diff --git a/storperf/db/test_results_db.py b/docker/storperf-master/storperf/db/test_results_db.py similarity index 100% rename from storperf/db/test_results_db.py rename to docker/storperf-master/storperf/db/test_results_db.py diff --git a/storperf/fio/__init__.py b/docker/storperf-master/storperf/fio/__init__.py similarity index 100% rename from storperf/fio/__init__.py rename to docker/storperf-master/storperf/fio/__init__.py diff --git a/storperf/fio/fio_invoker.py b/docker/storperf-master/storperf/fio/fio_invoker.py similarity index 100% rename from storperf/fio/fio_invoker.py rename to docker/storperf-master/storperf/fio/fio_invoker.py diff --git a/storperf/logging.json b/docker/storperf-master/storperf/logging.json similarity index 100% rename from storperf/logging.json rename to docker/storperf-master/storperf/logging.json diff --git a/storperf/resources/hot/agent-group.yaml b/docker/storperf-master/storperf/resources/hot/agent-group.yaml similarity index 100% rename from storperf/resources/hot/agent-group.yaml rename to docker/storperf-master/storperf/resources/hot/agent-group.yaml diff --git a/storperf/resources/hot/storperf-agent.yaml b/docker/storperf-master/storperf/resources/hot/storperf-agent.yaml similarity index 100% rename from storperf/resources/hot/storperf-agent.yaml rename to docker/storperf-master/storperf/resources/hot/storperf-agent.yaml diff --git a/storperf/resources/ssh/storperf_rsa b/docker/storperf-master/storperf/resources/ssh/storperf_rsa similarity index 100% rename from storperf/resources/ssh/storperf_rsa rename to docker/storperf-master/storperf/resources/ssh/storperf_rsa diff --git a/storperf/resources/ssh/storperf_rsa.pub b/docker/storperf-master/storperf/resources/ssh/storperf_rsa.pub similarity index 100% rename from storperf/resources/ssh/storperf_rsa.pub rename to docker/storperf-master/storperf/resources/ssh/storperf_rsa.pub diff --git a/storperf/storperf_master.py b/docker/storperf-master/storperf/storperf_master.py similarity index 100% rename from storperf/storperf_master.py rename to docker/storperf-master/storperf/storperf_master.py diff --git a/storperf/test_executor.py b/docker/storperf-master/storperf/test_executor.py similarity index 100% rename from storperf/test_executor.py rename to docker/storperf-master/storperf/test_executor.py diff --git a/storperf/utilities/__init__.py b/docker/storperf-master/storperf/utilities/__init__.py similarity index 100% rename from storperf/utilities/__init__.py rename to docker/storperf-master/storperf/utilities/__init__.py diff --git a/storperf/utilities/data_handler.py b/docker/storperf-master/storperf/utilities/data_handler.py similarity index 100% rename from storperf/utilities/data_handler.py rename to docker/storperf-master/storperf/utilities/data_handler.py diff --git a/storperf/utilities/data_treatment.py b/docker/storperf-master/storperf/utilities/data_treatment.py similarity index 100% rename from storperf/utilities/data_treatment.py rename to docker/storperf-master/storperf/utilities/data_treatment.py diff --git a/storperf/utilities/dictionary.py b/docker/storperf-master/storperf/utilities/dictionary.py similarity index 100% rename from storperf/utilities/dictionary.py rename to docker/storperf-master/storperf/utilities/dictionary.py diff --git a/storperf/utilities/math.py b/docker/storperf-master/storperf/utilities/math.py similarity index 100% rename from storperf/utilities/math.py rename to docker/storperf-master/storperf/utilities/math.py diff --git a/storperf/utilities/steady_state.py b/docker/storperf-master/storperf/utilities/steady_state.py similarity index 100% rename from storperf/utilities/steady_state.py rename to docker/storperf-master/storperf/utilities/steady_state.py diff --git a/storperf/utilities/thread_gate.py b/docker/storperf-master/storperf/utilities/thread_gate.py similarity index 100% rename from storperf/utilities/thread_gate.py rename to docker/storperf-master/storperf/utilities/thread_gate.py diff --git a/storperf/workloads/__init__.py b/docker/storperf-master/storperf/workloads/__init__.py similarity index 100% rename from storperf/workloads/__init__.py rename to docker/storperf-master/storperf/workloads/__init__.py diff --git a/storperf/workloads/_base_workload.py b/docker/storperf-master/storperf/workloads/_base_workload.py similarity index 100% rename from storperf/workloads/_base_workload.py rename to docker/storperf-master/storperf/workloads/_base_workload.py diff --git a/storperf/workloads/_ssd_preconditioning.py b/docker/storperf-master/storperf/workloads/_ssd_preconditioning.py similarity index 100% rename from storperf/workloads/_ssd_preconditioning.py rename to docker/storperf-master/storperf/workloads/_ssd_preconditioning.py diff --git a/storperf/workloads/_warm_up.py b/docker/storperf-master/storperf/workloads/_warm_up.py similarity index 100% rename from storperf/workloads/_warm_up.py rename to docker/storperf-master/storperf/workloads/_warm_up.py diff --git a/storperf/workloads/rr.py b/docker/storperf-master/storperf/workloads/rr.py similarity index 100% rename from storperf/workloads/rr.py rename to docker/storperf-master/storperf/workloads/rr.py diff --git a/storperf/workloads/rs.py b/docker/storperf-master/storperf/workloads/rs.py similarity index 100% rename from storperf/workloads/rs.py rename to docker/storperf-master/storperf/workloads/rs.py diff --git a/storperf/workloads/rw.py b/docker/storperf-master/storperf/workloads/rw.py similarity index 100% rename from storperf/workloads/rw.py rename to docker/storperf-master/storperf/workloads/rw.py diff --git a/storperf/workloads/wr.py b/docker/storperf-master/storperf/workloads/wr.py similarity index 100% rename from storperf/workloads/wr.py rename to docker/storperf-master/storperf/workloads/wr.py diff --git a/storperf/workloads/ws.py b/docker/storperf-master/storperf/workloads/ws.py similarity index 100% rename from storperf/workloads/ws.py rename to docker/storperf-master/storperf/workloads/ws.py diff --git a/docker/supervisord.conf b/docker/storperf-master/supervisord.conf similarity index 78% rename from docker/supervisord.conf rename to docker/storperf-master/supervisord.conf index 834e23c..9832c49 100644 --- a/docker/supervisord.conf +++ b/docker/storperf-master/supervisord.conf @@ -24,17 +24,10 @@ stdout_logfile = /var/log/supervisor/%(program_name)s.log stderr_logfile = /var/log/supervisor/%(program_name)s.log autorestart = true -[program:sshd] -user = root -command = /usr/sbin/sshd -D -stdout_logfile = /var/log/supervisor/%(program_name)s.log -stderr_logfile = /var/log/supervisor/%(program_name)s.log -autorestart = true - [program:storperf-webapp] user = root -directory = /home/opnfv/repos/storperf -command = /usr/bin/python /home/opnfv/repos/storperf/rest_server.py +directory = /home/opnfv/repos/storperf/ +command = /usr/bin/python rest_server.py stdout_logfile = /var/log/supervisor/%(program_name)s.log stderr_logfile = /var/log/supervisor/%(program_name)s.log autorestart = true diff --git a/tests/__init__.py b/docker/storperf-master/tests/__init__.py similarity index 100% rename from tests/__init__.py rename to docker/storperf-master/tests/__init__.py diff --git a/tests/carbon_tests/__init__.py b/docker/storperf-master/tests/carbon_tests/__init__.py similarity index 100% rename from tests/carbon_tests/__init__.py rename to docker/storperf-master/tests/carbon_tests/__init__.py diff --git a/tests/carbon_tests/emitter_test.py b/docker/storperf-master/tests/carbon_tests/emitter_test.py similarity index 100% rename from tests/carbon_tests/emitter_test.py rename to docker/storperf-master/tests/carbon_tests/emitter_test.py diff --git a/tests/carbon_tests/json_to_carbon_test.py b/docker/storperf-master/tests/carbon_tests/json_to_carbon_test.py similarity index 100% rename from tests/carbon_tests/json_to_carbon_test.py rename to docker/storperf-master/tests/carbon_tests/json_to_carbon_test.py diff --git a/tests/db_tests/__init__.py b/docker/storperf-master/tests/db_tests/__init__.py similarity index 100% rename from tests/db_tests/__init__.py rename to docker/storperf-master/tests/db_tests/__init__.py diff --git a/tests/db_tests/configuration_db_test.py b/docker/storperf-master/tests/db_tests/configuration_db_test.py similarity index 86% rename from tests/db_tests/configuration_db_test.py rename to docker/storperf-master/tests/db_tests/configuration_db_test.py index dda616b..d8b021a 100644 --- a/tests/db_tests/configuration_db_test.py +++ b/docker/storperf-master/tests/db_tests/configuration_db_test.py @@ -10,16 +10,24 @@ from storperf.db.configuration_db import ConfigurationDB import os import unittest -import sqlite3 class ConfigurationDBTest(unittest.TestCase): def setUp(self): - ConfigurationDB.db_name = "file::memory:?cache=shared" - db = sqlite3.connect(ConfigurationDB.db_name) + ConfigurationDB.db_name = __name__ + '.db' + try: + os.remove(ConfigurationDB.db_name) + except OSError: + pass self.config_db = ConfigurationDB() + def tearDown(self): + try: + os.remove(ConfigurationDB.db_name) + except OSError: + pass + def test_create_key(self): expected = "ABCDE-12345" diff --git a/tests/db_tests/graphite_db_test.py b/docker/storperf-master/tests/db_tests/graphite_db_test.py similarity index 100% rename from tests/db_tests/graphite_db_test.py rename to docker/storperf-master/tests/db_tests/graphite_db_test.py diff --git a/tests/db_tests/job_db_test.py b/docker/storperf-master/tests/db_tests/job_db_test.py similarity index 98% rename from tests/db_tests/job_db_test.py rename to docker/storperf-master/tests/db_tests/job_db_test.py index 9b09a80..25fda1f 100644 --- a/tests/db_tests/job_db_test.py +++ b/docker/storperf-master/tests/db_tests/job_db_test.py @@ -20,7 +20,6 @@ from storperf.workloads.rr import rr class JobDBTest(unittest.TestCase): def setUp(self): - JobDB.db_name = __name__ + '.db' try: os.remove(JobDB.db_name) @@ -28,6 +27,12 @@ class JobDBTest(unittest.TestCase): pass self.job = JobDB() + def tearDown(self): + try: + os.remove(JobDB.db_name) + except OSError: + pass + @mock.patch("uuid.uuid4") def test_create_job(self, mock_uuid): expected = "ABCDE-12345" diff --git a/tests/fio_tests/__init__.py b/docker/storperf-master/tests/fio_tests/__init__.py similarity index 100% rename from tests/fio_tests/__init__.py rename to docker/storperf-master/tests/fio_tests/__init__.py diff --git a/tests/fio_tests/fio_invoker_test.py b/docker/storperf-master/tests/fio_tests/fio_invoker_test.py similarity index 100% rename from tests/fio_tests/fio_invoker_test.py rename to docker/storperf-master/tests/fio_tests/fio_invoker_test.py diff --git a/tests/storperf_master_test.py b/docker/storperf-master/tests/storperf_master_test.py similarity index 88% rename from tests/storperf_master_test.py rename to docker/storperf-master/tests/storperf_master_test.py index c67e3c4..e824a5f 100644 --- a/tests/storperf_master_test.py +++ b/docker/storperf-master/tests/storperf_master_test.py @@ -7,19 +7,29 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +import os +import unittest + from storperf.db.configuration_db import ConfigurationDB from storperf.storperf_master import StorPerfMaster -import unittest -import sqlite3 class StorPerfMasterTest(unittest.TestCase): def setUp(self): - ConfigurationDB.db_name = "file::memory:?cache=shared" - db = sqlite3.connect(ConfigurationDB.db_name) + ConfigurationDB.db_name = __name__ + '.db' + try: + os.remove(ConfigurationDB.db_name) + except OSError: + pass self.storperf = StorPerfMaster() + def tearDown(self): + try: + os.remove(ConfigurationDB.db_name) + except OSError: + pass + def test_agent_count(self): expected = 10 diff --git a/tests/utilities_tests/__init__.py b/docker/storperf-master/tests/utilities_tests/__init__.py similarity index 100% rename from tests/utilities_tests/__init__.py rename to docker/storperf-master/tests/utilities_tests/__init__.py diff --git a/tests/utilities_tests/data_handler_test.py b/docker/storperf-master/tests/utilities_tests/data_handler_test.py similarity index 100% rename from tests/utilities_tests/data_handler_test.py rename to docker/storperf-master/tests/utilities_tests/data_handler_test.py diff --git a/tests/utilities_tests/data_treatment_test.py b/docker/storperf-master/tests/utilities_tests/data_treatment_test.py similarity index 100% rename from tests/utilities_tests/data_treatment_test.py rename to docker/storperf-master/tests/utilities_tests/data_treatment_test.py diff --git a/tests/utilities_tests/dictionary_test.py b/docker/storperf-master/tests/utilities_tests/dictionary_test.py similarity index 100% rename from tests/utilities_tests/dictionary_test.py rename to docker/storperf-master/tests/utilities_tests/dictionary_test.py diff --git a/tests/utilities_tests/math_average_test.py b/docker/storperf-master/tests/utilities_tests/math_average_test.py similarity index 100% rename from tests/utilities_tests/math_average_test.py rename to docker/storperf-master/tests/utilities_tests/math_average_test.py diff --git a/tests/utilities_tests/math_range_test.py b/docker/storperf-master/tests/utilities_tests/math_range_test.py similarity index 100% rename from tests/utilities_tests/math_range_test.py rename to docker/storperf-master/tests/utilities_tests/math_range_test.py diff --git a/tests/utilities_tests/math_slope_test.py b/docker/storperf-master/tests/utilities_tests/math_slope_test.py similarity index 100% rename from tests/utilities_tests/math_slope_test.py rename to docker/storperf-master/tests/utilities_tests/math_slope_test.py diff --git a/tests/utilities_tests/steady_state_test.py b/docker/storperf-master/tests/utilities_tests/steady_state_test.py similarity index 100% rename from tests/utilities_tests/steady_state_test.py rename to docker/storperf-master/tests/utilities_tests/steady_state_test.py diff --git a/tests/utilities_tests/thread_gate_test.py b/docker/storperf-master/tests/utilities_tests/thread_gate_test.py similarity index 100% rename from tests/utilities_tests/thread_gate_test.py rename to docker/storperf-master/tests/utilities_tests/thread_gate_test.py diff --git a/tests/workload_tests/__init__.py b/docker/storperf-master/tests/workload_tests/__init__.py similarity index 100% rename from tests/workload_tests/__init__.py rename to docker/storperf-master/tests/workload_tests/__init__.py diff --git a/tests/workload_tests/workload_subclass_test.py b/docker/storperf-master/tests/workload_tests/workload_subclass_test.py similarity index 100% rename from tests/workload_tests/workload_subclass_test.py rename to docker/storperf-master/tests/workload_tests/workload_subclass_test.py diff --git a/reporting/docker/requirements.txt b/docker/storperf-reporting/requirements.txt similarity index 100% rename from reporting/docker/requirements.txt rename to docker/storperf-reporting/requirements.txt diff --git a/docker/storperf-reporting/src/app.py b/docker/storperf-reporting/src/app.py new file mode 100644 index 0000000..1c70faf --- /dev/null +++ b/docker/storperf-reporting/src/app.py @@ -0,0 +1,38 @@ +############################################################################## +# Copyright (c) 2017 Dell EMC and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +from flask import Flask, redirect, url_for, request, render_template, session +import urllib +import json +app = Flask(__name__) +app.secret_key = 'storperf_graphing_module' + + +@app.route('/success/') +def success(): + data = urllib.urlopen(session["url"]).read() + data = json.loads(data) + return render_template('plot_tables.html', data=data) + + +@app.route('/url', methods=['POST', 'GET']) +def url(): + if request.method == 'POST': + url = request.form['url'] + session["url"] = url + return redirect(url_for('success')) + + +@app.route('/') +def index(): + return render_template('index.html') + + +if __name__ == '__main__': + app.run(host="0.0.0.0", debug=True, threaded=True) diff --git a/reporting/docker/src/static/css/bootstrap.min.css b/docker/storperf-reporting/src/static/css/bootstrap.min.css similarity index 100% rename from reporting/docker/src/static/css/bootstrap.min.css rename to docker/storperf-reporting/src/static/css/bootstrap.min.css diff --git a/reporting/docker/src/static/js/Chart.min.js b/docker/storperf-reporting/src/static/js/Chart.min.js similarity index 100% rename from reporting/docker/src/static/js/Chart.min.js rename to docker/storperf-reporting/src/static/js/Chart.min.js diff --git a/reporting/docker/src/static/js/bootstrap.min.js b/docker/storperf-reporting/src/static/js/bootstrap.min.js similarity index 100% rename from reporting/docker/src/static/js/bootstrap.min.js rename to docker/storperf-reporting/src/static/js/bootstrap.min.js diff --git a/reporting/docker/src/static/js/jquery-2.1.3.min.js b/docker/storperf-reporting/src/static/js/jquery-2.1.3.min.js similarity index 100% rename from reporting/docker/src/static/js/jquery-2.1.3.min.js rename to docker/storperf-reporting/src/static/js/jquery-2.1.3.min.js diff --git a/reporting/docker/src/static/js/jquery.bootpag.min.js b/docker/storperf-reporting/src/static/js/jquery.bootpag.min.js similarity index 100% rename from reporting/docker/src/static/js/jquery.bootpag.min.js rename to docker/storperf-reporting/src/static/js/jquery.bootpag.min.js diff --git a/reporting/docker/src/static/js/plotly-latest.min.js b/docker/storperf-reporting/src/static/js/plotly-latest.min.js similarity index 100% rename from reporting/docker/src/static/js/plotly-latest.min.js rename to docker/storperf-reporting/src/static/js/plotly-latest.min.js diff --git a/reporting/docker/src/templates/index.html b/docker/storperf-reporting/src/templates/index.html similarity index 100% rename from reporting/docker/src/templates/index.html rename to docker/storperf-reporting/src/templates/index.html diff --git a/reporting/docker/src/templates/plot_tables.html b/docker/storperf-reporting/src/templates/plot_tables.html similarity index 100% rename from reporting/docker/src/templates/plot_tables.html rename to docker/storperf-reporting/src/templates/plot_tables.html diff --git a/reporting/docker/app.py b/reporting/docker/app.py deleted file mode 100644 index 8f1c058..0000000 --- a/reporting/docker/app.py +++ /dev/null @@ -1,9 +0,0 @@ -from flask import Flask -app = Flask(__name__) - -@app.route('/') -def hello_world(): - return 'Hello World' - -if __name__ == '__main__': - app.run(debug=True, host='0.0.0.0', threaded=True) diff --git a/reporting/docker/src/app.py b/reporting/docker/src/app.py deleted file mode 100644 index 4f6d17c..0000000 --- a/reporting/docker/src/app.py +++ /dev/null @@ -1,28 +0,0 @@ -from flask import Flask, redirect, url_for, request, render_template,jsonify, session -import requests, json -import urllib, json -app = Flask(__name__) -app.secret_key = 'storperf_graphing_module' -#global url - -@app.route('/reporting/success/') -def success(): - header = {'x-requested-with': 'XMLHttpRequest'} - data = urllib.urlopen(session["url"]).read() - data = json.loads(data) - return render_template('plot_tables.html', data = data) - -@app.route('/reporting/url',methods = ['POST', 'GET']) -def url(): - if request.method == 'POST': -# global url - url = request.form['url'] - session["url"] = url - return redirect(url_for('success')) - -@app.route('/reporting/') -def index(): - return render_template('index.html') - -if __name__ == '__main__': - app.run(host="0.0.0.0", debug = True, threaded=True) \ No newline at end of file -- 2.16.6