Introduce a sanity test mode for Rally test
authorJuha Kosonen <juha.kosonen@nokia.com>
Fri, 22 Apr 2016 07:21:29 +0000 (07:21 +0000)
committerJuha Kosonen <juha.kosonen@nokia.com>
Fri, 22 Apr 2016 13:44:53 +0000 (13:44 +0000)
In a sanity test mode the number of iterations is reduced and only
a subset of tests is executed.

JIRA: FUNCTEST-220

Change-Id: I722f12b8cc6df29bfcb81b8798d8d0802b207d94
Signed-off-by: Juha Kosonen <juha.kosonen@nokia.com>
testcases/VIM/OpenStack/CI/libraries/run_rally-cert.py
testcases/VIM/OpenStack/CI/rally_cert/scenario/opnfv-cinder.yaml
testcases/VIM/OpenStack/CI/rally_cert/scenario/opnfv-heat.yaml
testcases/VIM/OpenStack/CI/rally_cert/scenario/opnfv-neutron.yaml
testcases/VIM/OpenStack/CI/rally_cert/scenario/opnfv-nova.yaml

index 41c359c..562c2e5 100755 (executable)
@@ -60,6 +60,9 @@ parser.add_argument("-v", "--verbose",
 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()
 
@@ -107,7 +110,6 @@ TENANTS_AMOUNT = 3
 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"). \
@@ -196,7 +198,6 @@ def live_migration_supported():
 
 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
@@ -207,6 +208,13 @@ def build_task_args(test_file_name):
     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)
index b128ffb..cb28ee8 100644 (file)
@@ -1,3 +1,7 @@
+{# 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:
@@ -46,7 +50,8 @@
         {{ 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) }}
index a854bcc..534d796 100644 (file)
@@ -1,3 +1,7 @@
+{# 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:
@@ -81,8 +83,8 @@
         {{ 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() }}
-
index 3cdba95..3804d25 100644 (file)
@@ -1,7 +1,13 @@
-  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) %}
@@ -75,7 +89,9 @@
       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() }}
-
index 823cd44..f0fed8e 100644 (file)
@@ -1,23 +1,6 @@
-  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() }}