From 4c146445ac0a5c02b6397395c3a10e1744dd3bc6 Mon Sep 17 00:00:00 2001 From: Anton Studenov Date: Mon, 27 Mar 2017 20:04:14 +0300 Subject: [PATCH] [Core] Add support for default platform and rally self job * Added default credentials for all deployments. * Added Dummy.openstack scenario that allows running openstack contexts with dummy scenario. * Removed openstack users context from samples and jobs where it was not required. Co-Authored-By: Anton Studenov Change-Id: I851f2c71e4db25bef17e25c143275e75b16595bf --- rally-jobs/rally-keystone-api-v2.yaml | 153 +++++++++-------- rally-jobs/rally-manila-no-ss.yaml | 2 +- rally-jobs/rally-manila.yaml | 2 +- rally-jobs/rally.yaml | 154 +++++++++--------- rally-jobs/self-rally.yaml | 64 ++++++++ rally/plugins/openstack/scenarios/dummy.py | 22 +++ .../openstack/scenarios/murano/packages.py | 2 +- .../constant/constant-for-duration.json | 6 - .../constant/constant-for-duration.yaml | 4 - .../runners/constant/constant-timeout.json | 6 - .../runners/constant/constant-timeout.yaml | 4 - samples/tasks/runners/rps/rps.json | 6 - samples/tasks/runners/rps/rps.yaml | 4 - samples/tasks/runners/serial/serial.json | 6 - samples/tasks/runners/serial/serial.yaml | 4 - .../dummy/dummy-exception-probability.json | 6 - .../dummy/dummy-exception-probability.yaml | 4 - .../scenarios/dummy/dummy-exception.json | 6 - .../scenarios/dummy/dummy-exception.yaml | 4 - .../tasks/scenarios/dummy/dummy-failure.json | 6 - .../tasks/scenarios/dummy/dummy-failure.yaml | 4 - .../scenarios/dummy/dummy-openstack.json | 11 ++ .../scenarios/dummy/dummy-openstack.yaml | 7 + .../tasks/scenarios/dummy/dummy-output.json | 6 - .../tasks/scenarios/dummy/dummy-output.yaml | 4 - .../scenarios/dummy/dummy-random-action.json | 6 - .../scenarios/dummy/dummy-random-action.yaml | 4 - .../dummy/dummy-timed-atomic-actions.json | 6 - .../dummy/dummy-timed-atomic-actions.yaml | 4 - samples/tasks/scenarios/dummy/dummy.json | 6 - samples/tasks/scenarios/dummy/dummy.yaml | 4 - tests/ci/rally_self_job.sh | 47 ++++++ tests/functional/test_cli_task.py | 12 -- tests/unit/fakes.py | 6 +- tox.ini | 3 +- 35 files changed, 311 insertions(+), 284 deletions(-) create mode 100644 rally-jobs/self-rally.yaml create mode 100644 rally/plugins/openstack/scenarios/dummy.py create mode 100644 samples/tasks/scenarios/dummy/dummy-openstack.json create mode 100644 samples/tasks/scenarios/dummy/dummy-openstack.yaml create mode 100755 tests/ci/rally_self_job.sh diff --git a/rally-jobs/rally-keystone-api-v2.yaml b/rally-jobs/rally-keystone-api-v2.yaml index 3f07c281..a0e7ec44 100644 --- a/rally-jobs/rally-keystone-api-v2.yaml +++ b/rally-jobs/rally-keystone-api-v2.yaml @@ -263,6 +263,81 @@ failure_rate: max: 0 + Dummy.openstack: + - + args: + sleep: 0.01 + runner: + type: "constant" + times: 1 + concurrency: 1 + context: + users: + tenants: 8 + users_per_tenant: 4 + sla: + failure_rate: + max: 0 + - + args: + sleep: 0.6 + runner: + type: "constant" + concurrency: 2 + times: 4 + timeout: 1 + context: + users: + tenants: 1 + users_per_tenant: 1 + sla: + failure_rate: + max: 0 + - + args: + sleep: 0.6 + runner: + type: "rps" + rps: 2 + times: 5 + timeout: 1 + context: + users: + tenants: 1 + users_per_tenant: 1 + sla: + failure_rate: + max: 0 + - + args: + sleep: 0.01 + runner: + type: "constant" + times: 1 + concurrency: 1 + context: + quotas: + nova: + instances: 200 + cores: 200 + ram: -1 + floating_ips: 200 + fixed_ips: 200 + metadata_items: -1 + injected_files: -1 + injected_file_content_bytes: -1 + injected_file_path_bytes: -1 + key_pairs: 500 + security_groups: 400 + security_group_rules: 600 + cinder: + gigabytes: -1 + snapshots: -1 + volumes: -1 + sla: + failure_rate: + max: 0 + Dummy.dummy: - args: @@ -361,80 +436,6 @@ sla: failure_rate: max: 0 - - - args: - sleep: 0.01 - runner: - type: "constant" - times: 1 - concurrency: 1 - context: - users: - tenants: 8 - users_per_tenant: 4 - sla: - failure_rate: - max: 0 - - - args: - sleep: 0.01 - runner: - type: "constant" - times: 1 - concurrency: 1 - context: - quotas: - nova: - instances: 200 - cores: 200 - ram: -1 - floating_ips: 200 - fixed_ips: 200 - metadata_items: -1 - injected_files: -1 - injected_file_content_bytes: -1 - injected_file_path_bytes: -1 - key_pairs: 500 - security_groups: 400 - security_group_rules: 600 - cinder: - gigabytes: -1 - snapshots: -1 - volumes: -1 - sla: - failure_rate: - max: 0 - - - args: - sleep: 0.6 - runner: - type: "rps" - rps: 2 - times: 5 - timeout: 1 - context: - users: - tenants: 1 - users_per_tenant: 1 - sla: - failure_rate: - max: 0 - - - args: - sleep: 0.6 - runner: - type: "constant" - concurrency: 2 - times: 4 - timeout: 1 - context: - users: - tenants: 1 - users_per_tenant: 1 - sla: - failure_rate: - max: 0 - - args: sleep: 0.75 @@ -679,10 +680,6 @@ type: "constant" times: 20 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 sla: failure_rate: min: 25 diff --git a/rally-jobs/rally-manila-no-ss.yaml b/rally-jobs/rally-manila-no-ss.yaml index 1502e2d9..d9a38bae 100644 --- a/rally-jobs/rally-manila-no-ss.yaml +++ b/rally-jobs/rally-manila-no-ss.yaml @@ -1,5 +1,5 @@ --- - Dummy.dummy: + Dummy.openstack: - runner: type: "constant" diff --git a/rally-jobs/rally-manila.yaml b/rally-jobs/rally-manila.yaml index e29e6373..87db39ab 100644 --- a/rally-jobs/rally-manila.yaml +++ b/rally-jobs/rally-manila.yaml @@ -1,5 +1,5 @@ --- - Dummy.dummy: + Dummy.openstack: - runner: type: "constant" diff --git a/rally-jobs/rally.yaml b/rally-jobs/rally.yaml index 81efe58a..705054e0 100644 --- a/rally-jobs/rally.yaml +++ b/rally-jobs/rally.yaml @@ -277,6 +277,82 @@ failure_rate: max: 0 + Dummy.openstack: + - + args: + sleep: 0.01 + runner: + type: "constant" + times: 1 + concurrency: 1 + context: + users: + tenants: 8 + users_per_tenant: 4 + sla: + failure_rate: + max: 0 + - + args: + sleep: 0.6 + runner: + type: "constant" + concurrency: 2 + times: 4 + timeout: 1 + context: + users: + tenants: 1 + users_per_tenant: 1 + sla: + failure_rate: + max: 0 + - + args: + sleep: 0.6 + runner: + type: "rps" + rps: 2 + times: 5 + timeout: 1 + context: + users: + tenants: 1 + users_per_tenant: 1 + sla: + failure_rate: + max: 0 + - + description: "Check 'quotas' context." + args: + sleep: 0.01 + runner: + type: "constant" + times: 1 + concurrency: 1 + context: + quotas: + nova: + instances: 200 + cores: 200 + ram: -1 + floating_ips: 200 + fixed_ips: 200 + metadata_items: -1 + injected_files: -1 + injected_file_content_bytes: -1 + injected_file_path_bytes: -1 + key_pairs: 500 + security_groups: 400 + security_group_rules: 600 + cinder: + gigabytes: -1 + snapshots: -1 + volumes: -1 + sla: + failure_rate: + max: 0 + Dummy.dummy: - args: @@ -381,80 +457,6 @@ sla: failure_rate: max: 0 - - - args: - sleep: 0.01 - runner: - type: "constant" - times: 1 - concurrency: 1 - context: - users: - tenants: 8 - users_per_tenant: 4 - sla: - failure_rate: - max: 0 - - - description: "Check 'quotas' context." - args: - sleep: 0.01 - runner: - type: "constant" - times: 1 - concurrency: 1 - context: - quotas: - nova: - instances: 200 - cores: 200 - ram: -1 - floating_ips: 200 - fixed_ips: 200 - metadata_items: -1 - injected_files: -1 - injected_file_content_bytes: -1 - injected_file_path_bytes: -1 - key_pairs: 500 - security_groups: 400 - security_group_rules: 600 - cinder: - gigabytes: -1 - snapshots: -1 - volumes: -1 - sla: - failure_rate: - max: 0 - - - args: - sleep: 0.6 - runner: - type: "rps" - rps: 2 - times: 5 - timeout: 1 - context: - users: - tenants: 1 - users_per_tenant: 1 - sla: - failure_rate: - max: 0 - - - args: - sleep: 0.6 - runner: - type: "constant" - concurrency: 2 - times: 4 - timeout: 1 - context: - users: - tenants: 1 - users_per_tenant: 1 - sla: - failure_rate: - max: 0 - args: @@ -711,10 +713,6 @@ type: "constant" times: 20 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 sla: failure_rate: min: 25 diff --git a/rally-jobs/self-rally.yaml b/rally-jobs/self-rally.yaml new file mode 100644 index 00000000..c8265fd8 --- /dev/null +++ b/rally-jobs/self-rally.yaml @@ -0,0 +1,64 @@ +--- + RallyProfile.generate_names_in_atomic: + - + args: + number_of_names: 100 + runner: + type: "constant" + times: 1000 + concurrency: 10 + sla: + max_avg_duration_per_atomic: + generate_100_names: 0.015 + failure_rate: + max: 0 + - + args: + number_of_names: 1000 + runner: + type: "constant" + times: 500 + concurrency: 10 + sla: + max_avg_duration_per_atomic: + generate_1000_names: 0.1 + failure_rate: + max: 0 + - + args: + number_of_names: 10000 + runner: + type: "constant" + times: 200 + concurrency: 10 + sla: + max_avg_duration_per_atomic: + generate_10000_names: 1 + failure_rate: + max: 0 + + RallyProfile.calculate_atomic: + - + args: + number_of_atomics: 100 + runner: + type: "constant" + times: 300 + concurrency: 10 + sla: + max_avg_duration_per_atomic: + calculate_100_atomics: 0.04 + failure_rate: + max: 0 + - + args: + number_of_atomics: 500 + runner: + type: "constant" + times: 100 + concurrency: 10 + sla: + max_avg_duration_per_atomic: + calculate_500_atomics: 0.5 + failure_rate: + max: 0 diff --git a/rally/plugins/openstack/scenarios/dummy.py b/rally/plugins/openstack/scenarios/dummy.py new file mode 100644 index 00000000..c3ae7730 --- /dev/null +++ b/rally/plugins/openstack/scenarios/dummy.py @@ -0,0 +1,22 @@ +# Copyright 2017: Mirantis Inc. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from rally.plugins.common.scenarios.dummy import dummy +from rally.task import scenario + + +@scenario.configure(name="Dummy.openstack", namespace="openstack") +class DummyOpenStack(dummy.Dummy): + """Clone of Dummy.dummy for OpenStack""" diff --git a/rally/plugins/openstack/scenarios/murano/packages.py b/rally/plugins/openstack/scenarios/murano/packages.py index 145b281c..ac492d35 100644 --- a/rally/plugins/openstack/scenarios/murano/packages.py +++ b/rally/plugins/openstack/scenarios/murano/packages.py @@ -17,8 +17,8 @@ import os from rally import consts +from rally.plugins.openstack import scenario from rally.plugins.openstack.scenarios.murano import utils -from rally.task import scenario from rally.task import validation diff --git a/samples/tasks/runners/constant/constant-for-duration.json b/samples/tasks/runners/constant/constant-for-duration.json index 29bade2d..2ae04576 100644 --- a/samples/tasks/runners/constant/constant-for-duration.json +++ b/samples/tasks/runners/constant/constant-for-duration.json @@ -8,12 +8,6 @@ "type": "constant_for_duration", "concurrency": 5, "duration": 30 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/runners/constant/constant-for-duration.yaml b/samples/tasks/runners/constant/constant-for-duration.yaml index a957d1f8..70846b6a 100644 --- a/samples/tasks/runners/constant/constant-for-duration.yaml +++ b/samples/tasks/runners/constant/constant-for-duration.yaml @@ -7,7 +7,3 @@ type: "constant_for_duration" concurrency: 5 duration: 30 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/runners/constant/constant-timeout.json b/samples/tasks/runners/constant/constant-timeout.json index dd852462..53917883 100644 --- a/samples/tasks/runners/constant/constant-timeout.json +++ b/samples/tasks/runners/constant/constant-timeout.json @@ -9,12 +9,6 @@ "times": 20, "concurrency": 5, "timeout": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/runners/constant/constant-timeout.yaml b/samples/tasks/runners/constant/constant-timeout.yaml index 6affdd7c..bda73ce1 100644 --- a/samples/tasks/runners/constant/constant-timeout.yaml +++ b/samples/tasks/runners/constant/constant-timeout.yaml @@ -8,7 +8,3 @@ times: 20 concurrency: 5 timeout: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/runners/rps/rps.json b/samples/tasks/runners/rps/rps.json index 34b90c89..85bd892e 100644 --- a/samples/tasks/runners/rps/rps.json +++ b/samples/tasks/runners/rps/rps.json @@ -9,12 +9,6 @@ "times": 20, "rps": 3, "timeout": 6 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/runners/rps/rps.yaml b/samples/tasks/runners/rps/rps.yaml index 637c9b80..c7120f9c 100644 --- a/samples/tasks/runners/rps/rps.yaml +++ b/samples/tasks/runners/rps/rps.yaml @@ -8,7 +8,3 @@ times: 20 rps: 3 timeout: 6 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/runners/serial/serial.json b/samples/tasks/runners/serial/serial.json index 72148ca4..97c77455 100644 --- a/samples/tasks/runners/serial/serial.json +++ b/samples/tasks/runners/serial/serial.json @@ -7,12 +7,6 @@ "runner": { "type": "serial", "times": 20 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/runners/serial/serial.yaml b/samples/tasks/runners/serial/serial.yaml index 0c6ea3f0..3e760b59 100644 --- a/samples/tasks/runners/serial/serial.yaml +++ b/samples/tasks/runners/serial/serial.yaml @@ -6,7 +6,3 @@ runner: type: "serial" times: 20 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-exception-probability.json b/samples/tasks/scenarios/dummy/dummy-exception-probability.json index 1223f01e..353c5367 100644 --- a/samples/tasks/scenarios/dummy/dummy-exception-probability.json +++ b/samples/tasks/scenarios/dummy/dummy-exception-probability.json @@ -8,12 +8,6 @@ "type": "constant", "times": 1000, "concurrency": 1 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-exception-probability.yaml b/samples/tasks/scenarios/dummy/dummy-exception-probability.yaml index 97c5d305..db77b179 100644 --- a/samples/tasks/scenarios/dummy/dummy-exception-probability.yaml +++ b/samples/tasks/scenarios/dummy/dummy-exception-probability.yaml @@ -7,7 +7,3 @@ type: "constant" times: 1000 concurrency: 1 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-exception.json b/samples/tasks/scenarios/dummy/dummy-exception.json index 961e6d02..fa115b5b 100644 --- a/samples/tasks/scenarios/dummy/dummy-exception.json +++ b/samples/tasks/scenarios/dummy/dummy-exception.json @@ -8,12 +8,6 @@ "type": "constant", "times": 20, "concurrency": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-exception.yaml b/samples/tasks/scenarios/dummy/dummy-exception.yaml index 5174c0b1..33e09069 100644 --- a/samples/tasks/scenarios/dummy/dummy-exception.yaml +++ b/samples/tasks/scenarios/dummy/dummy-exception.yaml @@ -7,7 +7,3 @@ type: "constant" times: 20 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-failure.json b/samples/tasks/scenarios/dummy/dummy-failure.json index 87c6ff4d..a6129f85 100644 --- a/samples/tasks/scenarios/dummy/dummy-failure.json +++ b/samples/tasks/scenarios/dummy/dummy-failure.json @@ -11,12 +11,6 @@ "type": "constant", "times": 20, "concurrency": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-failure.yaml b/samples/tasks/scenarios/dummy/dummy-failure.yaml index bf8efa31..f02ac041 100644 --- a/samples/tasks/scenarios/dummy/dummy-failure.yaml +++ b/samples/tasks/scenarios/dummy/dummy-failure.yaml @@ -10,7 +10,3 @@ type: "constant" times: 20 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-openstack.json b/samples/tasks/scenarios/dummy/dummy-openstack.json new file mode 100644 index 00000000..adb5339c --- /dev/null +++ b/samples/tasks/scenarios/dummy/dummy-openstack.json @@ -0,0 +1,11 @@ +{ + "Dummy.openstack": [ + { + "runner": { + "type": "constant", + "times": 1, + "concurrency": 1 + } + } + ] +} diff --git a/samples/tasks/scenarios/dummy/dummy-openstack.yaml b/samples/tasks/scenarios/dummy/dummy-openstack.yaml new file mode 100644 index 00000000..c8efae85 --- /dev/null +++ b/samples/tasks/scenarios/dummy/dummy-openstack.yaml @@ -0,0 +1,7 @@ +--- + Dummy.openstack: + - + runner: + type: "constant" + times: 1 + concurrency: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-output.json b/samples/tasks/scenarios/dummy/dummy-output.json index 8ef42984..08bcc719 100644 --- a/samples/tasks/scenarios/dummy/dummy-output.json +++ b/samples/tasks/scenarios/dummy/dummy-output.json @@ -8,12 +8,6 @@ "type": "constant", "times": 50, "concurrency": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-output.yaml b/samples/tasks/scenarios/dummy/dummy-output.yaml index fe99edfe..c56c7608 100644 --- a/samples/tasks/scenarios/dummy/dummy-output.yaml +++ b/samples/tasks/scenarios/dummy/dummy-output.yaml @@ -7,7 +7,3 @@ type: "constant" times: 50 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-random-action.json b/samples/tasks/scenarios/dummy/dummy-random-action.json index 8f5e67ca..6738a461 100644 --- a/samples/tasks/scenarios/dummy/dummy-random-action.json +++ b/samples/tasks/scenarios/dummy/dummy-random-action.json @@ -10,12 +10,6 @@ "type": "constant", "times": 5, "concurrency": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-random-action.yaml b/samples/tasks/scenarios/dummy/dummy-random-action.yaml index 52a3261a..e844645c 100644 --- a/samples/tasks/scenarios/dummy/dummy-random-action.yaml +++ b/samples/tasks/scenarios/dummy/dummy-random-action.yaml @@ -9,7 +9,3 @@ type: "constant" times: 5 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.json b/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.json index b4eaf4ea..11516fb9 100644 --- a/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.json +++ b/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.json @@ -14,12 +14,6 @@ "max_avg_duration_per_atomic": { "action_0": 1.0 } - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.yaml b/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.yaml index 56247c73..f790ce04 100644 --- a/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.yaml +++ b/samples/tasks/scenarios/dummy/dummy-timed-atomic-actions.yaml @@ -11,7 +11,3 @@ sla: max_avg_duration_per_atomic: action_0: 1.0 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/samples/tasks/scenarios/dummy/dummy.json b/samples/tasks/scenarios/dummy/dummy.json index 6995e8fd..df5df068 100644 --- a/samples/tasks/scenarios/dummy/dummy.json +++ b/samples/tasks/scenarios/dummy/dummy.json @@ -8,12 +8,6 @@ "type": "constant", "times": 20, "concurrency": 5 - }, - "context": { - "users": { - "tenants": 1, - "users_per_tenant": 1 - } } } ] diff --git a/samples/tasks/scenarios/dummy/dummy.yaml b/samples/tasks/scenarios/dummy/dummy.yaml index 2c4fe97f..1a3f80f4 100644 --- a/samples/tasks/scenarios/dummy/dummy.yaml +++ b/samples/tasks/scenarios/dummy/dummy.yaml @@ -7,7 +7,3 @@ type: "constant" times: 20 concurrency: 5 - context: - users: - tenants: 1 - users_per_tenant: 1 diff --git a/tests/ci/rally_self_job.sh b/tests/ci/rally_self_job.sh new file mode 100755 index 00000000..6ee43f1b --- /dev/null +++ b/tests/ci/rally_self_job.sh @@ -0,0 +1,47 @@ +#!/bin/bash -ex +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +TASK_FILE=$1 +PLUGIN_PATHS=rally-jobs/plugins +if [ -n "$ZUUL_PROJECT" ]; then + HTML_REPORT=testr_results.html +else + HTML_REPORT=rally_self_results.html +fi +RND=$(head /dev/urandom | tr -dc a-z0-9 | head -c 5) +TMP_RALLY_CONF="/tmp/self-rally-$RND.conf" +TMP_RALLY_DB="/tmp/self-rally-$RND.sqlite" +TMP_RALLY_DEPLOYMENT="/tmp/self-rally-dep-$RND.json" +DBCONNSTRING="sqlite:///$TMP_RALLY_DB" +RALLY="rally --config-file $TMP_RALLY_CONF" + +# Create temp db +cp etc/rally/rally.conf.sample $TMP_RALLY_CONF +sed -i.bak "s|#connection =.*|connection = \"$DBCONNSTRING\"|" $TMP_RALLY_CONF +rally-manage --config-file $TMP_RALLY_CONF db create + +# Create self deployment +echo '{"type": "ExistingCloud", "creds": {}}' > $TMP_RALLY_DEPLOYMENT +$RALLY -d deployment create --file=$TMP_RALLY_DEPLOYMENT --name=self + +# Run task +$RALLY -d --plugin-paths=$PLUGIN_PATHS task start $TASK_FILE +$RALLY task report --html-static --out $HTML_REPORT + +if [ -n "$ZUUL_PROJECT" ]; then + gzip -9 -f $HTML_REPORT +fi + +# Check sla (this may fail the job) +$RALLY task sla-check diff --git a/tests/functional/test_cli_task.py b/tests/functional/test_cli_task.py index 9cc27919..1d6bb982 100644 --- a/tests/functional/test_cli_task.py +++ b/tests/functional/test_cli_task.py @@ -65,12 +65,6 @@ class TaskTestCase(unittest.TestCase): "times": 10, "concurrency": 2 }, - "context": { - "users": { - "tenants": 3, - "users_per_tenant": 2 - } - } }] }, { @@ -89,12 +83,6 @@ class TaskTestCase(unittest.TestCase): "times": 10, "concurrency": 2 }, - "context": { - "users": { - "tenants": 3, - "users_per_tenant": 2 - } - } }] } ] diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py index a2e19e97..77c06ac5 100644 --- a/tests/unit/fakes.py +++ b/tests/unit/fakes.py @@ -1846,9 +1846,13 @@ class FakeDeployment(dict): namespace = kwargs.pop("namespace", "openstack") kwargs["credentials"] = { namespace: [{"admin": kwargs.pop("admin", None), - "users": kwargs.pop("users", [])}]} + "users": kwargs.pop("users", [])}], + "default": [{"admin": None, "users": []}]} dict.__init__(self, **kwargs) + def get_platforms(self): + return [platform for platform in self["credentials"]] + def get_credentials_for(self, namespace): return self["credentials"][namespace][0] diff --git a/tox.ini b/tox.ini index 716c4320..25db346f 100644 --- a/tox.ini +++ b/tox.ini @@ -93,5 +93,4 @@ deps = bindep commands = bindep [testenv:self] -# TODO(astudenov): Add real script here that will run rally self test -commands = python -c 'print "SUCCESS"' +commands = {toxinidir}/tests/ci/rally_self_job.sh {toxinidir}/rally-jobs/self-rally.yaml