NovaKeypair.create_and_delete_keypair:
    -
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        quotas:
          {{ unlimited_nova(keypairs=true) }}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaKeypair.create_and_list_keypairs:
    -
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        quotas:
          {{ unlimited_nova(keypairs=true) }}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServers.boot_and_bounce_server:
    -
      args:
        actions:
          -
            hard_reboot: 1
          -
            soft_reboot: 1
          -
            stop_start: 1
          -
            rescue_unrescue: 1
        {{ vm_params(image_name, flavor_name) }}
        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.boot_and_delete_server:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        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.boot_and_list_server:
    -
      args:
        detailed: true
        {{ vm_params(image_name, flavor_name) }}
        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.boot_and_rebuild_server:
    -
      args:
        {{ vm_params(flavor=flavor_name) }}
        from_image:
          name: {{ image_name }}
        to_image:
          name: {{ image_name }}
        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:
        {{ vm_params(image_name, flavor_name) }}
        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.boot_server_from_volume:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        volume_size: 10
        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:
    -
      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.list_servers:
    -
      args:
        detailed: True
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        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() }}

  NovaServers.resize_server:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        to_flavor:
          name: {{ flavor_alt_name }}
        confirm: true
        force_delete: false
        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_and_live_migrate_server:
    - args:
        {{ vm_params(image_name, flavor_name) }}
        block_migration: false
        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_attach_created_volume_and_live_migrate:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        size: 10
        block_migration: false
        boot_server_kwargs:
            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_and_live_migrate:
    - args:
        {{ vm_params(image_name, flavor_name) }}
        block_migration: false
        volume_size: 10
        force_delete: false
        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() }}

  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() }}

  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_and_list_interfaces:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        auto_assign_nic: true
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        network: {}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServers.boot_and_get_console_url:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        console_type: "novnc"
        auto_assign_nic: true
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        network: {}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServers.boot_server_and_attach_interface:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        network_create_args: {}
        subnet_create_args: {}
        boot_server_args:
          auto_assign_nic: true
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        network: {}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServers.boot_server_attach_volume_and_list_attachments:
    -
      args:
        {{ vm_params(image_name, flavor_name) }}
        volume_size: 1
        volume_num: 1
        create_volume_kwargs: {}
        boot_server_kwargs:
          auto_assign_nic: true
      context:
        {% call user_context(tenants_amount, users_amount, use_existing_users) %}
        network: {}
        {% endcall %}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServerGroups.create_and_delete_server_group:
    -
      args:
        policies: ["affinity"]
      context:
        {{ user_context(tenants_amount, users_amount, use_existing_users) }}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServerGroups.create_and_get_server_group:
    -
      args:
        policies: ["affinity"]
      context:
        {{ user_context(tenants_amount, users_amount, use_existing_users) }}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}

  NovaServerGroups.create_and_list_server_groups:
    -
      args:
        policies: ["affinity"]
        all_projects: false
      context:
        {{ user_context(tenants_amount, users_amount, use_existing_users) }}
      runner:
        {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
      sla:
        {{ no_failures_sla() }}