- job:
    name: devstack-tempest
    parent: devstack
    description: |
      Base Tempest job.

      This Tempest job provides the base for both the single and multi-node
      test setup. To run a multi-node test inherit from devstack-tempest and
      set the nodeset to a multi-node one.
    required-projects:
      - opendev.org/openstack/tempest
    timeout: 7200
    roles:
      - zuul: opendev.org/openstack/devstack
    vars:
      devstack_services:
        tempest: true
      devstack_local_conf:
        test-config:
          $TEMPEST_CONFIG:
            compute:
              min_compute_nodes: "{{ groups['compute'] | default(['controller']) | length }}"
      test_results_stage_name: test_results
      zuul_copy_output:
        '{{ devstack_base_dir }}/tempest/etc/tempest.conf': logs
        '{{ devstack_base_dir }}/tempest/etc/accounts.yaml': logs
        '{{ devstack_base_dir }}/tempest/tempest.log': logs
        '{{ stage_dir }}/{{ test_results_stage_name }}.subunit': logs
        '{{ stage_dir }}/{{ test_results_stage_name }}.html': logs
        '{{ stage_dir }}/stackviz': logs
      extensions_to_txt:
        conf: true
        log: true
        yaml: true
        yml: true
    run: playbooks/devstack-tempest.yaml
    post-run: playbooks/post-tempest.yaml

- job:
    name: tempest-all
    parent: devstack-tempest
    description: |
      Integration test that runs all tests.
      Former name for this job was:
        * legacy-periodic-tempest-dsvm-all-master
    vars:
      tox_envlist: all
      tempest_test_regex: tempest
      devstack_localrc:
        ENABLE_FILE_INJECTION: true

- job:
    name: devstack-tempest-ipv6
    parent: devstack-ipv6
    description: |
      Base Tempest IPv6 job.
    required-projects:
      - opendev.org/openstack/tempest
    timeout: 7200
    roles:
      - zuul: opendev.org/openstack/devstack
    vars:
      devstack_services:
        tempest: true
      devstack_local_conf:
        test-config:
          $TEMPEST_CONFIG:
            compute:
              min_compute_nodes: "{{ groups['compute'] | default(['controller']) | length }}"
      test_results_stage_name: test_results
      zuul_copy_output:
        '{{ devstack_base_dir }}/tempest/etc/tempest.conf': logs
        '{{ devstack_base_dir }}/tempest/etc/accounts.yaml': logs
        '{{ devstack_base_dir }}/tempest/tempest.log': logs
        '{{ stage_dir }}/{{ test_results_stage_name }}.subunit': logs
        '{{ stage_dir }}/{{ test_results_stage_name }}.html': logs
        '{{ stage_dir }}/stackviz': logs
      extensions_to_txt:
        conf: true
        log: true
        yaml: true
        yml: true
    run: playbooks/devstack-tempest.yaml
    post-run: playbooks/post-tempest.yaml

- job:
    name: tempest-full
    parent: devstack-tempest
    # This currently works from stable/pike on.
    # Before stable/pike, legacy version of tempest-full
    # 'legacy-tempest-dsvm-neutron-full' run.
    branches: ^(?!stable/ocata).*$
    description: |
      Base integration test with Neutron networking and py27.
      Former names for this job where:
        * legacy-tempest-dsvm-neutron-full
        * gate-tempest-dsvm-neutron-full-ubuntu-xenial
    vars:
      tox_envlist: full
      devstack_localrc:
        ENABLE_FILE_INJECTION: true
        ENABLE_VOLUME_MULTIATTACH: true

- job:
    name: tempest-full-oslo-master
    parent: tempest-full
    description: |
      Integration test using current git of oslo libs.
      This ensures that when oslo libs get released that they
      do not break OpenStack server projects.

      Former name for this job was
      periodic-tempest-dsvm-oslo-latest-full-master.
    timeout: 10800
    required-projects:
      - opendev.org/openstack/oslo.cache
      - opendev.org/openstack/oslo.concurrency
      - opendev.org/openstack/oslo.config
      - opendev.org/openstack/oslo.context
      - opendev.org/openstack/oslo.db
      - opendev.org/openstack/oslo.i18n
      - opendev.org/openstack/oslo.log
      - opendev.org/openstack/oslo.messaging
      - opendev.org/openstack/oslo.middleware
      - opendev.org/openstack/oslo.policy
      - opendev.org/openstack/oslo.privsep
      - opendev.org/openstack/oslo.reports
      - opendev.org/openstack/oslo.rootwrap
      - opendev.org/openstack/oslo.serialization
      - opendev.org/openstack/oslo.service
      - opendev.org/openstack/oslo.utils
      - opendev.org/openstack/oslo.versionedobjects
      - opendev.org/openstack/oslo.vmware

