diff --git a/ansible/install/roles/browbeat/tasks/main.yml b/ansible/install/roles/browbeat/tasks/main.yml index f1cf94a9c..cf284b490 100644 --- a/ansible/install/roles/browbeat/tasks/main.yml +++ b/ansible/install/roles/browbeat/tasks/main.yml @@ -231,3 +231,10 @@ when: not item.rc == 0 ignore_errors: true with_items: "{{ image_osp8.results }}" + +# +# Add additional flavor to overcloud +# + +- name: Add extra tiny flavor to overcloud + shell: . {{ overcloudrc }}; nova flavor-create m1.xtiny auto 64 1 1 diff --git a/conf/ceilometer-minimal.yaml b/conf/ceilometer-minimal.yaml new file mode 100644 index 000000000..cc7e548c6 --- /dev/null +++ b/conf/ceilometer-minimal.yaml @@ -0,0 +1,172 @@ +# Ceilometer Stress tests run minimal number of times. +browbeat: + results : results/ + rerun: 1 + cloud_name: openstack +elasticsearch: + enabled: false + host: 1.1.1.1 + port: 9200 + metadata_files: + - name: hardware-metadata + file: metadata/hardware-metadata.json + - name: environment-metadata + file: metadata/environment-metadata.json + - name: software-metadata + file: metadata/software-metadata.json +ansible: + hosts: ansible/hosts + adjust: + keystone_token: ansible/browbeat/adjustment-keystone-token.yml + neutron_l3: ansible/browbeat/adjustment-l3.yml + nova_db: ansible/browbeat/adjustment-db.yml + workers: ansible/browbeat/adjustment-workers.yml + grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml +connmon: + enabled: false + sudo: true +grafana: + enabled: false + grafana_ip: 1.1.1.1 + grafana_port: 3000 + dashboards: + - openstack-general-system-performance + snapshot: + enabled: false + snapshot_compute: false +rally: + enabled: true + sleep_before: 5 + sleep_after: 5 + venv: /home/stack/rally-venv/bin/activate + plugins: + - validate-ceilometer: rally/rally-plugins/validate-ceilometer + - nova-ceilometer: rally/rally-plugins/nova-ceilometer + benchmarks: + - name: CeilometerAlarms + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: create_alarm + enabled: true + file: rally/CeilometerAlarms/create_alarm-cc.yml + - name: create_alarm_and_get_history + enabled: true + file: rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml + - name: create_and_delete_alarm + enabled: true + file: rally/CeilometerAlarms/create_and_delete_alarm-cc.yml + - name: create_and_list_alarm + enabled: true + file: rally/CeilometerAlarms/create_and_list_alarm-cc.yml + - name: create_and_update_alarm + enabled: true + file: rally/CeilometerAlarms/create_and_update_alarm-cc.yml + - name: list_alarms + enabled: true + file: rally/CeilometerAlarms/list_alarms-cc.yml + - name: CeilometerEvents + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: create_user_and_get_event + enabled: true + file: rally/CeilometerEvents/create_user_and_get_event-cc.yml + - name: create_user_and_list_event_types + enabled: true + file: rally/CeilometerEvents/create_user_and_list_event_types-cc.yml + - name: create_user_and_list_events + enabled: true + file: rally/CeilometerEvents/create_user_and_list_events-cc.yml + - name: CeilometerMeters + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: list_matched_meters + enabled: true + file: rally/CeilometerMeters/list_matched_meters-cc.yml + - name: list_meters + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: CeilometerQueries + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: create_and_query_alarm_history + enabled: true + file: rally/CeilometerQueries/create_and_query_alarm_history-cc.yml + - name: create_and_query_alarms + enabled: true + file: rally/CeilometerQueries/create_and_query_alarms-cc.yml + - name: create_and_query_samples + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: CeilometerResource + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: get_tenant_resources + enabled: true + file: rally/CeilometerResource/get_tenant_resources-cc.yml + - name: list_matched_resources + enabled: true + file: rally/CeilometerResource/list_matched_resources-cc.yml + - name: list_resources + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: CeilometerSamples + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: list_matched_samples + enabled: true + file: rally/CeilometerSamples/list_matched_samples-cc.yml + - name: list_samples + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: CeilometerStats + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: create_meter_and_get_stats + enabled: true + file: rally/CeilometerStats/create_meter_and_get_stats-cc.yml + - name: get_stats + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + - name: CeilometerTraits + enabled: true + concurrency: + - 5 + times: 10 + scenarios: + - name: create_user_and_list_trait_descriptions + enabled: true + file: rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml + - name: create_user_and_list_traits + enabled: true + file: rally/CeilometerTraits/create_user_and_list_traits-cc.yml + # Other Scenarios involving Ceilometer: + - name: Authenticate + enabled: false + concurrency: + - 2 + times: 10 + scenarios: + - name: validate_ceilometer + enabled: true + file: rally/authenticate/validate_ceilometer-cc.yml diff --git a/conf/ceilometer-persist-response-timing.yaml b/conf/ceilometer-persist-response-timing.yaml new file mode 100644 index 000000000..f6d9fb2cf --- /dev/null +++ b/conf/ceilometer-persist-response-timing.yaml @@ -0,0 +1,409 @@ +# Ceilometer stress test that boots persisting xtiny cirros instances. +# It boots 20 each iteration with a concurrency of 5 instances. Inbetween +# each iteration it measures response time of several Ceilometer APIs. +# Currently it maxs at 200 instances +browbeat: + results : results/ + rerun: 1 + cloud_name: openstack +elasticsearch: + enabled: false + host: 1.1.1.1 + port: 9200 + metadata_files: + - name: hardware-metadata + file: metadata/hardware-metadata.json + - name: environment-metadata + file: metadata/environment-metadata.json + - name: software-metadata + file: metadata/software-metadata.json +ansible: + hosts: ansible/hosts + adjust: + keystone_token: ansible/browbeat/adjustment-keystone-token.yml + neutron_l3: ansible/browbeat/adjustment-l3.yml + nova_db: ansible/browbeat/adjustment-db.yml + workers: ansible/browbeat/adjustment-workers.yml + grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml +connmon: + enabled: false + sudo: true +grafana: + enabled: false + grafana_ip: 1.1.1.1 + grafana_port: 3000 + dashboards: + - openstack-general-system-performance + snapshot: + enabled: false + snapshot_compute: false +rally: + enabled: true + sleep_before: 5 + sleep_after: 5 + venv: /home/stack/rally-venv/bin/activate + plugins: + - nova: rally/rally-plugins/nova + benchmarks: + # Ceilometer Baseline + - name: Ceilometer01 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-01 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-01 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-01 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-01 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-01 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist01 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-01 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer02 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-02 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-02 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-02 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-02 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-02 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist02 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-02 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer03 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-03 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-03 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-03 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-03 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-03 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist03 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-03 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer04 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-04 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-04 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-04 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-04 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-04 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist04 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-04 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer05 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-05 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-05 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-05 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-05 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-05 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist05 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-05 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer06 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-06 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-06 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-06 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-06 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-06 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist06 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-06 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer07 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-07 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-07 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-07 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-07 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-07 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist07 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-07 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer08 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-08 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-08 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-08 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-08 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-08 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist08 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-08 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer09 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-09 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-09 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-09 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-09 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-09 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist09 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-09 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Measure Ceilometer Response Timings + - name: Ceilometer10 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-10 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-10 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-10 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-10 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-10 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml + # Boot 20 instances + - name: BrowbeatNovaPersist10 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-10 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + # Final Measure Ceilometer Response Timings + - name: Ceilometer11 + enabled: true + concurrency: + - 8 + times: 500 + scenarios: + - name: list_meters-11 + enabled: true + file: rally/CeilometerMeters/list_meters-cc.yml + - name: create_and_query_samples-11 + enabled: true + file: rally/CeilometerQueries/create_and_query_samples-cc.yml + - name: list_resources-11 + enabled: true + file: rally/CeilometerResource/list_resources-cc.yml + - name: list_samples-11 + enabled: true + file: rally/CeilometerSamples/list_samples-cc.yml + - name: get_stats-11 + enabled: true + file: rally/CeilometerStats/get_stats-cc.yml diff --git a/conf/telemetry-nova-persist-instances.yaml b/conf/telemetry-nova-persist-instances.yaml new file mode 100644 index 000000000..c5d7bbf6b --- /dev/null +++ b/conf/telemetry-nova-persist-instances.yaml @@ -0,0 +1,106 @@ +# Stress test designed for telemetry services (ceilometer, gnocchi) by +# booting persisting xtiny cirros instances. It boots 20 each iteration +# with a concurrency of 5 instances. View how system resources degrade +# over each new set of instances booted. +browbeat: + results : results/ + rerun: 1 + cloud_name: openstack +elasticsearch: + enabled: false + host: 1.1.1.1 + port: 9200 + metadata_files: + - name: hardware-metadata + file: metadata/hardware-metadata.json + - name: environment-metadata + file: metadata/environment-metadata.json + - name: software-metadata + file: metadata/software-metadata.json +ansible: + hosts: ansible/hosts + adjust: + keystone_token: ansible/browbeat/adjustment-keystone-token.yml + neutron_l3: ansible/browbeat/adjustment-l3.yml + nova_db: ansible/browbeat/adjustment-db.yml + workers: ansible/browbeat/adjustment-workers.yml + grafana_snapshot: ansible/browbeat/snapshot-general-performance-dashboard.yml +connmon: + enabled: false + sudo: true +grafana: + enabled: false + grafana_ip: 1.1.1.1 + grafana_port: 3000 + dashboards: + - openstack-general-system-performance + snapshot: + enabled: false + snapshot_compute: false +rally: + enabled: true + sleep_before: 0 + # Sleeps 20 minutes after each iteration to allow for system resources to degrade or + # display stepped degrading (If the system is hitting saturation or high utilization) + sleep_after: 1200 + venv: /home/stack/rally-venv/bin/activate + plugins: + - nova: rally/rally-plugins/nova + benchmarks: + # Boots a total of 200 instances, 20 at a time with 20minutes between persist-booting "Storms" + - name: BrowbeatNovaPersist01 + enabled: true + concurrency: + - 5 + times: 20 + scenarios: + - name: nova-boot-20-01 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-02 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-03 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-04 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-05 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-06 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-07 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-08 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-09 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml + - name: nova-boot-20-10 + enabled: true + image_name: cirros + flavor_name: m1.xtiny + file: rally/rally-plugins/nova/nova_boot_persist.yml diff --git a/rally/CeilometerAlarms/create_alarm-cc.yml b/rally/CeilometerAlarms/create_alarm-cc.yml new file mode 100644 index 000000000..52ee03988 --- /dev/null +++ b/rally/CeilometerAlarms/create_alarm-cc.yml @@ -0,0 +1,27 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.create_alarm: + - + args: + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml b/rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml new file mode 100644 index 000000000..229257005 --- /dev/null +++ b/rally/CeilometerAlarms/create_alarm_and_get_history-cc.yml @@ -0,0 +1,28 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.create_alarm_and_get_history: + - + args: + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + state: "ok" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerAlarms/create_and_delete_alarm-cc.yml b/rally/CeilometerAlarms/create_and_delete_alarm-cc.yml new file mode 100644 index 000000000..46583fe31 --- /dev/null +++ b/rally/CeilometerAlarms/create_and_delete_alarm-cc.yml @@ -0,0 +1,27 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.create_and_delete_alarm: + - + args: + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerAlarms/create_and_list_alarm-cc.yml b/rally/CeilometerAlarms/create_and_list_alarm-cc.yml new file mode 100644 index 000000000..cceed0d3e --- /dev/null +++ b/rally/CeilometerAlarms/create_and_list_alarm-cc.yml @@ -0,0 +1,27 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.create_and_list_alarm: + - + args: + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerAlarms/create_and_update_alarm-cc.yml b/rally/CeilometerAlarms/create_and_update_alarm-cc.yml new file mode 100644 index 000000000..b766f07e5 --- /dev/null +++ b/rally/CeilometerAlarms/create_and_update_alarm-cc.yml @@ -0,0 +1,27 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.create_and_update_alarm: + - + args: + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerAlarms/list_alarms-cc.yml b/rally/CeilometerAlarms/list_alarms-cc.yml new file mode 100644 index 000000000..992270ad6 --- /dev/null +++ b/rally/CeilometerAlarms/list_alarms-cc.yml @@ -0,0 +1,19 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerAlarms.list_alarms: + - + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerEvents/create_user_and_get_event-cc.yml b/rally/CeilometerEvents/create_user_and_get_event-cc.yml new file mode 100644 index 000000000..71049a00a --- /dev/null +++ b/rally/CeilometerEvents/create_user_and_get_event-cc.yml @@ -0,0 +1,20 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerEvents.create_user_and_get_event: + - + args: {} + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerEvents/create_user_and_list_event_types-cc.yml b/rally/CeilometerEvents/create_user_and_list_event_types-cc.yml new file mode 100644 index 000000000..d2b7a8fe6 --- /dev/null +++ b/rally/CeilometerEvents/create_user_and_list_event_types-cc.yml @@ -0,0 +1,20 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerEvents.create_user_and_list_event_types: + - + args: {} + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerEvents/create_user_and_list_events-cc.yml b/rally/CeilometerEvents/create_user_and_list_events-cc.yml new file mode 100644 index 000000000..964500a72 --- /dev/null +++ b/rally/CeilometerEvents/create_user_and_list_events-cc.yml @@ -0,0 +1,20 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerEvents.create_user_and_list_events: + - + args: {} + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerMeters/list_matched_meters-cc.yml b/rally/CeilometerMeters/list_matched_meters-cc.yml new file mode 100644 index 000000000..70f470c0b --- /dev/null +++ b/rally/CeilometerMeters/list_matched_meters-cc.yml @@ -0,0 +1,43 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerMeters.list_matched_meters: + - + args: + limit: 50 + filter_by_user_id: true + filter_by_project_id: true + filter_by_resource_id: true + metadata_query: + status: "terminated" + context: + ceilometer: + counter_name: "benchmark_meter" + counter_type: "gauge" + counter_unit: "%" + counter_volume: 100 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 10 + metadata_list: + - + status: "active" + name: "rally benchmark on" + deleted: "false" + - + status: "terminated" + name: "rally benchmark off" + deleted: "true" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerMeters/list_meters-cc.yml b/rally/CeilometerMeters/list_meters-cc.yml new file mode 100644 index 000000000..e60987028 --- /dev/null +++ b/rally/CeilometerMeters/list_meters-cc.yml @@ -0,0 +1,40 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerMeters.list_meters: + - + args: + limit: 50 + metadata_query: + status: "terminated" + context: + ceilometer: + counter_name: "benchmark_meter" + counter_type: "gauge" + counter_unit: "%" + counter_volume: 100 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 10 + metadata_list: + - + status: "active" + name: "rally benchmark on" + deleted: "false" + - + status: "terminated" + name: "rally benchmark off" + deleted: "true" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerQueries/create_and_query_alarm_history-cc.yml b/rally/CeilometerQueries/create_and_query_alarm_history-cc.yml new file mode 100644 index 000000000..54fca2f3c --- /dev/null +++ b/rally/CeilometerQueries/create_and_query_alarm_history-cc.yml @@ -0,0 +1,29 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerQueries.create_and_query_alarm_history: + - + args: + orderby: !!null + limit: !!null + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerQueries/create_and_query_alarms-cc.yml b/rally/CeilometerQueries/create_and_query_alarms-cc.yml new file mode 100644 index 000000000..493940f97 --- /dev/null +++ b/rally/CeilometerQueries/create_and_query_alarms-cc.yml @@ -0,0 +1,30 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerQueries.create_and_query_alarms: + - + args: + filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]} + orderby: !!null + limit: 10 + meter_name: "ram_util" + threshold: 10.0 + type: "threshold" + statistic: "avg" + alarm_actions: ["http://localhost:8776/alarm"] + ok_actions: ["http://localhost:8776/ok"] + insufficient_data_actions: ["http://localhost:8776/notok"] + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerQueries/create_and_query_samples-cc.yml b/rally/CeilometerQueries/create_and_query_samples-cc.yml new file mode 100644 index 000000000..16cd222ef --- /dev/null +++ b/rally/CeilometerQueries/create_and_query_samples-cc.yml @@ -0,0 +1,28 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerQueries.create_and_query_samples: + - + args: + filter: {"=": {"counter_unit": "instance"}} + orderby: !!null + limit: 10 + counter_name: "cpu_util" + counter_type: "gauge" + counter_unit: "instance" + counter_volume: 1.0 + resource_id: "resource_id" + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerResource/get_tenant_resources-cc.yml b/rally/CeilometerResource/get_tenant_resources-cc.yml new file mode 100644 index 000000000..55a7e9af7 --- /dev/null +++ b/rally/CeilometerResource/get_tenant_resources-cc.yml @@ -0,0 +1,25 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerResource.get_tenant_resources: + - + args: {} + context: + ceilometer: + counter_name: "cpu_util" + counter_type: "gauge" + counter_volume: 1.0 + counter_unit: "instance" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerResource/list_matched_resources-cc.yml b/rally/CeilometerResource/list_matched_resources-cc.yml new file mode 100644 index 000000000..e45840fc8 --- /dev/null +++ b/rally/CeilometerResource/list_matched_resources-cc.yml @@ -0,0 +1,42 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerResource.list_matched_resources: + - + args: + limit: 50 + filter_by_user_id: true + filter_by_project_id: true + metadata_query: + status: "terminated" + context: + ceilometer: + counter_name: "benchmark_meter" + counter_type: "gauge" + counter_unit: "%" + counter_volume: 100 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 10 + metadata_list: + - + status: "active" + name: "rally benchmark on" + deleted: "false" + - + status: "terminated" + name: "rally benchmark off" + deleted: "true" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerResource/list_resources-cc.yml b/rally/CeilometerResource/list_resources-cc.yml new file mode 100644 index 000000000..ac604b4a5 --- /dev/null +++ b/rally/CeilometerResource/list_resources-cc.yml @@ -0,0 +1,40 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerResource.list_resources: + - + args: + limit: 50 + metadata_query: + status: "terminated" + context: + ceilometer: + counter_name: "benchmark_meter" + counter_type: "gauge" + counter_unit: "%" + counter_volume: 100 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 10 + metadata_list: + - + status: "active" + name: "rally benchmark on" + deleted: "false" + - + status: "terminated" + name: "rally benchmark off" + deleted: "true" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerSamples/list_matched_samples-cc.yml b/rally/CeilometerSamples/list_matched_samples-cc.yml new file mode 100644 index 000000000..8a92c6e09 --- /dev/null +++ b/rally/CeilometerSamples/list_matched_samples-cc.yml @@ -0,0 +1,43 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerSamples.list_matched_samples: + - + args: + limit: 50 + filter_by_user_id: true + filter_by_project_id: true + filter_by_resource_id: true + metadata_query: + status: "not_active" + context: + ceilometer: + counter_name: "cpu_util" + counter_type: "gauge" + counter_unit: "instance" + counter_volume: 1.0 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 60 + metadata_list: + - status: "active" + name: "fake_resource" + deleted: "False" + created_at: "2015-09-04T12:34:19.000000" + - status: "not_active" + name: "fake_resource_1" + deleted: "False" + created_at: "2015-09-10T06:55:12.000000" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerSamples/list_samples-cc.yml b/rally/CeilometerSamples/list_samples-cc.yml new file mode 100644 index 000000000..d8ab42996 --- /dev/null +++ b/rally/CeilometerSamples/list_samples-cc.yml @@ -0,0 +1,41 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerSamples.list_samples: + - + args: + limit: 50 + metadata_query: + status: "not_active" + context: + ceilometer: + counter_name: "cpu_util" + counter_type: "gauge" + counter_unit: "instance" + counter_volume: 1.0 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 60 + metadata_list: + - status: "active" + name: "fake_resource" + deleted: "False" + created_at: "2015-09-04T12:34:19.000000" + - status: "not_active" + name: "fake_resource_1" + deleted: "False" + created_at: "2015-09-10T06:55:12.000000" + batch_size: 5 + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerStats/create_meter_and_get_stats-cc.yml b/rally/CeilometerStats/create_meter_and_get_stats-cc.yml new file mode 100644 index 000000000..b5dd4e935 --- /dev/null +++ b/rally/CeilometerStats/create_meter_and_get_stats-cc.yml @@ -0,0 +1,25 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerStats.create_meter_and_get_stats: + - + args: + user_id: "user-id" + resource_id: "resource-id" + counter_volume: 1.0 + counter_unit: "" + counter_type: "cumulative" + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerStats/get_stats-cc.yml b/rally/CeilometerStats/get_stats-cc.yml new file mode 100644 index 000000000..219e92a7e --- /dev/null +++ b/rally/CeilometerStats/get_stats-cc.yml @@ -0,0 +1,45 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerStats.get_stats: + - + args: + meter_name: "benchmark_meter" + filter_by_user_id: true + filter_by_project_id: true + filter_by_resource_id: true + metadata_query: + status: "terminated" + period: 300 + groupby: "resource_id" + context: + ceilometer: + counter_name: "benchmark_meter" + counter_type: "gauge" + counter_unit: "%" + counter_volume: 100 + resources_per_tenant: 100 + samples_per_resource: 100 + timestamp_interval: 10 + metadata_list: + - + status: "active" + name: "rally benchmark on" + deleted: "false" + - + status: "terminated" + name: "rally benchmark off" + deleted: "true" + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml b/rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml new file mode 100644 index 000000000..7ec028dcb --- /dev/null +++ b/rally/CeilometerTraits/create_user_and_list_trait_descriptions-cc.yml @@ -0,0 +1,20 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerTraits.create_user_and_list_trait_descriptions: + - + args: {} + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/CeilometerTraits/create_user_and_list_traits-cc.yml b/rally/CeilometerTraits/create_user_and_list_traits-cc.yml new file mode 100644 index 000000000..781f5fbe5 --- /dev/null +++ b/rally/CeilometerTraits/create_user_and_list_traits-cc.yml @@ -0,0 +1,20 @@ +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- + CeilometerTraits.create_user_and_list_traits: + - + args: {} + context: + users: + tenants: 2 + users_per_tenant: 2 + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}} diff --git a/rally/rally-plugins/nova/nova.py b/rally/rally-plugins/nova/nova.py new file mode 100644 index 000000000..be42cad9c --- /dev/null +++ b/rally/rally-plugins/nova/nova.py @@ -0,0 +1,27 @@ +# 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.openstack import scenario +from rally.plugins.openstack.scenarios.nova import utils as nova_utils +from rally.task import types +from rally.task import validation + + +class BrowbeatPlugin(nova_utils.NovaScenario, scenario.OpenStackScenario): + + @types.convert(image={"type": "glance_image"}, + flavor={"type": "nova_flavor"}) + @validation.image_valid_on_flavor("flavor", "image") + @validation.required_openstack(users=True) + @scenario.configure(context={}) + def nova_boot_persist(self, image, flavor, **kwargs): + self._boot_server(image, flavor) diff --git a/rally/rally-plugins/nova/nova_boot_persist.yml b/rally/rally-plugins/nova/nova_boot_persist.yml new file mode 100644 index 000000000..109ffff7b --- /dev/null +++ b/rally/rally-plugins/nova/nova_boot_persist.yml @@ -0,0 +1,31 @@ +{% set image_name = image_name or "cirros" %} +{% set flavor_name = flavor_name or "m1.xtiny" %} +{% set sla_max_avg_duration = sla_max_avg_duration or 60 %} +{% set sla_max_failure = sla_max_failure or 0 %} +{% set sla_max_seconds = sla_max_seconds or 60 %} +--- +BrowbeatPlugin.nova_boot_persist: + - + args: + flavor: + name: '{{flavor_name}}' + image: + name: '{{image_name}}' + runner: + concurrency: {{concurrency}} + times: {{times}} + type: "constant" + context: + users: + tenants: 1 + users_per_tenant: 8 + quotas: + nova: + instances: -1 + cores: -1 + ram: -1 + sla: + max_avg_duration: {{sla_max_avg_duration}} + max_seconds_per_iteration: {{sla_max_seconds}} + failure_rate: + max: {{sla_max_failure}}