From df70bc8bdb5120576f1ccc0495785d99a6faf33d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awek=20Kap=C5=82o=C5=84ski?= Date: Tue, 15 May 2018 17:39:08 +0200 Subject: [PATCH] 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 --- .zuul.yaml | 91 ++++++++++++------- .../neutron-tempest-plugin-api/post.yaml | 80 ---------------- playbooks/neutron-tempest-plugin-api/run.yaml | 58 ------------ 3 files changed, 58 insertions(+), 171 deletions(-) delete mode 100644 playbooks/neutron-tempest-plugin-api/post.yaml delete mode 100644 playbooks/neutron-tempest-plugin-api/run.yaml diff --git a/.zuul.yaml b/.zuul.yaml index a8545868..27780d00 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 diff --git a/playbooks/neutron-tempest-plugin-api/post.yaml b/playbooks/neutron-tempest-plugin-api/post.yaml deleted file mode 100644 index dac87534..00000000 --- a/playbooks/neutron-tempest-plugin-api/post.yaml +++ /dev/null @@ -1,80 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*nose_results.html - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testr_results.html.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.testrepository/tmp* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testrepository.subunit.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}/tox' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.tox/*/log/* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/neutron-tempest-plugin-api/run.yaml b/playbooks/neutron-tempest-plugin-api/run.yaml deleted file mode 100644 index 230ac10c..00000000 --- a/playbooks/neutron-tempest-plugin-api/run.yaml +++ /dev/null @@ -1,58 +0,0 @@ -- hosts: all - name: neutron-tempest-plugin-api - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack-infra/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - git://git.openstack.org \ - openstack-infra/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PYTHONUNBUFFERED=true - export DEVSTACK_GATE_TEMPEST=1 - export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1 - export DEVSTACK_GATE_NEUTRON=1 - export DEVSTACK_GATE_EXERCISES=0 - export DEVSTACK_GATE_TEMPEST_REGEX="neutron_tempest_plugin.api" - export DEVSTACK_LOCAL_CONFIG="enable_plugin neutron-tempest-plugin git://git.openstack.org/openstack/neutron-tempest-plugin" - export BRANCH_OVERRIDE="{{ branch_override | default('default') }}" - if [ "$BRANCH_OVERRIDE" != "default" ] ; then - export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE - fi - - export PROJECTS="openstack/neutron-tempest-plugin $PROJECTS" - - function gate_hook { - bash -xe $BASE/new/neutron/neutron/tests/contrib/gate_hook.sh api - } - export -f gate_hook - - function post_test_hook { - bash -xe $BASE/new/neutron/neutron/tests/contrib/post_test_hook.sh api - } - export -f post_test_hook - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}'