- job:
    name: tempest-full-parallel
    parent: tempest-full
    voting: false
    branches:
      - master
    description: |
      Base integration test with Neutron networking and py27.
      It includes all scenarios as it was in the past.
      This job runs all scenario tests in parallel!
    vars:
      tox_envlist: full-parallel

- job:
    name: tempest-full-py3
    parent: devstack-tempest
    # This currently works from stable/pike on.
    # Before stable/pike, legacy version of tempest-full
    # 'legacy-tempest-dsvm-neutron-full' run.
    branches: ^(?!stable/ocata).*$
    description: |
      Base integration test with Neutron networking and py3.
      Former names for this job where:
        * legacy-tempest-dsvm-py35
        * gate-tempest-dsvm-py35
    vars:
      tox_envlist: full
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        # without Swift, c-bak cannot run (in the Gate at least)
        c-bak: false

- job:
    name: tempest-integrated-networking
    parent: devstack-tempest
    branches: ^(?!stable/ocata).*$
    description: |
      This  job runs integration tests for networking. This is subset of
      'tempest-full' job and run only Neutron and Nova related tests.
      This is meant to be run on neutron gate only.
    vars:
      tox_envlist: integrated-network
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-compute
    parent: devstack-tempest
    branches: ^(?!stable/ocata).*$
    description: |
      This job runs integration tests for compute. This is
      subset of 'tempest-full' job and run Nova, Neutron, Cinder (except backup tests)
      and Glance related tests. This is meant to be run on Nova gate only.
    vars:
      tox_envlist: integrated-compute
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-placement
    parent: devstack-tempest
    branches: ^(?!stable/ocata).*$
    description: |
      This job runs integration tests for placement. This is
      subset of 'tempest-full' job and run Nova and Neutron
      related tests. This is meant to be run on Placement gate only.
    vars:
      tox_envlist: integrated-placement
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        c-bak: false

- job:
    name: tempest-integrated-storage
    parent: devstack-tempest
    branches: ^(?!stable/ocata).*$
    description: |
      This job runs integration tests for image & block storage. This is
      subset of 'tempest-full' job and run Cinder, Glance, Swift and Nova
      related tests. This is meant to be run on Cinder and Glance gate only.
    vars:
      tox_envlist: integrated-storage
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
        ENABLE_VOLUME_MULTIATTACH: true

- job:
    name: tempest-integrated-object-storage
    parent: devstack-tempest
    branches: ^(?!stable/ocata).*$
    description: |
      This job runs integration tests for object storage. This is
      subset of 'tempest-full' job and run Swift, Cinder and Glance
      related tests. This is meant to be run on Swift gate only.
    vars:
      tox_envlist: integrated-object-storage
      devstack_localrc:
        # NOTE(gmann): swift is not ready on python3 yet and devstack
        # install it on python2.7 only. But settting the USE_PYTHON3
        # for future once swift is ready on py3.
        USE_PYTHON3: true

- job:
    name: tempest-full-py3-ipv6
    parent: devstack-tempest-ipv6
    # This currently works from stable/pike on.
    # Before stable/pike, legacy version of tempest-full
    # 'legacy-tempest-dsvm-neutron-full' run.
    branches: ^(?!stable/ocata).*$
    description: |
      Base integration test with Neutron networking, IPv6 and py3.
    vars:
      tox_envlist: full
      devstack_localrc:
        USE_PYTHON3: true
        FORCE_CONFIG_DRIVE: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        # without Swift, c-bak cannot run (in the Gate at least)
        c-bak: false

