parser.add_argument("-n", "--noclean",
help="Don't clean the created resources for this test.",
action="store_true")
+parser.add_argument("-z", "--sanity",
+ help="Sanity test mode, execute only a subset of tests",
+ action="store_true")
args = parser.parse_args()
ITERATIONS_AMOUNT = 10
CONCURRENCY = 4
-###
RESULTS_DIR = functest_yaml.get("general").get("directories"). \
get("dir_rally_res")
TEMPEST_CONF_FILE = functest_yaml.get("general").get("directories"). \
def build_task_args(test_file_name):
task_args = {'service_list': [test_file_name]}
- task_args['smoke'] = args.smoke
task_args['image_name'] = GLANCE_IMAGE_NAME
task_args['flavor_name'] = FLAVOR_NAME
task_args['glance_image_location'] = GLANCE_IMAGE_PATH
task_args['iterations'] = ITERATIONS_AMOUNT
task_args['concurrency'] = CONCURRENCY
+ if args.sanity:
+ task_args['full_mode'] = False
+ task_args['smoke'] = True
+ else:
+ task_args['full_mode'] = True
+ task_args['smoke'] = args.smoke
+
ext_net = openstack_utils.get_external_net(client_dict['neutron'])
if ext_net:
task_args['floating_network'] = str(ext_net)
+{# all scenarios included only in full mode #}
+
+{% if full_mode %}
+
CinderVolumes.create_and_attach_volume:
-
args:
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_and_delete_snapshot:
+ CinderVolumes.create_and_list_snapshots:
-
args:
+ detailed: true
force: false
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_and_delete_volume:
+ CinderVolumes.create_and_list_volume:
-
args:
- size:
- max: 1
- min: 1
+ detailed: true
+ {{ vm_params(image_name,none,1) }}
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ no_failures_sla() }}
-
args:
- {{ vm_params(image_name,none,1) }}
+ detailed: true
+ size: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+
+ CinderVolumes.create_and_upload_volume_to_image:
-
args:
+ container_format: "bare"
+ disk_format: "raw"
+ do_delete: true
+ force: false
size: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_and_extend_volume:
+ CinderVolumes.create_nested_snapshots_and_attach_volume:
-
args:
- new_size: 2
- size: 1
+ nested_level: 1
+ size:
+ max: 1
+ min: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
+ servers:
+ {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
+ servers_per_tenant: 1
+ auto_assign_nic: true
+ network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_and_list_snapshots:
+ CinderVolumes.create_snapshot_and_attach_volume:
-
args:
- detailed: true
- force: false
+ volume_type: false
+ size:
+ min: 1
+ max: 5
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
- {{ volumes() }}
+ servers:
+ {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
+ servers_per_tenant: 2
+ auto_assign_nic: true
+ network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- CinderVolumes.create_and_list_volume:
-
args:
- detailed: true
- {{ vm_params(image_name,none,1) }}
+ volume_type: true
+ size:
+ min: 1
+ max: 5
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
+ servers:
+ {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
+ servers_per_tenant: 2
+ auto_assign_nic: true
+ network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+
+ CinderVolumes.create_volume:
-
args:
- detailed: true
size: 1
+ context:
+ {{ user_context(tenants_amount, users_amount, use_existing_users) }}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ -
+ args:
+ size:
+ min: 1
+ max: 5
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_and_upload_volume_to_image:
+ CinderVolumes.list_volumes:
-
args:
- container_format: "bare"
- disk_format: "raw"
- do_delete: true
- force: false
- size: 1
+ detailed: True
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
+ volumes:
+ size: 1
+ volumes_per_tenant: 4
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_from_volume_and_delete_volume:
+{% endif %}
+
+ CinderVolumes.create_and_delete_snapshot:
-
args:
- size: 1
+ force: false
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_nested_snapshots_and_attach_volume:
+ CinderVolumes.create_and_delete_volume:
-
args:
- nested_level: 1
size:
max: 1
min: 1
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
- servers:
- {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
- servers_per_tenant: 1
- auto_assign_nic: true
- network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- CinderVolumes.create_snapshot_and_attach_volume:
-
args:
- volume_type: false
- size:
- min: 1
- max: 5
+ {{ vm_params(image_name,none,1) }}
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
- servers:
- {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
- servers_per_tenant: 2
- auto_assign_nic: true
- network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
{{ no_failures_sla() }}
-
args:
- volume_type: true
- size:
- min: 1
- max: 5
+ size: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
- servers:
- {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
- servers_per_tenant: 2
- auto_assign_nic: true
- network: {}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
- CinderVolumes.create_volume:
+ CinderVolumes.create_and_extend_volume:
-
args:
+ new_size: 2
size: 1
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- -
- args:
- size:
- min: 1
- max: 5
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
sla:
{{ no_failures_sla() }}
- CinderVolumes.list_volumes:
+ CinderVolumes.create_from_volume_and_delete_volume:
-
args:
- detailed: True
+ size: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
{{ unlimited_volumes() }}
- volumes:
- size: 1
- volumes_per_tenant: 4
+ {{ volumes() }}
{% endcall %}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+{# all scenarios included only in full mode #}
+
+{% if full_mode %}
+
HeatStacks.create_and_delete_stack:
-
args:
sla:
{{ no_failures_sla() }}
- HeatStacks.create_check_delete_stack:
+ HeatStacks.create_update_delete_stack:
-
args:
template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_random_strings_add.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- HeatStacks.create_suspend_resume_delete_stack:
-
args:
template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_random_strings_delete.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- HeatStacks.create_update_delete_stack:
-
args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_add.yaml.template"
+ template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_resource_group_increase.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ no_failures_sla() }}
-
args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_delete.yaml.template"
+ template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_autoscaling_policy_inplace.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
-
args:
template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_increase.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_resource_group_reduce.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+ -
+ args:
+ template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
+ updated_template_path: "{{ tmpl_dir }}/updated_random_strings_replace.yaml.template"
+ context:
+ {{ user_context(tenants_amount, users_amount, use_existing_users) }}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}
+
+{% else %}
+
+ HeatStacks.create_update_delete_stack:
-
args:
template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+
+{% endif %}
+
+ HeatStacks.create_check_delete_stack:
-
args:
- template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_reduce.yaml.template"
+ template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+
+ HeatStacks.create_suspend_resume_delete_stack:
-
args:
template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_replace.yaml.template"
context:
{{ user_context(tenants_amount, users_amount, use_existing_users) }}
runner:
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_networks:
+{# all scenarios included only in full mode #}
+
+{% if full_mode %}
+
+ NeutronNetworks.create_and_update_networks:
-
args:
network_create_args: {}
+ network_update_args:
+ admin_state_up: false
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_delete_ports:
+ NeutronNetworks.create_and_update_ports:
-
args:
network_create_args: {}
port_create_args: {}
+ port_update_args:
+ admin_state_up: false
+ device_id: "dummy_id"
+ device_owner: "dummy_owner"
ports_per_network: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_delete_routers:
+ NeutronNetworks.create_and_update_routers:
-
args:
network_create_args: {}
router_create_args: {}
+ router_update_args:
+ admin_state_up: false
subnet_cidr_start: "1.1.0.0/30"
subnet_create_args: {}
subnets_per_network: 1
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_delete_subnets:
+ NeutronNetworks.create_and_update_subnets:
-
args:
network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
+ subnet_cidr_start: "1.4.0.0/16"
subnet_create_args: {}
+ subnet_update_args:
+ enable_dhcp: false
subnets_per_network: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_list_networks:
+{% endif %}
+
+ NeutronNetworks.create_and_delete_networks:
-
args:
network_create_args: {}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_list_ports:
+ NeutronNetworks.create_and_delete_ports:
-
args:
network_create_args: {}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_list_routers:
+ NeutronNetworks.create_and_delete_routers:
-
args:
network_create_args: {}
neutron:
network: -1
subnet: -1
+ port: -1
router: -1
{% endcall %}
runner:
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_list_subnets:
+ NeutronNetworks.create_and_delete_subnets:
-
args:
network_create_args: {}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_update_networks:
+ NeutronNetworks.create_and_list_networks:
-
args:
network_create_args: {}
- network_update_args:
- admin_state_up: false
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
quotas:
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_update_ports:
+ NeutronNetworks.create_and_list_ports:
-
args:
network_create_args: {}
port_create_args: {}
- port_update_args:
- admin_state_up: false
- device_id: "dummy_id"
- device_owner: "dummy_owner"
ports_per_network: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_update_routers:
+ NeutronNetworks.create_and_list_routers:
-
args:
network_create_args: {}
router_create_args: {}
- router_update_args:
- admin_state_up: false
subnet_cidr_start: "1.1.0.0/30"
subnet_create_args: {}
subnets_per_network: 1
neutron:
network: -1
subnet: -1
- port: -1
router: -1
{% endcall %}
runner:
sla:
{{ no_failures_sla() }}
- NeutronNetworks.create_and_update_subnets:
+ NeutronNetworks.create_and_list_subnets:
-
args:
network_create_args: {}
- subnet_cidr_start: "1.4.0.0/16"
+ subnet_cidr_start: "1.1.0.0/30"
subnet_create_args: {}
- subnet_update_args:
- enable_dhcp: false
subnets_per_network: 1
context:
{% call user_context(tenants_amount, users_amount, use_existing_users) %}
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
-
- NovaKeypair.boot_and_delete_server_with_keypair:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
+{# all scenarios included only in full mode #}
+
+{% if full_mode %}
NovaKeypair.create_and_delete_keypair:
-
sla:
{{ no_failures_sla() }}
- NovaServers.boot_server_from_volume_and_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 5
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_volumes() }}
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.pause_and_unpause_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
NovaServers.snapshot_server:
-
args:
sla:
{{ no_failures_sla() }}
- NovaSecGroup.boot_and_delete_server_with_secgroups:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- security_group_count: 10
- rules_per_security_group: 10
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_nova() }}
- {{ unlimited_neutron(secgroups=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
NovaServers.boot_server_from_volume:
-
args:
{{ no_failures_sla() }}
{% if live_migration %}
+
NovaServers.boot_and_live_migrate_server:
- args:
{{ vm_params(image_name, flavor_name) }}
{{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
sla:
{{ no_failures_sla() }}
+
{% endif %}
+{% endif %}
+
+ NovaKeypair.boot_and_delete_server_with_keypair:
+ -
+ args:
+ {{ vm_params(image_name, flavor_name) }}
+ server_kwargs:
+ nics:
+ - net-id: {{ netid }}
+ context:
+ {% call user_context(tenants_amount, users_amount, use_existing_users) %}
+ network:
+ networks_per_tenant: 1
+ start_cidr: "100.1.0.0/25"
+ quotas:
+ {{ unlimited_neutron() }}
+ {{ unlimited_nova(keypairs=true) }}
+ {% endcall %}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}
+
+ NovaServers.boot_server_from_volume_and_delete:
+ -
+ args:
+ {{ vm_params(image_name, flavor_name) }}
+ volume_size: 5
+ nics:
+ - net-id: {{ netid }}
+ context:
+ {% call user_context(tenants_amount, users_amount, use_existing_users) %}
+ network:
+ networks_per_tenant: 1
+ start_cidr: "100.1.0.0/25"
+ quotas:
+ {{ unlimited_volumes() }}
+ {{ unlimited_neutron() }}
+ {{ unlimited_nova() }}
+ {% endcall %}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}
+
+ NovaServers.pause_and_unpause_server:
+ -
+ args:
+ {{ vm_params(image_name, flavor_name) }}
+ force_delete: false
+ nics:
+ - net-id: {{ netid }}
+ context:
+ {% call user_context(tenants_amount, users_amount, use_existing_users) %}
+ network:
+ networks_per_tenant: 1
+ start_cidr: "100.1.0.0/25"
+ quotas:
+ {{ unlimited_neutron() }}
+ {{ unlimited_nova() }}
+ {% endcall %}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}
+
+ NovaSecGroup.boot_and_delete_server_with_secgroups:
+ -
+ args:
+ {{ vm_params(image_name, flavor_name) }}
+ security_group_count: 10
+ rules_per_security_group: 10
+ nics:
+ - net-id: {{ netid }}
+ context:
+ {% call user_context(tenants_amount, users_amount, use_existing_users) %}
+ network:
+ start_cidr: "100.1.0.0/25"
+ quotas:
+ {{ unlimited_nova() }}
+ {{ unlimited_neutron(secgroups=true) }}
+ {% endcall %}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}
+
+ NovaServers.boot_and_migrate_server:
+ - args:
+ {{ vm_params(image_name, flavor_name) }}
+ nics:
+ - net-id: {{ netid }}
+ context:
+ {{ user_context(tenants_amount, users_amount, use_existing_users) }}
+ runner:
+ {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
+ sla:
+ {{ no_failures_sla() }}