diff options
-rw-r--r-- | docs/release/release-notes/index.rst | 4 | ||||
-rw-r--r-- | docs/testing/developer/devguide/api.rst | 11 | ||||
-rw-r--r-- | docs/testing/developer/devguide/arch.rst | 6 | ||||
-rw-r--r-- | docs/testing/developer/devguide/cli.rst | 103 | ||||
-rw-r--r-- | docs/testing/developer/devguide/index.rst | 6 | ||||
-rw-r--r-- | docs/testing/developer/devguide/overview.rst | 31 | ||||
-rw-r--r-- | docs/testing/user/configguide/index.rst | 6 | ||||
-rw-r--r-- | docs/testing/user/userguide/api.rst | 10 | ||||
-rw-r--r-- | docs/testing/user/userguide/cli.rst | 10 | ||||
-rw-r--r-- | docs/testing/user/userguide/compute.rst (renamed from docs/testing/user/userguide/qpi-compute.rst) | 25 | ||||
-rw-r--r-- | docs/testing/user/userguide/index.rst | 6 | ||||
-rw-r--r-- | docs/testing/user/userguide/overview.rst | 10 |
12 files changed, 152 insertions, 76 deletions
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 487bdec5..7c681a64 100644 --- a/docs/testing/developer/devguide/cli.rst +++ b/docs/testing/developer/devguide/cli.rst @@ -1,24 +1,93 @@ -- Which framework has been used and why -- How to extend to more commands +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 -Original content from DEVELOP.md - ### CLI +**************************** +CLI - Command Line Interface +**************************** - Click currently supports Bash completion. The prerequisite for this is that the program - needs to be installed correctly. To install Qtip, execute the following command in root - folder of Qtip: +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 +the end user would want to measure performance. CLI is designed to help the user, execute benchmarks and +view respective scores. - ``` - cd <project root> - pip install -e . - ``` +Framework +========= - Once the installation has been completed successfully, the following needs to be added to - the `.bashrc` file: +QTIP CLI has been created using the Python package `Click`_, Command Line Interface Creation Kit. It has been +chosen for number of reasons. It presents the user with a very simple yet powerful API to build complex +applications. One of the most striking features is command nesting. - ``` - eval "$(_QTIP_COMPLETE=source qtip)" - ``` +As explained, QTIP consists of metrics, QPI's and plans. CLI is designed to provide interface to all +these components. It is responsible for execution, as well as provide listing and details of each individual +element making up these components. - The above would activate command completion for Qtip. +Design +====== + +CLI's entry point extends Click's built in MultiCommand class object. It provides two methods, which are +overridden to provide custom configurations. + +.. code-block:: python + + class QtipCli(click.MultiCommand): + + def list_commands(self, ctx): + rv = [] + for filename in os.listdir(cmd_folder): + if filename.endswith('.py') and \ + filename.startswith('cmd_'): + rv.append(filename[4:-3]) + rv.sort() + return rv + + def get_command(self, ctx, name): + try: + if sys.version_info[0] == 2: + name = name.encode('ascii', 'replace') + mod = __import__('qtip.cli.commands.cmd_' + name, + None, None, ['cli']) + except ImportError: + return + return mod.cli + +Commands and subcommands will then be loaded by the ``get_command`` method above. + +Extending the Framework +======================= + +Framework can be easily extended, as per the users requirements. One such example can be to override the builtin +configurations with user defined ones. These can be written in a file, loaded via a Click Context and passed +through to all the commands. + +.. code-block:: python + + class Context: + + def __init__(): + + self.config = ConfigParser.ConfigParser() + self.config.read('path/to/configuration_file') + + def get_paths(): + + paths = self.config.get('section', 'path') + return paths + +The above example loads configuration from user defined paths, which then need to be provided to the actual +command definitions. + +.. code-block:: python + + from qtip.cli.entry import Context + + pass_context = click.make_pass_decorator(Context, ensure=False) + + @cli.command('list', help='List the Plans') + @pass_context + def list(ctx): + plans = Plan.list_all(ctx.paths()) + table = utils.table('Plans', plans) + click.echo(table) + +.. _Click: http://click.pocoo.org/5/ diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst index 89113e56..1c993dc9 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 -########################## +*************** +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/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 |