- job:
    name: tempest-multinode-full-base
    parent: devstack-tempest
    description: |
      Base multinode integration test with Neutron networking and py27.
      Former names for this job were:
        * neutron-tempest-multinode-full
        * legacy-tempest-dsvm-neutron-multinode-full
        * gate-tempest-dsvm-neutron-multinode-full-ubuntu-xenial-nv
      This job includes two nodes, controller / tempest plus a subnode, but
      it can be used with different topologies, as long as a controller node
      and a tempest one exist.
    timeout: 10800
    vars:
      tox_envlist: full
      devstack_localrc:
        FORCE_CONFIG_DRIVE: false
        NOVA_ALLOW_MOVE_TO_SAME_HOST: false
        LIVE_MIGRATION_AVAILABLE: true
        USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION: true
    group-vars:
      peers:
        devstack_localrc:
          NOVA_ALLOW_MOVE_TO_SAME_HOST: false
          LIVE_MIGRATION_AVAILABLE: true
          USE_BLOCK_MIGRATION_FOR_LIVE_MIGRATION: true

- job:
    name: tempest-multinode-full
    parent: tempest-multinode-full-base
    nodeset: openstack-two-node-bionic
    # This job runs on Bionic from stable/stein on.
    branches: ^(?!stable/(ocata|pike|queens|rocky)).*$

- job:
    name: tempest-multinode-full
    parent: tempest-multinode-full-base
    nodeset: openstack-two-node-xenial
    # This job runs on Xenial and this is for stable/pike, stable/queens
    # and stable/rocky. This job is prepared to make sure all stable branches
    # before stable/stein will keep running on xenial. This job can be
    # removed once stable/rocky is EOL.
    branches:
      - stable/pike
      - stable/queens
      - stable/rocky

- job:
    name: tempest-multinode-full-py3
    parent: tempest-multinode-full
    vars:
      devstack_localrc:
        USE_PYTHON3: true

- job:
    name: tempest-full-py3-opensuse150
    parent: tempest-full-py3
    nodeset: devstack-single-node-opensuse-150
    description: |
      Base integration test with Neutron networking and py36 running
      on openSUSE Leap 15.0
    voting: false

- job:
    name: tempest-slow
    parent: tempest-multinode-full
    description: |
      This multinode integration job will run all the tests tagged as slow.
      It enables the lvm multibackend setup to cover few scenario tests.
      This job will run only slow tests (API or Scenario) serially.

      Former names for this job were:
        * legacy-tempest-dsvm-neutron-scenario-multinode-lvm-multibackend
        * tempest-scenario-multinode-lvm-multibackend
    timeout: 10800
    vars:
      tox_envlist: slow-serial
      devstack_localrc:
        CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1,lvm:lvmdriver-2
        ENABLE_VOLUME_MULTIATTACH: true
      devstack_plugins:
        neutron: https://opendev.org/openstack/neutron
      devstack_services:
        neutron-placement: true
        neutron-qos: true
      devstack_local_conf:
        post-config:
          "/$NEUTRON_CORE_PLUGIN_CONF":
            ovs:
              bridge_mappings: public:br-ex
              resource_provider_bandwidths: br-ex:1000000:1000000
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              qos_placement_physnet: public
      tempest_concurrency: 2
    group-vars:
      # NOTE(mriedem): The ENABLE_VOLUME_MULTIATTACH variable is used on both
      # the controller and subnode prior to Rocky so we have to make sure the
      # variable is set in both locations.
      subnode:
        devstack_localrc:
          ENABLE_VOLUME_MULTIATTACH: true

- job:
    name: tempest-slow-py3
    parent: tempest-slow
    vars:
      devstack_localrc:
        USE_PYTHON3: true
      devstack_services:
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        # without Swift, c-bak cannot run (in the Gate at least)
        c-bak: false

- job:
    name: tempest-full-stein
    parent: tempest-full
    override-checkout: stable/stein

- job:
    name: tempest-full-stein-py3
    parent: tempest-full-py3
    override-checkout: stable/stein

- job:
    name: tempest-full-rocky
    parent: tempest-full
    nodeset: openstack-single-node-xenial
    override-checkout: stable/rocky

- job:
    name: tempest-full-rocky-py3
    parent: tempest-full-py3
    nodeset: openstack-single-node-xenial
    override-checkout: stable/rocky

