Distributed data-plane performance testing tool
Go to file
Ilya Shakhat 9168689007 Resolve py27 and pep8 job failures
1. Cap version of stestr for py27 (the latest version is py3 only).

2. Flake8 is runtime dependency of diskimage-builder, currently they use
version >= 3.6.0, so Shaker must conform to this version too.

Failures found by the newer version of flake8:
 * W605 invalid escape sequence -- issues are fixed since they
   correspond to syntax warnings from py36.
 * E305 expected 2 blank lines after class or function definition --
   issues are fixed (older version didn't restrict spaces between
   functions and `if __name__ == "__main__":` block).
 * W504 line break after binary operator -- the rule is ignored since it
   contradicts the code style of the whole project.

Change-Id: I7fa53cfb6b654f5d93df30441a6eb2d47714d479
2020-04-05 15:49:53 +00:00
doc/source Update documentation 2020-03-08 21:53:04 +04:00
etc Update cleanup cfg parameter to a more appropriate name 2019-08-20 10:30:26 -05:00
shaker Resolve py27 and pep8 job failures 2020-04-05 15:49:53 +00:00
tools Update documentation 2020-03-08 21:53:04 +04:00
.dockerignore Pack Shaker into container 2016-08-04 15:36:41 +03:00
.gitignore Enhance Shaker to support custom user options 2018-11-06 16:53:26 -06:00
.gitreview OpenDev Migration Patch 2019-04-19 19:25:34 +00:00
.stestr.conf Switch to stestr 2018-07-06 10:33:13 +07:00
.zuul.yaml Add a job to mirror the code from OpenDev to Github 2020-03-08 02:03:52 +04:00
config-generator.conf Fix config processing for oslo.log 2015-03-03 17:38:25 +03:00
Dockerfile Add Zuul job to build Docker image 2018-11-09 09:31:01 +01:00
LICENSE Initial commit 2015-01-28 18:56:01 +03:00
openstack-common.conf Use oslo.log lib instead of incunator code 2015-03-03 16:14:19 +03:00
README.rst Update project links and package metadata 2019-09-09 11:00:56 +02:00
readthedocs.yml Fix docs gate and rtd build 2016-12-14 12:51:10 +04:00
requirements.txt Cap requirements for Python version below 3.6 2020-03-09 19:22:17 +04:00
rtd-requirements.txt Fix docs gate and rtd build 2016-12-14 12:51:10 +04:00
setup.cfg Update project links and package metadata 2019-09-09 11:00:56 +02:00
setup.py Update requirements and pin pyzmq 2015-11-12 14:05:16 +03:00
test-requirements.txt Resolve py27 and pep8 job failures 2020-04-05 15:49:53 +00:00
tox.ini Resolve py27 and pep8 job failures 2020-04-05 15:49:53 +00:00

Shaker

The distributed data-plane testing tool built for OpenStack.

Shaker wraps around popular system network testing tools like iperf, iperf3 and netperf (with help of flent). Shaker is able to deploy OpenStack instances and networks in different topologies. Shaker scenario specifies the deployment and list of tests to execute. Additionally tests may be tuned dynamically in command-line.

Features

  • User-defined topology via Heat templates
  • Simultaneously test execution on multiple instances
  • Interactive report with stats and charts
  • Built-in SLA verification

Deployment Requirements

  • Shaker server routable from OpenStack cloud
  • Admin-user access to OpenStack API is preferable

Run in Python Environment

$ pip install pyshaker
$ . openrc
$ shaker-image-builder
$ shaker --server-endpoint <host:port> --scenario <scenario> --report <report.html>``
where:
  • host and port - host and port of machine where Shaker is deployed
  • scenario - the scenario to execute, e.g. openstack/perf_l2 ( catalog)
  • <report.html> - file to store the final report

Full list of parameters is available in documentation.

Shaker in Container

Shaker is available as container at Docker Hub at performa/shaker

$ docker run -p <port>:<port> -v <artifacts-dir>:/artifacts performa/shaker --scenario <scenario> --server-endpoint <host:port>
  --os-auth-url <os-auth-url> --os-username <os-username> --os-password <os-password> --os-project-name <os-project-name>
where:
  • host and port - host and port on machine where Shaker is deployed
  • artifacts-dir - where to store report and raw result
  • scenario - the scenario to execute, e.g. openstack/perf_l2 ( catalog)
  • os-XXX - OpenStack cloud credentials