- job:
    name: neutron-tempest-plugin-api-ussuri
    parent: neutron-tempest-plugin-base
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: &required-projects-ussuri
      - openstack/neutron
      - name: openstack/neutron-tempest-plugin
        override-checkout: 1.6.0
      - openstack/tempest
    vars:
      devstack_services:
        # Disable OVN services
        br-ex-tcpdump: false
        br-int-flows: false
        ovn-controller: false
        ovn-northd: false
        ovs-vswitchd: false
        ovsdb-server: false
        q-ovn-metadata-agent: false
        # Neutron services
        q-agt: true
        q-dhcp: true
        q-l3: true
        q-meta: true
        q-metering: true
      tempest_concurrency: 4
      tempest_test_regex: ^neutron_tempest_plugin\.api
      # TODO(slaweq): find a way to put this list of extensions in
      # neutron repository and keep it different per branch,
      # then it could be removed from here
      network_api_extensions_common: &api_extensions
        - address-scope
        - agent
        - allowed-address-pairs
        - auto-allocated-topology
        - availability_zone
        - binding
        - default-subnetpools
        - dhcp_agent_scheduler
        - dns-domain-ports
        - dns-integration
        - empty-string-filtering
        - expose-port-forwarding-in-fip
        - expose-l3-conntrack-helper
        - ext-gw-mode
        - external-net
        - extra_dhcp_opt
        - extraroute
        - extraroute-atomic
        - filter-validation
        - fip-port-details
        - flavors
        - floating-ip-port-forwarding
        - floatingip-pools
        - ip-substring-filtering
        - l3-conntrack-helper
        - l3-flavors
        - l3-ha
        - l3_agent_scheduler
        - logging
        - metering
        - multi-provider
        - net-mtu
        - net-mtu-writable
        - network-ip-availability
        - network_availability_zone
        - network-segment-range
        - pagination
        - port-resource-request
        - port-mac-address-regenerate
        - port-security
        - port-security-groups-filtering
        - project-id
        - provider
        - qos
        - qos-bw-minimum-ingress
        - qos-fip
        - quotas
        - quota_details
        - rbac-address-scope
        - rbac-policies
        - rbac-security-groups
        - rbac-subnetpool
        - router
        - router-admin-state-down-before-update
        - router_availability_zone
        - security-group
        - segment
        - service-type
        - sorting
        - standard-attr-description
        - standard-attr-revisions
        - standard-attr-segment
        - standard-attr-tag
        - standard-attr-timestamp
        - subnet_allocation
        - subnet-dns-publish-fixed-ip
        - subnet-service-types
        - subnetpool-prefix-ops
        - tag-ports-during-bulk-creation
        - trunk
        - trunk-details
        - uplink-status-propagation
      network_api_extensions_tempest:
        - dvr
      network_available_features: &available_features
        -
      devstack_localrc:
        NEUTRON_DEPLOY_MOD_WSGI: false
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_tempest) | join(',') }}"
        Q_AGENT: openvswitch
        Q_ML2_TENANT_NETWORK_TYPE: vxlan
        Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
        ML2_L3_PLUGIN: router
        # NOTE(bcafarel) guestmount binary not available on host OS
        IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ds512M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: false
      devstack_local_conf:
        post-config:
          /$NEUTRON_CORE_PLUGIN_CONF:
            AGENT:
              tunnel_types: gre,vxlan
            ml2:
              type_drivers: flat,geneve,vlan,gre,local,vxlan
        test-config:
          $TEMPEST_CONFIG:
            neutron_plugin_options:
              available_type_drivers: flat,geneve,vlan,gre,local,vxlan


- job:
    name: neutron-tempest-plugin-scenario-openvswitch-ussuri
    parent: neutron-tempest-plugin-openvswitch
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      tempest_test_regex: "\
          (^neutron_tempest_plugin.scenario)|\
          (^tempest.api.compute.servers.test_attach_interfaces)|\
          (^tempest.api.compute.servers.test_multiple_create)"
      network_api_extensions: *api_extensions
      network_available_features: *available_features
      devstack_localrc: &localrc_scenarios_common
        NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
        # NOTE(bcafarel) guestmount binary not available on host OS
        IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ds512M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: false
      devstack_local_conf:
        post-config:
          $NEUTRON_L3_CONF:
            DEFAULT:
              # NOTE(slaweq): on Bionic keepalived don't knows this option yet
              keepalived_use_no_track: False
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: ""
            neutron_plugin_options:
              ipv6_metadata: False


- job:
    name: neutron-tempest-plugin-scenario-openvswitch-iptables_hybrid-ussuri
    parent: neutron-tempest-plugin-openvswitch-iptables_hybrid
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      tempest_test_regex: "\
          (^neutron_tempest_plugin.scenario)|\
          (^tempest.api.compute.servers.test_attach_interfaces)|\
          (^tempest.api.compute.servers.test_multiple_create)"
      network_api_extensions: *api_extensions
      network_available_features: *available_features
      # TODO(akatz): remove established tcp session verification test when the
      # bug https://bugzilla.redhat.com/show_bug.cgi?id=1965036 will be fixed
      tempest_exclude_regex: "\
          (^neutron_tempest_plugin.scenario.test_security_groups.NetworkSecGroupTest.test_established_tcp_session_after_re_attachinging_sg)"
      devstack_localrc: *localrc_scenarios_common
      devstack_local_conf:
        post-config:
          $NEUTRON_L3_CONF:
            DEFAULT:
              # NOTE(slaweq): on Bionic keepalived don't knows this option yet
              keepalived_use_no_track: False
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: ""
            neutron_plugin_options:
              ipv6_metadata: False