- job:
    name: tempest-full-queens
    parent: tempest-full
    nodeset: openstack-single-node-xenial
    override-checkout: stable/queens

- job:
    name: tempest-full-queens-py3
    parent: tempest-full-py3
    nodeset: openstack-single-node-xenial
    override-checkout: stable/queens

- job:
    name: tempest-full-pike
    parent: tempest-full
    nodeset: openstack-single-node-xenial
    override-checkout: stable/pike

- job:
    name: tempest-tox-plugin-sanity-check
    parent: tox
    description: |
      Run tempest plugin sanity check script using tox.
    nodeset: ubuntu-bionic
    vars:
      tox_envlist: plugin-sanity-check
    voting: false
    timeout: 5000
    irrelevant-files:
      - ^.*\.rst$
      - ^doc/.*$
      - ^etc/.*$
      - ^releasenotes/.*$
      - ^tempest/hacking/.*$
      - ^tempest/tests/.*$
    required-projects:
      - opendev.org/airship/tempest-plugin
      - opendev.org/x/almanach
      - opendev.org/openstack/aodh
      - opendev.org/openstack/barbican-tempest-plugin
      - opendev.org/openstack/blazar-tempest-plugin
      - opendev.org/openstack/ceilometer
      - opendev.org/openstack/cinder-tempest-plugin
      - opendev.org/openstack/cloudkitty-tempest-plugin
      - opendev.org/openstack/congress-tempest-plugin
      - opendev.org/openstack/cyborg-tempest-plugin
      - opendev.org/openstack/designate-tempest-plugin
      - opendev.org/openstack/ec2api-tempest-plugin
      - opendev.org/openstack/freezer
      - opendev.org/openstack/freezer-api
      - opendev.org/openstack/freezer-tempest-plugin
      - opendev.org/x/gabbi-tempest
      - opendev.org/x/gce-api
      - opendev.org/x/glare
      - opendev.org/openstack/heat-tempest-plugin
      - opendev.org/x/intel-nfv-ci-tests
      - opendev.org/openstack/ironic-tempest-plugin
      - opendev.org/openstack/ironic-inspector
      - opendev.org/openstack/keystone-tempest-plugin
      - opendev.org/x/kingbird
      - opendev.org/openstack/kuryr-tempest-plugin
      - opendev.org/openstack/magnum
      - opendev.org/openstack/magnum-tempest-plugin
      - opendev.org/openstack/manila
      - opendev.org/openstack/manila-tempest-plugin
      - opendev.org/openstack/mistral-tempest-plugin
      - opendev.org/x/mogan
      - opendev.org/openstack/monasca-api
      - opendev.org/openstack/monasca-log-api
      - opendev.org/openstack/monasca-tempest-plugin
      - opendev.org/openstack/murano-tempest-plugin
      - opendev.org/openstack/networking-bgpvpn
      - opendev.org/x/networking-cisco
      - opendev.org/x/networking-fortinet
      - opendev.org/openstack/networking-generic-switch
      - opendev.org/openstack/networking-l2gw-tempest-plugin
      - opendev.org/openstack/networking-midonet
      - opendev.org/openstack/networking-sfc
      - opendev.org/x/networking-spp
      - opendev.org/openstack/neutron
      - opendev.org/openstack/neutron-dynamic-routing
      - opendev.org/openstack/neutron-fwaas
      - opendev.org/openstack/neutron-lbaas
      - opendev.org/openstack/neutron-tempest-plugin
      - opendev.org/openstack/neutron-vpnaas
      - opendev.org/x/nova-lxd
      - opendev.org/x/novajoin-tempest-plugin
      - opendev.org/openstack/octavia-tempest-plugin
      - opendev.org/openstack/oswin-tempest-plugin
      - opendev.org/openstack/panko
      - opendev.org/openstack/patrole
      - opendev.org/openstack/python-watcherclient
      - opendev.org/openstack/qinling
      - opendev.org/openstack/requirements
      - opendev.org/openstack/sahara-tests
      - opendev.org/openstack/senlin
      - opendev.org/openstack/senlin-tempest-plugin
      - opendev.org/openstack/solum-tempest-plugin
      - opendev.org/x/tap-as-a-service
      - opendev.org/x/tap-as-a-service-tempest-plugin
      - opendev.org/openstack/telemetry-tempest-plugin
      - opendev.org/openstack/tempest-horizon
      - opendev.org/x/tobiko
      - opendev.org/x/trio2o
      - opendev.org/openstack/tripleo-common-tempest-plugin
      - opendev.org/openstack/trove-tempest-plugin
      - opendev.org/x/valet
      - opendev.org/openstack/vitrage-tempest-plugin
      - opendev.org/x/vmware-nsx-tempest-plugin
      - opendev.org/openstack/watcher-tempest-plugin
      - opendev.org/x/whitebox-tempest-plugin
      - opendev.org/openstack/zaqar-tempest-plugin
      - opendev.org/openstack/zun-tempest-plugin

