From 980523c1c5fa65b4c4a786d6ddb1ddfb70a63bc6 Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Tue, 4 Jul 2017 17:23:33 +0200 Subject: Initiate packetization of Testing reporting Testing reporting provides - static reporting pages [1] (jinja2) - landing pages including test case catalogue [2] (angular) It consumes the Test API to build web pages providing status for the testing projects (so far functest, yardstick, storperf and qtip). Dockerization has been initiated [3]. The goal is to replace the static page hosted on testresults.opnfv.org by a docker regenerated and redeployed when reporting code is changed But the docker and more generally the testing reporting directory must be refactored to - manage dependencies properly - leverage tox (py27, docs, pylint, pep8) This patch - setups tox (py27, pep8, pylint, docs) - integrate the requirement management - fix pep8 errors - introduce 1 dummy unit test This patch does not - fix pylint errors - create any doc [1]: http://testresults.opnfv.org/reporting2/display/index.html [2]: http://testresults.opnfv.org/reporting2/reporting/index.html [3]: https://gerrit.opnfv.org/gerrit/#/c/36735/ Change-Id: I4613de7ca7036d6c6bbb8f58ade492b1d673599b Signed-off-by: Morgan Richomme --- reporting/docker/Dockerfile | 20 +++++------- reporting/docker/nginx.conf | 4 +-- reporting/docker/reporting.sh | 70 +++++++++++++--------------------------- reporting/docker/supervisor.conf | 4 +-- reporting/docker/web_server.sh | 16 +++++++++ 5 files changed, 51 insertions(+), 63 deletions(-) create mode 100755 reporting/docker/web_server.sh (limited to 'reporting/docker') diff --git a/reporting/docker/Dockerfile b/reporting/docker/Dockerfile index ad278ce..f5168d1 100644 --- a/reporting/docker/Dockerfile +++ b/reporting/docker/Dockerfile @@ -16,22 +16,20 @@ FROM nginx:stable MAINTAINER Morgan Richomme -LABEL version="danube.1.0" description="OPNFV Test Reporting Docker container" +LABEL version="1.0" description="OPNFV Test Reporting Docker container" ARG BRANCH=master ENV HOME /home/opnfv -ENV working_dir /home/opnfv/utils/test/reporting -ENV TERM xterm -ENV COLORTERM gnome-terminal -ENV CONFIG_REPORTING_YAML /home/opnfv/utils/test/reporting/reporting.yaml +ENV working_dir ${HOME}/releng/utils/test/reporting +ENV CONFIG_REPORTING_YAML ${working_dir}/reporting.yaml +WORKDIR ${HOME} # Packaged dependencies RUN apt-get update && apt-get install -y \ ssh \ python-pip \ git-core \ -wkhtmltopdf \ nodejs \ npm \ supervisor \ @@ -39,15 +37,13 @@ supervisor \ RUN pip install --upgrade pip -RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng /home/opnfv -RUN pip install -r ${working_dir}/docker/requirements.pip - -WORKDIR ${working_dir}/api -RUN pip install -r requirements.txt -RUN python setup.py install +RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${HOME}/releng +RUN pip install -r ${working_dir}/requirements.txt WORKDIR ${working_dir} +RUN python setup.py install RUN docker/reporting.sh +RUN docker/web_server.sh expose 8000 diff --git a/reporting/docker/nginx.conf b/reporting/docker/nginx.conf index 9e26972..ced8179 100644 --- a/reporting/docker/nginx.conf +++ b/reporting/docker/nginx.conf @@ -15,10 +15,10 @@ server { } location /reporting/ { - alias /home/opnfv/utils/test/reporting/pages/dist/; + alias /home/opnfv/releng/utils/test/reporting/pages/dist/; } location /display/ { - alias /home/opnfv/utils/test/reporting/display/; + alias /home/opnfv/releng/utils/test/reporting/display/; } } diff --git a/reporting/docker/reporting.sh b/reporting/docker/reporting.sh index 7fe97a8..076dc47 100755 --- a/reporting/docker/reporting.sh +++ b/reporting/docker/reporting.sh @@ -1,10 +1,10 @@ #!/bin/bash -export PYTHONPATH="${PYTHONPATH}:." -export CONFIG_REPORTING_YAML=./reporting.yaml +export PYTHONPATH="${PYTHONPATH}:./reporting" +export CONFIG_REPORTING_YAML=./reporting/reporting.yaml declare -a versions=(danube master) -declare -a projects=(functest storperf yardstick) +declare -a projects=(functest storperf yardstick qtip) project=$1 reporting_type=$2 @@ -29,8 +29,9 @@ cp -Rf js display # projet | option # $1 | $2 # functest | status, vims, tempest -# yardstick | -# storperf | +# yardstick | status +# storperf | status +# qtip | status function report_project() { @@ -40,7 +41,7 @@ function report_project() echo "********************************" echo " $project reporting " echo "********************************" - python ./$dir/reporting-$type.py + python ./reporting/$dir/reporting-$type.py if [ $? ]; then echo "$project reporting $type...OK" else @@ -50,53 +51,28 @@ function report_project() if [ -z "$1" ]; then echo "********************************" - echo " Functest reporting " + echo " * Static status reporting *" echo "********************************" - echo "reporting vIMS..." - python ./functest/reporting-vims.py - echo "reporting vIMS...OK" - sleep 10 - echo "reporting Tempest..." - python ./functest/reporting-tempest.py - echo "reporting Tempest...OK" - sleep 10 - echo "reporting status..." - python ./functest/reporting-status.py - echo "Functest reporting status...OK" - - echo "********************************" - echo " Yardstick reporting " - echo "********************************" - python ./yardstick/reporting-status.py - echo "Yardstick reporting status...OK" + for i in "${projects[@]}" + do + report_project $i $i "status" + sleep 5 + done + report_project "QTIP" "qtip" "status" - echo "********************************" - echo " Storperf reporting " - echo "********************************" - python ./storperf/reporting-status.py - echo "Storperf reporting status...OK" - report_project "QTIP" "qtip" "status" + echo "Functest reporting vIMS..." + report_project "functest" "functest" "vims" + echo "reporting vIMS...OK" + sleep 5 + echo "Functest reporting Tempest..." + report_project "functest" "functest" "tempest" + echo "reporting Tempest...OK" + sleep 5 else if [ -z "$2" ]; then reporting_type="status" fi - echo "********************************" - echo " $project/$reporting_type reporting " - echo "********************************" - python ./$project/reporting-$reporting_type.py + report_project $project $project $reporting_type fi -cp -r display /usr/share/nginx/html - - -# nginx config -cp /home/opnfv/utils/test/reporting/docker/nginx.conf /etc/nginx/conf.d/ -echo "daemon off;" >> /etc/nginx/nginx.conf - -# supervisor config -cp /home/opnfv/utils/test/reporting/docker/supervisor.conf /etc/supervisor/conf.d/ - -ln -s /usr/bin/nodejs /usr/bin/node - -cd pages && /bin/bash angular.sh diff --git a/reporting/docker/supervisor.conf b/reporting/docker/supervisor.conf index b323dd0..49310d4 100644 --- a/reporting/docker/supervisor.conf +++ b/reporting/docker/supervisor.conf @@ -3,7 +3,7 @@ nodaemon = true [program:tornado] user = root -directory = /home/opnfv/utils/test/reporting/api/api +directory = /home/opnfv/releng/utils/test/reporting/api command = python server.py --port=800%(process_num)d process_name=%(program_name)s%(process_num)d numprocs=4 @@ -15,5 +15,5 @@ command = service nginx restart [program:configuration] user = root -directory = /home/opnfv/utils/test/reporting/pages +directory = /home/opnfv/releng/utils/test/reporting/pages command = bash config.sh diff --git a/reporting/docker/web_server.sh b/reporting/docker/web_server.sh new file mode 100755 index 0000000..a34c11d --- /dev/null +++ b/reporting/docker/web_server.sh @@ -0,0 +1,16 @@ +#!/bin/bash +cp -r display /usr/share/nginx/html + + +# nginx config +cp /home/opnfv/releng/utils/test/reporting/docker/nginx.conf /etc/nginx/conf.d/ +echo "daemon off;" >> /etc/nginx/nginx.conf + +# supervisor config +cp /home/opnfv/releng/utils/test/reporting/docker/supervisor.conf /etc/supervisor/conf.d/ + +ln -s /usr/bin/nodejs /usr/bin/node + +# Manage Angular front end +cd pages && /bin/bash angular.sh + -- cgit 1.2.3-korg