Switch neutron-tempest-plugin-api job to zuul v3 format

This patch introduces also new abstract job definition
"neutron-tempest-plugin" which is used by api and scenario
jobs definitions.

Change-Id: Ib04a785b1dba0ded3224c5c57d2270616f5e4868
diff --git a/.zuul.yaml b/.zuul.yaml
index a854586..27780d0 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,9 +1,9 @@
 - job:
-    name: neutron-tempest-plugin-scenario
+    name: neutron-tempest-plugin
     parent: devstack-tempest
     abstract: true
     description: |
-        Perform setup common to all tempest scenario test jobs.
+        Perform setup common to all Neutron tempest tests
     roles:
       - zuul: openstack-dev/devstack
     required-projects:
@@ -12,22 +12,16 @@
       - openstack/neutron-tempest-plugin
       - openstack/tempest
     vars:
-      tempest_test_regex: ^neutron_tempest_plugin\.scenario
       tempest_concurrency: 4
       tox_envlist: all
       devstack_localrc:
-          TEMPEST_PLUGINS: /opt/stack/neutron-tempest-plugin
-          PHYSICAL_NETWORK: default
-          DOWNLOAD_DEFAULT_IMAGES: false
-          IMAGE_URLS: "http://cloud-images.ubuntu.com/releases/16.04/release-20170113/ubuntu-16.04-server-cloudimg-amd64-disk1.img,"
-          DEFAULT_INSTANCE_TYPE: ds512M
-          DEFAULT_INSTANCE_USER: ubuntu
-          BUILD_TIMEOUT: 784
+        TEMPEST_PLUGINS: /opt/stack/neutron-tempest-plugin
+        NETWORK_API_EXTENSIONS: "address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-integration,dvr,empty-string-filtering,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,fip-port-details,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-segment,standard-attr-timestamp,standard-attr-tag,subnet_allocation,trunk,trunk-details"
       devstack_plugins:
         neutron: git://git.openstack.org/openstack/neutron.git
         neutron-tempest-plugin: git://git.openstack.org/openstack/neutron-tempest-plugin.git
       devstack_services:
-        cinder: true
+        tls-proxy: false
         tempest: true
         neutron-dns: true
         neutron-qos: true
@@ -46,11 +40,13 @@
           # lib/neutron-legacy
           "/$NEUTRON_CORE_PLUGIN_CONF":
             ml2:
-              type_drivers: flat,vlan,local,vxlan
+              type_drivers: flat,geneve,vlan,gre,local,vxlan
             ml2_type_vlan:
               network_vlan_ranges: foo:1:10
             ml2_type_vxlan:
               vni_ranges: 1:2000
+            ml2_type_gre:
+              tunnel_id_ranges: 1:1000
           $NEUTRON_L3_CONF:
             agent:
               availability_zone: nova
@@ -68,7 +64,7 @@
               provider_vlans: foo,
               agent_availability_zone: nova
               image_is_advanced: true
-              available_type_drivers: flat,vlan,local,vxlan
+              available_type_drivers: flat,geneve,vlan,gre,local,vxlan
     irrelevant-files:
       - ^(test-|)requirements.txt$
       - ^releasenotes/.*$
@@ -82,25 +78,21 @@
 
 - job:
     name: neutron-tempest-plugin-api
-    parent: legacy-dsvm-base
-    run: playbooks/neutron-tempest-plugin-api/run.yaml
-    post-run: playbooks/neutron-tempest-plugin-api/post.yaml
-    timeout: 10000
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/neutron
-      - openstack/neutron-tempest-plugin
-      - openstack/tempest
-    irrelevant-files:
-      - ^(test-|)requirements.txt$
-      - ^releasenotes/.*$
-      - ^doc/.*$
-      - ^setup.cfg$
-      - ^.*\.rst$
-      - ^neutron/locale/.*$
-      - ^neutron/tests/unit/.*$
-      - ^tools/.*$
-      - ^tox.ini$
+    parent: neutron-tempest-plugin
+    vars:
+      tempest_test_regex: ^neutron_tempest_plugin\.api
+      devstack_services:
+        neutron-log: true
+      devstack_local_conf:
+        post-config:
+          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
+          # devstack-tempest job will be switched to use lib/neutron instead of
+          # lib/neutron-legacy
+          "/$NEUTRON_CORE_PLUGIN_CONF":
+            AGENT:
+              tunnel_types: gre,vxlan
+            network_log:
+              local_output_log_base: /tmp/test_log.log
 
 - job:
     name: neutron-tempest-plugin-api-queens
@@ -108,6 +100,29 @@
     override-checkout: stable/queens
     vars:
       branch_override: stable/queens
+      devstack_localrc:
+        # 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: "address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-integration,dvr,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-timestamp,standard-attr-tag,subnet_allocation,tag,tag-ext,trunk,trunk-details"
+
+- job:
+    name: neutron-tempest-plugin-scenario
+    parent: neutron-tempest-plugin
+    abstract: true
+    description: |
+        Perform setup common to all tempest scenario test jobs.
+    vars:
+      tempest_test_regex: ^neutron_tempest_plugin\.scenario
+      devstack_localrc:
+          PHYSICAL_NETWORK: default
+          DOWNLOAD_DEFAULT_IMAGES: false
+          IMAGE_URLS: "http://cloud-images.ubuntu.com/releases/16.04/release-20170113/ubuntu-16.04-server-cloudimg-amd64-disk1.img,"
+          DEFAULT_INSTANCE_TYPE: ds512M
+          DEFAULT_INSTANCE_USER: ubuntu
+          BUILD_TIMEOUT: 784
+      devstack_services:
+        cinder: true
 
 - job:
     name: neutron-tempest-plugin-scenario-linuxbridge
@@ -115,8 +130,8 @@
     timeout: 10000
     vars:
       devstack_localrc:
-          NETWORK_API_EXTENSIONS: "address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-integration,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-timestamp,standard-attr-tag,subnet_allocation,tag,tag-ext,trunk,trunk-details"
           Q_AGENT: linuxbridge
+          NETWORK_API_EXTENSIONS: "address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-integration,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-timestamp,standard-attr-tag,subnet_allocation,tag,tag-ext,trunk,trunk-details"
       devstack_local_conf:
         post-config:
           $NEUTRON_CONF:
@@ -124,6 +139,16 @@
               enable_dvr: false
             AGENT:
               debug_iptables_rules: true
+          # NOTE(slaweq): We can get rid of this hardcoded absolute path when
+          # devstack-tempest job will be switched to use lib/neutron instead of
+          # lib/neutron-legacy
+          "/$NEUTRON_CORE_PLUGIN_CONF":
+            ml2:
+              type_drivers: flat,vlan,local,vxlan
+        test-config:
+          $TEMPEST_CONFIG:
+            neutron_plugin_options:
+              available_type_drivers: flat,vlan,local,vxlan
 
 - job:
     name: neutron-tempest-plugin-scenario-linuxbridge-queens