- job:
    name: tempest-cinder-v2-api
    parent: devstack-tempest
    branches:
      - master
    description: |
      This job runs the cinder API test against v2 endpoint.
    vars:
      tox_envlist: all
      tempest_test_regex: api.*volume
      devstack_localrc:
        TEMPEST_VOLUME_TYPE: volumev2

- job:
    name: tempest-full-test-account-py3
    parent: tempest-full-py3
    description: |
      This job runs the full set of tempest tests using pre-provisioned
      credentials instead of dynamic credentials and py3.
      Former names for this job were:
        - legacy-tempest-dsvm-full-test-accounts
        - legacy-tempest-dsvm-neutron-full-test-accounts
        - legacy-tempest-dsvm-identity-v3-test-accounts
    vars:
      devstack_localrc:
        TEMPEST_USE_TEST_ACCOUNTS: True

- job:
    name: tempest-full-test-account-no-admin-py3
    parent: tempest-full-test-account-py3
    description: |
      This job runs the full set of tempest tests using pre-provisioned
      credentials and py3 without having an admin account.
      Former name for this job was:
        - legacy-tempest-dsvm-neutron-full-non-admin

    vars:
      devstack_localrc:
        TEMPEST_HAS_ADMIN: False

- job:
    name: tempest-pg-full
    parent: tempest-full
    description: |
      Base integration test with Neutron networking and py27 and PostgreSQL.
      Former name for this job was legacy-tempest-dsvm-neutron-pg-full.
    vars:
      devstack_localrc:
        ENABLE_FILE_INJECTION: true
        DATABASE_TYPE: postgresql

- project-template:
    name: integrated-gate-networking
    description: |
      Run the python3 Tempest network integration tests (Nova and Neutron related)
      in check and gate for the neutron integrated gate. This is meant to be
      run on neutron gate only.
    check:
      jobs:
        - grenade-py3
        - tempest-integrated-networking
    gate:
      jobs:
        - grenade-py3
        - tempest-integrated-networking

- project-template:
    name: integrated-gate-compute
    description: |
      Run the python3 Tempest compute integration tests
      (Nova, Neutron, Cinder and Glance related) in check and gate
      for the Nova integrated gate. This is meant to be
      run on Nova gate only.
    check:
      jobs:
        - grenade-py3
        - tempest-integrated-compute
    gate:
      jobs:
        - grenade-py3
        - tempest-integrated-compute

- project-template:
    name: integrated-gate-placement
    description: |
      Run the python3 Tempest placement integration tests
      (Nova and Neutron related) in check and gate
      for the Placement integrated gate. This is meant to be
      run on Placement gate only.
    check:
      jobs:
        - grenade-py3
        - tempest-integrated-placement
    gate:
      jobs:
        - grenade-py3
        - tempest-integrated-placement

- project-template:
    name: integrated-gate-storage
    description: |
      Run the python3 Tempest image & block storage integration tests
      (Cinder, Glance, Swift and Nova related) in check and gate
      for the neutron integrated gate. This is meant to be
      run on Cinder and Glance gate only.
    check:
      jobs:
        - grenade-py3
        - tempest-integrated-storage
    gate:
      jobs:
        - grenade-py3
        - tempest-integrated-storage

- project-template:
    name: integrated-gate-object-storage
    description: |
      Run the python3 Tempest object storage integration tests
      (Swift, Cinder and Glance related) in check and gate
      for the swift integrated gate. This is meant to be
      run on swift gate only.
    check:
      jobs:
        - grenade-py3
        - tempest-integrated-object-storage
    gate:
      jobs:
        - grenade-py3
        - tempest-integrated-object-storage