- job:
    name: neutron-tempest-plugin-scenario-linuxbridge-ussuri
    parent: neutron-tempest-plugin-linuxbridge
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      tempest_test_regex: "\
          (^neutron_tempest_plugin.scenario)|\
          (^tempest.api.compute.servers.test_attach_interfaces)|\
          (^tempest.api.compute.servers.test_multiple_create)"
      network_api_extensions: *api_extensions
      network_available_features: *available_features
      devstack_localrc: *localrc_scenarios_common
      devstack_local_conf:
        post-config:
          $NEUTRON_L3_CONF:
            DEFAULT:
              # NOTE(slaweq): on Bionic keepalived don't knows this option yet
              keepalived_use_no_track: False
        test-config:
          $TEMPEST_CONFIG:
            network-feature-enabled:
              available_features: ""
            neutron_plugin_options:
              ipv6_metadata: False

- job:
    name: neutron-tempest-plugin-scenario-ovn-ussuri
    parent: neutron-tempest-plugin-ovn
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      tempest_test_regex: "\
          (^neutron_tempest_plugin.scenario)|\
          (^tempest.api.compute.servers.test_attach_interfaces)|\
          (^tempest.api.compute.servers.test_multiple_create)"
      network_api_extensions: *api_extensions
      # TODO(haleyb): Remove IPv6Test from blacklist when
      # https://bugs.launchpad.net/neutron/+bug/1881558 is fixed.
      # TODO(slaweq): Remove test_trunk_subport_lifecycle test from the
      # blacklist when bug https://bugs.launchpad.net/neutron/+bug/1885900 will
      # be fixed
      # TODO(jlibosva): Remove the NetworkWritableMtuTest test from the list
      # once east/west fragmentation is supported in core OVN
      tempest_exclude_regex: "\
          (?:neutron_tempest_plugin.scenario.test_ipv6.IPv6Test)|\
          (^neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_trunk_subport_lifecycle)|\
          (^neutron_tempest_plugin.scenario.test_mtu.NetworkWritableMtuTest)"
      devstack_localrc:
        NETWORK_API_EXTENSIONS: "{{ network_api_extensions | join(',') }}"
        # TODO(mjozefcz): Stop compiling OVS modules when meter action in kernel
        # will be released in Ubuntu Bionic.
        # More info: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
        OVN_BUILD_MODULES: True
        # TODO(skaplons): v2.13.1 is incompatible with kernel 4.15.0-118, sticking to commit hash until new v2.13 tag is created
        OVS_BRANCH: 0047ca3a0290f1ef954f2c76b31477cf4b9755f5
        OVN_BRANCH: "v20.03.0"
        # NOTE(slaweq): IGMP Snooping requires OVN 20.12
        OVN_IGMP_SNOOPING_ENABLE: False
        # NOTE(bcafarel) guestmount binary not available on host OS
        IMAGE_URLS: https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img
        ADVANCED_IMAGE_NAME: ubuntu-18.04-server-cloudimg-amd64
        ADVANCED_INSTANCE_TYPE: ds512M
        ADVANCED_INSTANCE_USER: ubuntu
        CUSTOMIZE_IMAGE: false
      devstack_local_conf:
        test-config:
          $TEMPEST_CONFIG:
            neutron_plugin_options:
              is_igmp_snooping_enabled: False

- job:
    name: neutron-tempest-plugin-dvr-multinode-scenario-ussuri
    parent: neutron-tempest-plugin-dvr-multinode-scenario
    nodeset: openstack-two-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      network_api_extensions_common: *api_extensions

- job:
    name: neutron-tempest-plugin-designate-scenario-ussuri
    parent: neutron-tempest-plugin-designate-scenario
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects:
      - openstack/neutron
      - name: openstack/neutron-tempest-plugin
        override-checkout: 1.6.0
      - openstack/tempest
      - name: openstack/designate-tempest-plugin
        override-checkout: 0.7.0
    vars:
      network_api_extensions: *api_extensions
      devstack_localrc: *localrc_scenarios_common

- job:
    name: neutron-tempest-plugin-sfc-ussuri
    parent: neutron-tempest-plugin-sfc
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      network_api_extensions_common: *api_extensions

- job:
    name: neutron-tempest-plugin-bgpvpn-bagpipe-ussuri
    parent: neutron-tempest-plugin-bgpvpn-bagpipe
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      network_api_extensions: *api_extensions

- job:
    name: neutron-tempest-plugin-fwaas-ussuri
    parent: neutron-tempest-plugin-base
    nodeset: openstack-single-node-bionic
    timeout: 10800
    override-checkout: stable/ussuri
    required-projects:
      - openstack/neutron-fwaas
      - openstack/neutron
      - name: openstack/neutron-tempest-plugin
        override-checkout: 1.6.0
      - openstack/tempest
    vars:
      tempest_test_regex: ^neutron_tempest_plugin\.fwaas
      devstack_plugins:
        neutron-fwaas: https://opendev.org/openstack/neutron-fwaas.git
        neutron-tempest-plugin: https://opendev.org/openstack/neutron-tempest-plugin.git
      network_api_extensions_common: *api_extensions
      network_api_extensions_fwaas:
        - fwaas_v2
      devstack_localrc:
        NETWORK_API_EXTENSIONS: "{{ (network_api_extensions_common + network_api_extensions_fwaas) | join(',') }}"

- job:
    name: neutron-tempest-plugin-dynamic-routing-ussuri
    parent: neutron-tempest-plugin-dynamic-routing
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      network_api_extensions_common: *api_extensions

- job:
    name: neutron-tempest-plugin-vpnaas-ussuri
    parent: neutron-tempest-plugin-vpnaas
    nodeset: openstack-single-node-bionic
    override-checkout: stable/ussuri
    required-projects: *required-projects-ussuri
    vars:
      network_api_extensions_common: *api_extensions
