diff options
21 files changed, 174 insertions, 175 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index d6f8fdd6..dd2bda35 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -64,6 +64,9 @@ RUN git clone https://gerrit.opnfv.org/gerrit/releng $REPOS_DIR/releng RUN cd $REPOS_DIR/qtip && pip install -U . +# Exposing ports +EXPOSE 5000 + #Config supervisor RUN mkdir -p /var/log/supervisor RUN locale-gen en_US en_US.UTF-8 diff --git a/docker/supervisord.conf b/docker/supervisord.conf index a6d457dd..913fbe6f 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -1,8 +1,8 @@ [supervisord] nodaemon=true -[program:qtip_server] -command=bash -c "cd $REPOS_DIR/qtip&&python qtip/api/qtip_server.py" +[program:qtip_api] +command=bash -c "cd $REPOS_DIR/qtip&&python qtip/api/__main__.py" numprocs=1 autostart=true autorestart=true diff --git a/docs/proposal/integration_with_yardstick.rst b/docs/proposal/integration_with_yardstick.rst index a8298d6f..ce94b8fe 100644 --- a/docs/proposal/integration_with_yardstick.rst +++ b/docs/proposal/integration_with_yardstick.rst @@ -11,13 +11,13 @@ Problem description =================== For each specified QPI [1]_, QTIP needs to select a suite of test cases and collect -required test results. Based on these results, Qtip calculates the score. +required test results. Based on these results, QTIP calculates the score. Proposed change =============== -Qtip has a flexible architecture [2]_ to support different mode: standalone and agent. +QTIP has a flexible architecture [2]_ to support different mode: standalone and agent. It is recommended to use **agent mode** to work with existing test runners. Yardstick will -act as a runner to generate test result and trigger Qtip agent on the completion of test. +act as a runner to generate test result and trigger QTIP agent on the completion of test. Work Items in Yardstick @@ -25,41 +25,41 @@ Work Items in Yardstick 1. Create a customized suite in Yardstick -Yardstick not only has many existing suites but also support customized suites. Qtip could -create a suite named **Qtip-PoC** in Yardstick repo to verify workflow of Qtip agent mode. +Yardstick not only has many existing suites but also support customized suites. QTIP could +create a suite named **QTIP-PoC** in Yardstick repo to verify workflow of QTIP agent mode. -2. Launch Qtip in Yardstick +2. Launch QTIP in Yardstick -Whether to launch Qtip will be determined by checking the existence of OS environment -variable *QTIP*. If it exists, Qtip will be launched by using Yardstick CLI +Whether to launch QTIP will be determined by checking the existence of OS environment +variable *QTIP*. If it exists, QTIP will be launched by using Yardstick CLI `yardstick plugin install` [3]_. -3. Yardstick interacts with Qtip +3. Yardstick interacts with QTIP See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ +`Yardstick-QTIP+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-QTIP+integration>`_ for details. -Work Items in Qtip +Work Items in QTIP ------------------ 1. Provide an API for Yardstick to post test result and environment info After completing test execution, Yardstick will post test result and enviroment info with JSON format via QTIP API. See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ +`Yardstick-QTIP+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-QTIP+integration>`_ for details. 2. Parse yardstick test result -When Qtip agent receive Yarstick test result and enviroment info, Qtip agent will extract -metrics which is definded in metric spec configuration file. Based on these metrics, Qtip +When QTIP agent receive Yarstick test result and enviroment info, QTIP agent will extract +metrics which is definded in metric spec configuration file. Based on these metrics, QTIP agent will caculate QPI. 3. Provide an API for querying QPI -Qtip will provide an API for querying QPI. See -`Yardstick-Qtip+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-Qtip+integration>`_ +QTIP will provide an API for querying QPI. See +`Yardstick-QTIP+integration <https://wiki.opnfv.org/display/yardstick/Yardstick-QTIP+integration>`_ for details. Implementation diff --git a/docs/release/release-notes/brahmaputra.rst b/docs/release/release-notes/brahmaputra.rst index 92fafd80..2db7e109 100644 --- a/docs/release/release-notes/brahmaputra.rst +++ b/docs/release/release-notes/brahmaputra.rst @@ -1,3 +1,6 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + *********** Brahmaputra *********** diff --git a/docs/release/release-notes/danube.rst b/docs/release/release-notes/danube.rst index b50fb909..59c6f6f7 100644 --- a/docs/release/release-notes/danube.rst +++ b/docs/release/release-notes/danube.rst @@ -1,22 +1,24 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +****** +Danube +****** -This document provides the release notes for <RELEASE> of <COMPONENT>. +This document provides the release notes for Danube of QTIP. .. contents:: :depth: 3 :local: - Version history ---------------- +=============== +--------------------+--------------------+--------------------+--------------------+ | **Date** | **Ver.** | **Author** | **Comment** | | | | | | +--------------------+--------------------+--------------------+--------------------+ -| 2017-03-14 | TODO(yujunz): tag | Yujun Zhang | First draft | +| 2017-03-30 | Danube 1.0 | Yujun Zhang | | | | | | | +--------------------+--------------------+--------------------+--------------------+ @@ -32,9 +34,9 @@ Summary QTIP Danube release introduces **QPI**, a.k.a. QTIP Performance Index, which is calculated from metrics collected in performance tests. -A PoC of compute qpi benchmark plan is provided as a sample use case. +A PoC of compute performance benchmark plan is provided as a sample use case. -Available benchmark plans can be listed, shown and executed from `qtip-cli`, the command line interpreter of QTIP. +Available benchmark plans can be listed, shown and executed from command line or over API. Release Data ============ @@ -43,13 +45,13 @@ Release Data | **Project** | QTIP | | | | +--------------------------------------+--------------------------------------+ -| **Repo/commit-ID** | qtip/TBD | +| **Repo/commit-ID** | qtip/danube.1.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Danube 1.0 | +| **Release designation** | Danube base release | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | TODO(yujunz): fill date | +| **Release date** | 2017-03-31 | | | | +--------------------------------------+--------------------------------------+ | **Purpose of the delivery** | OPNFV quality assurance | @@ -57,115 +59,98 @@ Release Data +--------------------------------------+--------------------------------------+ Version change -^^^^^^^^^^^^^^ +-------------- Module version changes -~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^ -N/A +The following Python packages are used in this release:: -Document version changes -~~~~~~~~~~~~~~~~~~~~~~~~ + ansible==2.1.2.0 + click==6.7 + connexion==1.1.5 + Jinja2==2.9.5 + numpy==1.12.1 + paramiko==2.1.2 + pbr==2.0.0 + prettytable==0.7.2 + six==1.10.0 + PyYAML==3.12 -N/A -Reason for version -^^^^^^^^^^^^^^^^^^ -Feature additions -~~~~~~~~~~~~~~~~~ +It is considered as a baseline for future releases. -**JIRA BACK-LOG:** +Reason for version +------------------ -** TODO(yujunz) pull data from JIRA ** +Features additions +^^^^^^^^^^^^^^^^^^ -+--------------------------------------+--------------------------------------+ -| **JIRA REFERENCE** | **SLOGAN** | -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ +* Compute QPI (QTIP Performance Index) specification and benchmarking plan +* Command line interface +* API server -Bug corrections -~~~~~~~~~~~~~~~ +Framework evolution +^^^^^^^^^^^^^^^^^^^ -**JIRA TICKETS:** +The following components are implemented and integrated -** TODO(yujunz) pull data from JIRA ** +* Native runner +* File loader +* Ansible driver +* Logfile collector +* Grep parser +* Console reporter -+--------------------------------------+--------------------------------------+ -| **JIRA REFERENCE** | **SLOGAN** | -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ +See JIRA for full `change log <https://jira.opnfv.org/jira/secure/ReleaseNote.jspa?projectId=10308&version=10555>`_ Deliverables ------------ -Software deliverables -^^^^^^^^^^^^^^^^^^^^^ +Software +^^^^^^^^ -** TODO(yujunz) docker image, pip package ** +- `QTIP Docker image <https://hub.docker.com/r/opnfv/qtip>`_ (tag: danube.1.0) -Documentation deliverables -^^^^^^^^^^^^^^^^^^^^^^^^^^ +Documentation +^^^^^^^^^^^^^ -** TODO(yujunz) links to qtip document publish ** +- `Installation & Configuration <http://docs.opnfv.org/en/stable-danube/qtip/docs/testing/user/configguide>`_ +- `User Guide <http://docs.opnfv.org/en/stable-danube/submodules/qtip/docs/testing/user/userguide>`_ +- `Developer Guide <http://docs.opnfv.org/en/stable-danube/submodules/qtip/docs/testing/developer/devguide>`_ Known Limitations, Issues and Workarounds ========================================= -System Limitations -^^^^^^^^^^^^^^^^^^ +Limitations +----------- -None +- The compute benchmark plan is hard coded in native runner +- Baseline for Compute QPI is not created yet, therefore scores are not available Known issues -^^^^^^^^^^^^ - -** TODO(yujunz) pull data from JIRA ** - -**JIRA TICKETS:** - -+--------------------------------------+--------------------------------------+ -| **JIRA REFERENCE** | **SLOGAN** | -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ -| | | -+--------------------------------------+--------------------------------------+ - -Workarounds -^^^^^^^^^^^ +------------ -N/A +* QTIP-230 - logger warns about socket /dev/log when running in container Test Result =========== QTIP has undergone QA test runs with the following results: -+--------------------------------------+--------------------------------------+ -| **TEST-SUITES** | **Results:** | -| | | -+--------------------------------------+--------------------------------------+ -| qtip-verify-danube | 72/72 passed | -| | | -| | 73% lines of code covered | -+--------------------------------------+--------------------------------------+ -| qtip-daily-fuel-zte-pod3-danube | Last 7 build fails | -| | | -| | blocked by the failure of zte-pod3 | -+--------------------------------------+--------------------------------------+ - -References -========== - -For more information on the OPNFV Danube release, please see: - -http://opnfv.org/danube ++---------------------------------------------------+--------------------------------------+ +| **TEST-SUITES** | **Results:** | +| | | ++---------------------------------------------------+--------------------------------------+ +| qtip-verify-danube | 94/94 passed | +| | | ++---------------------------------------------------+--------------------------------------+ +| qtip-os-nosdn-kvm-ha-zte-pod3-daily-danube | Successful | +| | | ++---------------------------------------------------+--------------------------------------+ +| qtip-os-nosdn-nofeature-ha-zte-pod3-daily-danube | Successful | +| | | ++---------------------------------------------------+--------------------------------------+ +| qtip-os-odl_l2-nofeature-ha-zte-pod1-daily-danube | Successful | +| | | ++---------------------------------------------------+--------------------------------------+ diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 8c52b5c8..e18699a6 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -6,9 +6,9 @@ .. (c) 2016 ZTE Corp. -################## +****************** QTIP Release Notes -################## +****************** .. toctree:: :maxdepth: 2 diff --git a/docs/testing/developer/devguide/api.rst b/docs/testing/developer/devguide/api.rst index 48ae3ae4..491c70f8 100644 --- a/docs/testing/developer/devguide/api.rst +++ b/docs/testing/developer/devguide/api.rst @@ -1,9 +1,10 @@ -********************************************** -QTIP RESTful Application Programming Interface -********************************************** +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 -Abstract -######## + +*************************************** +API - Application Programming Interface +*************************************** QTIP consists of different tools(metrics) to benchmark the NFVI. These metrics fall under different NFVI subsystems(QPI's) such as compute, storage and network. diff --git a/docs/testing/developer/devguide/arch.rst b/docs/testing/developer/devguide/arch.rst index d95faba6..6b9208e9 100644 --- a/docs/testing/developer/devguide/arch.rst +++ b/docs/testing/developer/devguide/arch.rst @@ -3,9 +3,9 @@ .. (c) 2017 ZTE Corp. -######################## -QTIP Architecture Design -######################## +************ +Architecture +************ In Danube, QTIP releases its standalone mode, which is also know as ``solo``: diff --git a/docs/testing/developer/devguide/cli.rst b/docs/testing/developer/devguide/cli.rst index 72d1fbaf..7c681a64 100644 --- a/docs/testing/developer/devguide/cli.rst +++ b/docs/testing/developer/devguide/cli.rst @@ -1,9 +1,10 @@ -*************************** -QTIP Command Line Interface -*************************** +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 -Abstract -######## + +**************************** +CLI - Command Line Interface +**************************** QTIP consists of different tools(metrics) to benchmark the NFVI. These metrics fall under different NFVI subsystems(QPI's) such as compute, storage and network. A plan consists of one or more QPI's, depending upon how diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst index 89113e56..a4dd072c 100644 --- a/docs/testing/developer/devguide/index.rst +++ b/docs/testing/developer/devguide/index.rst @@ -3,9 +3,9 @@ .. (c) 2016 ZTE Corp. -########################## -QTIP Design Specifications -########################## +******************** +QTIP Developer Guide +******************** .. toctree:: :maxdepth: 2 diff --git a/docs/testing/developer/devguide/overview.rst b/docs/testing/developer/devguide/overview.rst index d394574e..1d7e22fe 100644 --- a/docs/testing/developer/devguide/overview.rst +++ b/docs/testing/developer/devguide/overview.rst @@ -3,9 +3,9 @@ .. (c) 2017 ZTE Corporation -######## +******** Overview -######## +******** QTIP uses Python as primary programming language and build the framework from the following packages @@ -19,16 +19,15 @@ docs `sphinx`_ - a tool that makes it easy to create intelligent and beautif testing `pytest`_ - a mature full-featured Python testing tool that helps you write better programs ======== =============================================================================================================== -*********** + Source Code -*********** +=========== - The structure of repository is based on the recommended sample in -`The Hitchhiker's Guide to Python`_ +The structure of repository is based on the recommended sample in `The Hitchhiker's Guide to Python`_ -================== ======================================================================================================== +================== ==================================================================================================== Path Content -================== ======================================================================================================== +================== ==================================================================================================== ``./benchmarks/`` builtin benchmark assets including plan, QPI and metrics ``./contrib/`` independent project/plugin/code contributed to QTIP ``./docker/`` configuration for building Docker image for QTIP deployment @@ -38,11 +37,11 @@ Path Content ``./qtip/`` the actual package ``./tests/`` package functional and unit tests ``./third-party/`` third part included in QTIP project -================== ======================================================================================================== +================== ==================================================================================================== + -************ Coding Style -************ +============ QTIP follows `OpenStack Style Guidelines`_ for source code and commit message. @@ -52,19 +51,19 @@ Specially, it is recommended to link each patch set with a JIRA issue. Put:: in commit message to create an automatic link. -******* + Testing -******* +======= All testing related code are stored in ``./tests/`` -================== ======================================================================================================== +================== ==================================================================================================== Path Content -================== ======================================================================================================== +================== ==================================================================================================== ``./tests/data/`` data fixtures for testing ``./tests/unit/`` unit test for each module, follow the same layout as ./qtip/ ``./conftest.py`` pytest configuration in project scope -================== ======================================================================================================== +================== ==================================================================================================== `tox`_ is used to automate the testing tasks diff --git a/docs/testing/user/configguide/configuration.rst b/docs/testing/user/configguide/configuration.rst index 8cc891f0..0ca7ae8c 100644 --- a/docs/testing/user/configguide/configuration.rst +++ b/docs/testing/user/configguide/configuration.rst @@ -68,14 +68,14 @@ Environment configuration Hardware configuration ---------------------- -Qtip does not have specific hardware requriements, and it can runs over any +QTIP does not have specific hardware requriements, and it can runs over any OPNFV installer. Jumphost configuration ---------------------- -Installer Docker on Jumphost, which is used for running Qtip image. +Installer Docker on Jumphost, which is used for running QTIP image. You can refer to these links: diff --git a/docs/testing/user/configguide/index.rst b/docs/testing/user/configguide/index.rst index d5e05d63..43c32cab 100644 --- a/docs/testing/user/configguide/index.rst +++ b/docs/testing/user/configguide/index.rst @@ -4,9 +4,9 @@ .. (c) 2016 ZTE Corp. -################# -QTIP Config Guide -################# +********************************* +QTIP Installation & Configuration +********************************* .. toctree:: :maxdepth: 2 diff --git a/docs/testing/user/userguide/api.rst b/docs/testing/user/userguide/api.rst index 080fef5f..7e1d7b1c 100644 --- a/docs/testing/user/userguide/api.rst +++ b/docs/testing/user/userguide/api.rst @@ -1,6 +1,10 @@ -************** -QTIP API Usage -************** +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +*************** +API User Manual +*************** QTIP consists of a number of benchmarking tools or metrics, grouped under QPI's. QPI's map to the different components of an NFVI ecosystem, such as compute, network and storage. Depending on the type of application, diff --git a/docs/testing/user/userguide/cli.rst b/docs/testing/user/userguide/cli.rst index 96026c5b..99efd930 100644 --- a/docs/testing/user/userguide/cli.rst +++ b/docs/testing/user/userguide/cli.rst @@ -1,6 +1,10 @@ -************** -QTIP CLI Usage -************** +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +*************** +CLI User Manual +*************** QTIP consists of a number of benchmarking tools or metrics, grouped under QPI's. QPI's map to the different components of a NFVI ecosystem, such as compute, network and storage. Depending on the type of application, diff --git a/docs/testing/user/userguide/qpi-compute.rst b/docs/testing/user/userguide/compute.rst index d64925bd..f889bfe6 100644 --- a/docs/testing/user/userguide/qpi-compute.rst +++ b/docs/testing/user/userguide/compute.rst @@ -4,11 +4,9 @@ .. (c) 2016 ZTE Corp. -Compute QPI -=========== - -Introduction ------------- +******************************** +Compute Performance Benchmarking +******************************** The compute QPI aims to benchmark the compute components of an OPNFV platform. Such components include, the CPU performance, the memory performance. @@ -23,13 +21,14 @@ Note: The Compute benchmank constains relatively old benchmarks such as dhryston and whetstone. The suite would be updated for better benchmarks such as Linbench for the OPNFV E release. -Getting start with compute QPI ------------------------------- + +Getting started +=============== Notice: All descriptions are based on QTIP container. Inventory File -^^^^^^^^^^^^^^ +-------------- QTIP uses Ansible to trigger benchmark test. Ansible uses an inventory file to determine what hosts to work against. QTIP can automatically generate a inventory @@ -43,7 +42,7 @@ IP addresses. For example: 10.20.0.12 QTIP key Pair -^^^^^^^^^^^^^ +------------- QTIP use a SSH key pair to connect to remote hosts. When users execute compute QPI, QTIP will generate a key pair named *QtipKey* under ``/home/opnfv/qtip/`` and pass @@ -54,8 +53,8 @@ manual. If *CI_DEBUG* is not set or set to *false*, QTIP will delete the key fro remote hosts before the execution ends. Please make sure the key deleted from remote hosts or it can introduce a security flaw. -Commands to run compute QPI -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Commands +-------- In a QTIP container, you can run compute QPI by using QTIP CLI: :: @@ -68,8 +67,8 @@ timestamp name. you can get more details from *userguide/cli.rst*. -Benchmarks ----------- +Metrics +------- The benchmarks include: diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst index 04a12f08..d0d555f8 100644 --- a/docs/testing/user/userguide/index.rst +++ b/docs/testing/user/userguide/index.rst @@ -4,9 +4,9 @@ .. (c) 2016 ZTE Corp. -############### +*************** QTIP User Guide -############### +*************** .. toctree:: :maxdepth: 2 @@ -14,4 +14,4 @@ QTIP User Guide overview.rst cli.rst api.rst - qpi-compute.rst + compute.rst diff --git a/docs/testing/user/userguide/overview.rst b/docs/testing/user/userguide/overview.rst index 1ad0b670..726d70bc 100644 --- a/docs/testing/user/userguide/overview.rst +++ b/docs/testing/user/userguide/overview.rst @@ -3,9 +3,9 @@ .. (c) 2017 ZTE Corp. -############ -Introduction -############ +******** +Overview +******** `QTIP`_ is the project for **Platform Performance Benchmarking** in `OPNFV`_. It aims to provide user a simple indicator for performance, simple but supported by comprehensive testing data and transparent calculation formula. @@ -18,9 +18,9 @@ performance. **TRUE** reflects the core value of QPI in four aspects - *Understandable*: QPI is broke down into section scores, and workload scores in report to help user to understand - *Extensible*: users may create their own QPI by composing the existed metrics in QTIP or extend new metrics -########## + Benchmarks -########## +========== The builtin benchmarks of QTIP are located in ``<package_root>/benchmarks`` folder diff --git a/legacy/config/SampleHeat.yaml b/legacy/config/SampleHeat.yaml index 05f4c0b5..650c6a0c 100644 --- a/legacy/config/SampleHeat.yaml +++ b/legacy/config/SampleHeat.yaml @@ -9,7 +9,7 @@ heat_template_version: 2015-04-30 description: > - Used to run VMs for Qtip + Used to run VMs for QTIP parameters: image: diff --git a/legacy/docs/apidocs/qtip_restful_api.rst b/legacy/docs/apidocs/qtip_restful_api.rst index 06c01292..7e48b95b 100644 --- a/legacy/docs/apidocs/qtip_restful_api.rst +++ b/legacy/docs/apidocs/qtip_restful_api.rst @@ -4,7 +4,7 @@ .. (c) 2016 ZTE Corp. **************** -Qtip restful api +QTIP restful api **************** -You can get all the Qtip restful api by http://restful_api.qtip.openzero.net/api/spec.html. +You can get all the QTIP restful api by http://restful_api.qtip.openzero.net/api/spec.html. diff --git a/qtip/cli/commands/cmd_report.py b/qtip/cli/commands/cmd_report.py index c9f31f4a..ebc0ef77 100644 --- a/qtip/cli/commands/cmd_report.py +++ b/qtip/cli/commands/cmd_report.py @@ -18,7 +18,7 @@ pass_context = click.make_pass_decorator(Context, ensure=False) @click.group() @pass_context def cli(ctx): - """ View Qtip results""" + """ View QTIP results""" pass |