- project:
    templates:
      - check-requirements
      - integrated-gate
      - integrated-gate-py3
      - openstack-cover-jobs
      - openstack-python-jobs
      - openstack-python35-jobs
      - openstack-python36-jobs
      - openstack-python37-jobs
      - publish-openstack-docs-pti
      - release-notes-jobs-python3
    check:
      jobs:
        - devstack-tempest:
            files:
              - ^playbooks/
              - ^roles/
              - ^.zuul.yaml$
        - devstack-tempest-ipv6:
            voting: false
            files:
              - ^playbooks/
              - ^roles/
              - ^.zuul.yaml$
        - tempest-full-parallel:
            # Define list of irrelevant files to use everywhere else
            irrelevant-files: &tempest-irrelevant-files
              - ^.*\.rst$
              - ^doc/.*$
              - ^etc/.*$
              - ^releasenotes/.*$
              - ^setup.cfg$
              - ^tempest/hacking/.*$
              - ^tempest/tests/.*$
              - ^tools/.*$
        - tempest-full-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-py3-ipv6:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-stein:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-stein-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-rocky:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-rocky-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-queens:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-queens-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-pike:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-multinode-full:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-multinode-full-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-tox-plugin-sanity-check:
            irrelevant-files:
              - ^.*\.rst$
              - ^doc/.*$
              - ^etc/.*$
              - ^releasenotes/.*$
              - ^setup.cfg$
              - ^tempest/hacking/.*$
              - ^tempest/tests/.*$
              # tools/ is not here since this relies on a script in tools/.
        - tempest-slow:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-slow-py3:
            irrelevant-files: *tempest-irrelevant-files
        - nova-live-migration:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - neutron-grenade-multinode:
            irrelevant-files: *tempest-irrelevant-files
        - neutron-grenade:
            irrelevant-files: *tempest-irrelevant-files
        - grenade-py3:
            irrelevant-files: *tempest-irrelevant-files
        - devstack-plugin-ceph-tempest:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - puppet-openstack-integration-4-scenario001-tempest-centos-7:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - puppet-openstack-integration-4-scenario002-tempest-centos-7:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - puppet-openstack-integration-4-scenario003-tempest-centos-7:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - puppet-openstack-integration-4-scenario004-tempest-centos-7:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - neutron-tempest-dvr:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full:
            irrelevant-files: *tempest-irrelevant-files
        - interop-tempest-consistency:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-test-account-py3:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-test-account-no-admin-py3:
            voting: false
            irrelevant-files: *tempest-irrelevant-files
    gate:
      jobs:
        - tempest-slow-py3:
            irrelevant-files: *tempest-irrelevant-files
        - neutron-grenade-multinode:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full:
            irrelevant-files: *tempest-irrelevant-files
        - neutron-grenade:
            irrelevant-files: *tempest-irrelevant-files
        - grenade-py3:
            irrelevant-files: *tempest-irrelevant-files
    experimental:
      jobs:
        - tempest-cinder-v2-api:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-all:
            irrelevant-files: *tempest-irrelevant-files
        - legacy-tempest-dsvm-neutron-dvr-multinode-full:
            irrelevant-files: *tempest-irrelevant-files
        - neutron-tempest-dvr-ha-multinode-full:
            irrelevant-files: *tempest-irrelevant-files
        - nova-tempest-v2-api:
            irrelevant-files: *tempest-irrelevant-files
        - legacy-tempest-dsvm-lvm-multibackend:
            irrelevant-files: *tempest-irrelevant-files
        - devstack-plugin-ceph-tempest-py3:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-pg-full:
            irrelevant-files: *tempest-irrelevant-files
        - tempest-full-py3-opensuse150:
            irrelevant-files: *tempest-irrelevant-files
    periodic-stable:
      jobs:
        - tempest-full-stein
        - tempest-full-stein-py3
        - tempest-full-rocky
        - tempest-full-rocky-py3
        - tempest-full-queens
        - tempest-full-queens-py3
        - tempest-full-pike
    periodic:
      jobs:
        - tempest-all
        - tempest-full-oslo-master