We are pumped to announce the release of: rally 3.0.0: Generic Testing Framework & Tool that unifies all types of testing. The source is available from: https://opendev.org/openstack/rally Download the package from: https://pypi.org/project/rally For more details, please see below. Changes in rally 2.1.0..3.0.0 ----------------------------- 2826e909d Remove rally/ui/templates/base.mako 2255b18be [py3] Remove future imports 9811aa972 Remove install_rally script 89662fffe Propose Rally 3.0.0 57a7b45a0 Add docker image push job to release pipeline 8dbfa86d0 [ci] Remove redundant rally task job files 661130510 Move task results loader helper to a separate module 64c133a5b Get back yamlutils and dummy scenarios 8dbad440d Deprecate rally task results command 30d5a8ed0 Deprecate rally.common.yamlutils and rally.common.fileutils 4a466f2bc Restruct rally.plugins.common module b086b2cd5 Use unittests.mock instead of mock lib c239b13b2 Rework docker build 445be80d3 Improme install jobs to run the simlar workload as tox -eself efe927174 [ci] Restruct zuul_ci playbooks eb3506fbf Include min python version at setup.cfg 70bf09b35 Add some tests for verify function 384fbf497 Rework inner code for JUnit reports 74a2f7870 Stop checking installation on ubuntu-xenial nodes 4687d413b Remove unused test helpers 44c081e23 Ensure python 3.8 is supported e9264de71 Fix loading plugins from path with relative imports 89e1cb858 [ci] Register job reports as zuul atrifacts f28216fc1 Move 'rally.common.sshutils' to 'rally.utils.sshutils' cd43a8c08 Remove 'namespace' argument 182165600 Remove six usage 2c6a3baec Remove outdated not-used script for CI 6d7bbe0d0 Remove outdated and deprecated code fe84cbe09 Follow redirects by path_or_url preprocessor validation ca0f98505 Delete devstack plugin c83118a65 Add base docker-build job 5d0d48a3f Rework caluclating percentiles 1f92a1805 Fix deprecated things 1c45d725e Rework discovery plugins to do not use deprecated imp module 302216c1a Fix several issues with plugin discovery error messages 67a46990d Port docker image to use python3 000052f67 Rework rally-install-* jobs 1e501a6e2 Stop supporting python <3.6 53241478c Fix incorrect __round__ behaviour 9dd563035 Fix duplicated words issue like "if we are are here" 7642d345b Fix pep8 job according to latest set of rules f3ba04a92 update comment review url 028d9b372 Update the community page. 996b06060 Fix https_key test e5d05caef Remove redudant 'be' Diffstat (except docs and test files) ------------------------------------- .dockerignore | 2 +- .zuul.d/python-jobs.yaml | 58 +- .zuul.d/zuul.yaml | 95 +- CHANGELOG.rst | 101 ++ etc/docker/README.md => DOCKER_README.md | 11 +- etc/docker/Dockerfile => Dockerfile | 19 +- bindep.txt | 5 +- devstack/README.rst | 30 - devstack/features.yaml | 188 ---- devstack/lib/rally | 128 --- devstack/plugin.sh | 27 - devstack/settings | 3 - .../step_10_profiling_openstack_internals.rst | 2 +- etc/docker/README_FIRST.rst | 11 - etc/docker/hooks/post_checkout | 18 - etc/{docker/motd => motd_for_docker} | 0 install_rally.sh | 826 -------------- optional-requirements.txt | 9 - rally-jobs/README.rst | 40 - rally-jobs/extra/README.rst | 11 - rally-jobs/extra/hook_example_script.sh | 56 - rally-jobs/extra/install_benchmark.sh | 24 - rally-jobs/extra/instance_test.sh | 107 -- rally-jobs/nova.yaml | 1176 -------------------- rally-jobs/rally-neutron-existing-users.yaml | 128 --- rally-jobs/rally-neutron.yaml | 817 -------------- rally-jobs/rally-watcher.yaml | 62 -- rally-jobs/rally.yaml | 757 ------------- rally-jobs/rally_args.yaml | 3 - rally/api.py | 10 +- rally/cli/cliutils.py | 56 +- rally/cli/commands/db.py | 2 - rally/cli/commands/deployment.py | 53 +- rally/cli/commands/env.py | 7 +- rally/cli/commands/plugin.py | 5 +- rally/cli/commands/task.py | 302 +---- rally/cli/commands/verify.py | 26 +- rally/cli/envutils.py | 73 +- rally/cli/main.py | 2 - rally/cli/task_results_loader.py | 258 +++++ rally/cli/yamlutils.py | 68 ++ rally/common/db/api.py | 6 +- ...2016_04_4ef544102ba7_change_task_status_enum.py | 8 +- ...16_07_54e844ebfbc3_update_deployment_configs.py | 4 +- rally/common/db/models.py | 3 +- rally/common/fileutils.py | 71 +- rally/common/i18n.py | 41 - rally/common/io/junit.py | 195 +++- rally/common/io/subunit_v2.py | 14 +- rally/common/logging.py | 12 +- rally/common/objects/task.py | 5 +- rally/common/objects/verification.py | 4 +- rally/common/plugin/discover.py | 54 +- rally/common/plugin/plugin.py | 7 +- rally/common/sshutils.py | 280 +---- rally/common/streaming_algorithms.py | 106 +- rally/common/utils.py | 57 +- rally/common/validation.py | 17 +- rally/common/yamlutils.py | 62 +- rally/env/env_mgr.py | 2 +- rally/exceptions.py | 7 +- rally/plugins/__init__.py | 10 +- rally/plugins/common/exporters/elastic/client.py | 148 +-- rally/plugins/common/exporters/elastic/exporter.py | 374 +------ rally/plugins/common/exporters/elastic/flatten.py | 57 +- rally/plugins/common/exporters/html.py | 46 +- rally/plugins/common/exporters/json_exporter.py | 113 +- rally/plugins/common/exporters/junit.py | 109 +- rally/plugins/common/exporters/trends.py | 30 +- rally/plugins/common/hook/sys_call.py | 56 +- rally/plugins/common/hook/triggers/event.py | 64 +- rally/plugins/common/hook/triggers/periodic.py | 59 +- rally/plugins/common/runners/constant.py | 333 +----- rally/plugins/common/runners/rps.py | 285 +---- rally/plugins/common/runners/serial.py | 67 +- rally/plugins/common/scenarios/dummy/dummy.py | 253 +---- .../common/scenarios/requests/http_requests.py | 50 +- rally/plugins/common/scenarios/requests/utils.py | 32 +- rally/plugins/common/sla/failure_rate.py | 57 +- rally/plugins/common/sla/iteration_time.py | 43 +- rally/plugins/common/sla/max_average_duration.py | 46 +- .../common/sla/max_average_duration_per_atomic.py | 63 +- rally/plugins/common/sla/outliers.py | 101 +- .../plugins/common/sla/performance_degradation.py | 62 +- rally/plugins/common/types.py | 61 +- rally/plugins/common/validators.py | 27 +- rally/plugins/common/verification/reporters.py | 475 +------- rally/plugins/common/verification/testr.py | 149 +-- .../plugins/{common/contexts => task}/__init__.py | 0 .../plugins/task}/contexts/__init__.py | 0 rally/plugins/{common => task}/contexts/dummy.py | 0 .../plugins/task}/exporters/__init__.py | 0 .../plugins/task}/exporters/elastic/__init__.py | 0 rally/plugins/task/exporters/elastic/client.py | 159 +++ rally/plugins/task/exporters/elastic/exporter.py | 386 +++++++ rally/plugins/task/exporters/elastic/flatten.py | 65 ++ rally/plugins/task/exporters/html.py | 56 + rally/plugins/task/exporters/json_exporter.py | 123 ++ rally/plugins/task/exporters/junit.py | 96 ++ rally/plugins/task/exporters/old_json_results.py | 121 ++ rally/plugins/task/exporters/trends.py | 40 + .../plugins/task/hook_triggers}/__init__.py | 0 rally/plugins/task/hook_triggers/event.py | 74 ++ rally/plugins/task/hook_triggers/periodic.py | 69 ++ .../plugins/task/hooks}/__init__.py | 0 rally/plugins/task/hooks/sys_call.py | 68 ++ .../plugins/task}/runners/__init__.py | 0 rally/plugins/task/runners/constant.py | 342 ++++++ rally/plugins/task/runners/rps.py | 296 +++++ rally/plugins/task/runners/serial.py | 77 ++ .../plugins/task}/scenarios/__init__.py | 0 .../plugins/task}/scenarios/dummy/__init__.py | 0 rally/plugins/task/scenarios/dummy/dummy.py | 259 +++++ .../plugins/task}/scenarios/requests/__init__.py | 0 .../task/scenarios/requests/http_requests.py | 56 + rally/plugins/task/scenarios/requests/utils.py | 38 + .../common => rally/plugins/task}/sla/__init__.py | 0 rally/plugins/task/sla/failure_rate.py | 67 ++ rally/plugins/task/sla/iteration_time.py | 53 + rally/plugins/task/sla/max_average_duration.py | 56 + .../task/sla/max_average_duration_per_atomic.py | 73 ++ rally/plugins/task/sla/outliers.py | 111 ++ rally/plugins/task/sla/performance_degradation.py | 70 ++ rally/plugins/task/types.py | 71 ++ .../plugins}/verification/__init__.py | 0 rally/plugins/verification/reporters.py | 463 ++++++++ rally/plugins/verification/testr.py | 161 +++ rally/task/atomic.py | 37 - rally/task/context.py | 12 +- rally/task/engine.py | 29 +- rally/task/exporter.py | 5 +- rally/task/hook.py | 21 +- rally/task/processing/charts.py | 163 ++- rally/task/processing/plot.py | 10 +- rally/task/processing/utils.py | 21 +- rally/task/runner.py | 6 +- rally/task/scenario.py | 6 +- rally/task/service.py | 23 +- rally/task/sla.py | 12 +- rally/task/task_cfg.py | 5 +- rally/task/trigger.py | 40 - rally/task/types.py | 5 +- rally/task/utils.py | 76 +- rally/ui/templates/base.mako | 56 - rally/utils/encodeutils.py | 18 +- rally/utils/sshutils.py | 294 +++++ rally/utils/strutils.py | 6 +- rally/verification/manager.py | 13 +- rally/verification/reporter.py | 4 +- rally/verification/utils.py | 7 +- requirements.txt | 4 +- setup.cfg | 8 +- setup.py | 8 - test-requirements.txt | 6 +- .../ci/playbooks/build-and-check-docker-image.yaml | 4 + .../build-check-and-push-docker-image.yaml | 5 + .../ci/playbooks/fetch-html-and-json-reports.yaml | 42 + .../run.yaml => rally-database-migration-run.yaml} | 4 +- .../roles/build_docker_image/defaults/main.yaml | 3 + .../roles/build_docker_image/tasks/main.yaml | 24 + .../roles/push_docker_image/defaults/main.yaml | 4 + .../roles/push_docker_image/tasks/main.yaml | 42 + .../pre-run.yaml => tox-install.yaml} | 8 +- .../{rally-tox-base/run.yaml => tox-run.yaml} | 0 .../{common => task}/contexts/test_dummy.py | 3 +- .../plugins/task/exporters/elastic/__init__.py | 0 .../exporters/elastic/test_client.py | 7 +- .../exporters/elastic/test_exporter.py | 8 +- .../exporters/elastic/test_flatten.py | 2 +- .../{common => task}/exporters/junit_report.xml | 0 .../{common => task}/exporters/test_html.py | 68 +- .../exporters/test_json_exporter.py | 17 +- .../{common => task}/exporters/test_junit.py | 13 +- .../task/exporters/test_old_json_results.py | 148 +++ .../{common => task}/exporters/test_trends.py | 7 +- .../triggers => task/hook_triggers}/test_event.py | 5 +- .../hook_triggers}/test_periodic.py | 5 +- .../{common/hook => task/hooks}/test_sys_call.py | 8 +- .../{common => task}/runners/test_constant.py | 13 +- .../plugins/{common => task}/runners/test_rps.py | 14 +- .../{common => task}/runners/test_serial.py | 4 +- .../unit/plugins/task/scenarios/dummy/__init__.py | 0 .../{common => task}/scenarios/dummy/test_dummy.py | 6 +- .../plugins/task/scenarios/requests/__init__.py | 0 .../scenarios/requests/test_http_requests.py | 7 +- .../scenarios/requests/test_utils.py | 5 +- .../{common => task}/sla/test_failure_rate.py | 2 +- .../{common => task}/sla/test_iteration_time.py | 2 +- .../sla/test_max_average_duration.py | 2 +- .../sla/test_max_average_duration_per_atomic.py | 2 +- .../plugins/{common => task}/sla/test_outliers.py | 2 +- .../sla/test_performance_degradation.py | 2 +- .../{common => }/verification/junit_report.xml | 0 .../{common => }/verification/test_reporters.py | 13 +- .../{common => }/verification/test_testr.py | 7 +- tox.ini | 64 +- upper-constraints.txt | 6 +- 307 files changed, 7264 insertions(+), 11854 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 3abfe2580..25108c1a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,2 +21 @@ python-subunit -requests<2.20.0;python_version=='3.4' # Apache License, Version 2.0 -requests!=2.20.0;python_version!='3.4' # Apache License, Version 2.0 +requests!=2.20.0 # Apache License, Version 2.0 @@ -24 +22,0 @@ SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT -six # MIT diff --git a/test-requirements.txt b/test-requirements.txt index fda0a0ac5..7081aa12b 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -7 +6,0 @@ hacking>=0.12.0,!=0.13.0 # Apache Software License -pytest>=2.7,<5.0.0;python_version<='3.4' # MIT @@ -17 +15,0 @@ ddt # MIT -mock # OSI Approved :: BSD License @@ -24,0 +23,4 @@ testresources # UNKNOWN + +# needed for functional job +stestr # Apache Software License +mock \ No newline at end of file
participants (1)
-
no-reply@openstack.org