From 45d371c2a2d89231db9ffa892ce19da8f8b3cfa4 Mon Sep 17 00:00:00 2001 From: yuyang Date: Mon, 19 Jun 2017 16:19:26 +0800 Subject: [PATCH] Docs for Danube 3 JIRA: BOTTLENECKS-137 Documentation for Danube 3 Change-Id: Ic4b2611028fa45c0b731e998296e5000e35a33f6 Signed-off-by: yuyang (cherry picked from commit 38074a81bcb2a97bd59f274815dbfa67ab487c59) --- docs/images/Framework_Setup.png | Bin 28215 -> 0 bytes docs/images/example.png | 0 docs/release/release-notes/release_notes.rst | 150 ++++++++++++------------ docs/testing/developer/devguide/overview.rst | 12 +- docs/testing/developer/devguide/posca_guide.rst | 29 ++++- 5 files changed, 110 insertions(+), 81 deletions(-) delete mode 100644 docs/images/Framework_Setup.png delete mode 100644 docs/images/example.png diff --git a/docs/images/Framework_Setup.png b/docs/images/Framework_Setup.png deleted file mode 100644 index 4d175e0775ad24acbf185a29a0143c0a2e6e594a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28215 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 diff --git a/docs/images/example.png b/docs/images/example.png deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/release/release-notes/release_notes.rst b/docs/release/release-notes/release_notes.rst index cf1b51ee..d529bf7d 100644 --- a/docs/release/release-notes/release_notes.rst +++ b/docs/release/release-notes/release_notes.rst @@ -50,6 +50,9 @@ Version History | Apr 25th, 2017 | 1.4 | Bottlenecks Danube release 2.0 | | | | | +----------------+--------------------+---------------------------------+ +| Jun 19th, 2017 | 1.5 | Bottlenecks Danube release 3.0 | +| | | | ++----------------+--------------------+---------------------------------+ Summary ======= @@ -75,75 +78,75 @@ Release Data Danube Release Data ----------------------- -+--------------------------------------+--------------------------------------+ -| **Project** | Bottlenecks | -| | | -+--------------------------------------+--------------------------------------+ -| **Repo/tag** | * Bottlenecks/danube.1.0 | -| | * Bottlenecks/danube.2.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Bottlenecks Docker image tag** | * danube.1.0 | -| | * danube.2.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release designation** | * Danube 1.0 | -| | * Danube 2.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release date** | * March 31st 2017 | -| | * May 1st 2017 | -| | | -+--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Danube stable release | -| | | -+--------------------------------------+--------------------------------------+ ++--------------------------------------+--------------------------------+ +| **Project** | Bottlenecks | +| | | ++--------------------------------------+--------------------------------+ +| **Repo/tag** | * Bottlenecks/danube.1.0 | +| | * Bottlenecks/danube.2.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Bottlenecks Docker image tag** | * danube.1.0 | +| | * danube.2.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release designation** | * Danube 1.0 | +| | * Danube 2.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release date** | * March 31st 2017 | +| | * May 1st 2017 | +| | | ++--------------------------------------+--------------------------------+ +| **Purpose of the delivery** | Danube stable release | +| | | ++--------------------------------------+--------------------------------+ Colorado Release Data ----------------------- -+--------------------------------------+--------------------------------------+ -| **Project** | Bottlenecks | -| | | -+--------------------------------------+--------------------------------------+ -| **Repo/tag** | Bottlenecks/colorado.1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Bottlenecks Docker image tag** | * colorado.1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release designation** | * Colorado 1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release date** | * September 22 2016 | -| | | -+--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Colorado stable release | -| | | -+--------------------------------------+--------------------------------------+ ++--------------------------------------+--------------------------------+ +| **Project** | Bottlenecks | +| | | ++--------------------------------------+--------------------------------+ +| **Repo/tag** | Bottlenecks/colorado.1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Bottlenecks Docker image tag** | * colorado.1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release designation** | * Colorado 1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release date** | * September 22 2016 | +| | | ++--------------------------------------+--------------------------------+ +| **Purpose of the delivery** | Colorado stable release | +| | | ++--------------------------------------+--------------------------------+ Bramaputra Release Data ----------------------- -+--------------------------------------+--------------------------------------+ -| **Project** | Bottlenecks | -| | | -+--------------------------------------+--------------------------------------+ -| **Repo/tag** | Bottlenecks/brahmaputra.1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Bottlenecks Docker image tag** | * brahmaputra.1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release designation** | * Brahmaputra 1.0 | -| | | -+--------------------------------------+--------------------------------------+ -| **Release date** | * February 25 2016 | -| | | -+--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Brahmaputra stable release | -| | | -+--------------------------------------+--------------------------------------+ ++--------------------------------------+--------------------------------+ +| **Project** | Bottlenecks | +| | | ++--------------------------------------+--------------------------------+ +| **Repo/tag** | Bottlenecks/brahmaputra.1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Bottlenecks Docker image tag** | * brahmaputra.1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release designation** | * Brahmaputra 1.0 | +| | | ++--------------------------------------+--------------------------------+ +| **Release date** | * February 25 2016 | +| | | ++--------------------------------------+--------------------------------+ +| **Purpose of the delivery** | Brahmaputra stable release | +| | | ++--------------------------------------+--------------------------------+ Danube Deliverables @@ -152,7 +155,7 @@ Danube Deliverables Software Deliverables --------------------- -**Bottlenecks source code ** +**Bottlenecks source code ** * https://gerrit.opnfv.org/gerrit/gitweb?p=bottlenecks.git;a=summary @@ -160,7 +163,7 @@ Software Deliverables Documentatiion Deliverables --------------------------- -**Bottlenecks documentation ** +**Bottlenecks documentation ** * Release Notes: http://docs.opnfv.org/en/stable-danube/submodules/bottlenecks/docs/release/release-notes/release_notes.html * User Guide: http://docs.opnfv.org/en/stable-danube/submodules/bottlenecks/docs/testing/user/userguide/index.html @@ -192,7 +195,7 @@ Reason for Version ================== * In Danube, POSCA testsuite is introduced and two stress tests are implemented. Rubbos and vstf are -not supported in this release. +not supported in this release. Their documentations for former releases will only be kept this release. * In Colorado, rubbos is refactored by using puppet, which makes it quite flexible to configure with different number of load generator(Client), worker(tomcat). * In Colorado, vstf is refactored by extracting the test case's configuration information. @@ -240,20 +243,19 @@ The test results are reported to MongoDB. An example is given below. } For more information, please refer to: https://wiki.opnfv.org/display/testing/Result+alignment+for+ELK+post-processing + - Results reported in MongoDB could find at http://testresults.opnfv.org/test/api/v1/results?project=bottlenecks + - Test Cases are defined in http://testresults.opnfv.org/test/api/v1/results?project=bottlenecks Open JIRA tickets ================= -+------------------+-----------------------------------------------+ -| JIRA | Description | -+==================+===============================================+ -| BOTTLENECK-103 | Refactoring the Bottlenecks tesing workflow | -+------------------+-----------------------------------------------+ -| BOTTLENECK-135 | Avoiding docker-compose building new image | -| | for Bottlenecks | -+------------------+-----------------------------------------------+ -| BOTTLENECK-147 | Investigting why calling remote docker client | -+------------------+-----------------------------------------------+ ++------------------+----------------------------------------------------+ +| JIRA | Description | ++==================+====================================================+ +| BOTTLENECK-103 | Refactoring the Bottlenecks tesing workflow | ++------------------+----------------------------------------------------+ +| BOTTLENECK-147 | Investigting why calling remote docker client | ++------------------+----------------------------------------------------+ Useful links diff --git a/docs/testing/developer/devguide/overview.rst b/docs/testing/developer/devguide/overview.rst index f561bfab..f2e8bff1 100644 --- a/docs/testing/developer/devguide/overview.rst +++ b/docs/testing/developer/devguide/overview.rst @@ -20,7 +20,7 @@ Virtual switch test framework(VSTF) is also introduced, which is an test framework used for vswitch performance test. Colorado: rubbos is refactored by using puppet, which makes it quite flexible -to configure with different number of load generator(Client), worker(tomcat). +to configure with different number of load generator (Client), worker (tomcat). vstf is refactored by extracting the test case's configuration information. Danube: posca testsuite is introduced to implementing stress (factor), scenario and @@ -30,7 +30,7 @@ community CI pipeline. Rubbos and VSTF are not supported any more. Integration Description ======================= +-------------+----------------------+----------------------+ -| Release | integrated installer | Supported Testsuite | +| Release | Integrated Installer | Supported Testsuite | +-------------+----------------------+----------------------+ | Brahmaputra | Fuel | Rubbos, VSTF | +-------------+----------------------+----------------------+ @@ -42,6 +42,10 @@ Integration Description Test suite & Test case Description ================================== +--------+-------------------------------+ +|POSCA | posca_factor_ping | +| +-------------------------------+ +| | posca_factor_system_bandwidth | ++--------+-------------------------------+ |Rubbos | rubbos_basic | | +-------------------------------+ | | rubbos_TC1101 | @@ -70,7 +74,3 @@ Test suite & Test case Description | +-------------------------------+ | | vstf_Tu3 | +--------+-------------------------------+ -|posca | posca_factor_ping | -| +-------------------------------+ -| | posca_factor_system_bandwidth | -+--------+-------------------------------+ diff --git a/docs/testing/developer/devguide/posca_guide.rst b/docs/testing/developer/devguide/posca_guide.rst index 5d101a6e..ae6c2481 100644 --- a/docs/testing/developer/devguide/posca_guide.rst +++ b/docs/testing/developer/devguide/posca_guide.rst @@ -138,10 +138,37 @@ If you want to clean the dockers that established during the test, you can excut docker-compose -f docker/bottleneck-compose/docker-compose.yml down -d docker ps -a | grep 'influxdb' | awk '{print $1}' | xargs docker rm -f >/dev/stdout +Or you can just run the following command + +.. code-block:: bash + + bash run_tests.sh --cleanup + +Note that you can also add cleanup parameter when you run a test case. Then environment will be automatically cleaned up when +completing the test. Run POSCA through Community CI ============================== -* POSCA test cases are runned by OPNFV CI now. See https://build.opnfv.org for more information. +POSCA test cases are runned by OPNFV CI now. See https://build.opnfv.org for details of the building jobs. +Each building job is set up to execute a single test case. The test results/logs will be printed on the web page and +reported automatically to community MongoDB. There are two ways to report the results. + +1. Report testing result by shell script + +.. code-block:: bash + + bash run_tests.sh [-h|--help] [-s ] [-c ] --report + +2. Report testing result by python interpreter + +.. code-block:: bash + + docker-compose -f docker/bottleneck-compose/docker-compose.yml up -d + docker pull tutum/influxdb:0.13 + sleep 5 + REPORT="True" + POSCA_SCRIPT="/home/opnfv/bottlenecks/testsuites/posca" + docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py [testcase ] [teststory ] REPORT Test Result Description ======================= -- 2.16.6