diff --git a/.zuul.yaml b/.zuul.yaml
new file mode 100644
index 000000000..77ed4fdc0
--- /dev/null
+++ b/.zuul.yaml
@@ -0,0 +1,409 @@
+- job:
+    name: oslo.messaging-tox-py27-func-amqp1
+    parent: openstack-tox-py27
+    vars:
+      tox_envlist: py27-func-amqp1
+
+- job:
+    name: oslo.messaging-tox-py27-func-kafka
+    parent: openstack-tox-py27
+    vars:
+      tox_envlist: py27-func-kafka
+
+- job:
+    name: oslo.messaging-tox-py27-func-pika
+    parent: openstack-tox-py27
+    vars:
+      tox_envlist: py27-func-pika
+
+- job:
+    name: oslo.messaging-tox-py27-func-rabbit
+    parent: openstack-tox-py27
+    vars:
+        tox_envlist: py27-func-rabbit
+
+- job:
+    name: oslo.messaging-tox-py27-func-zmq
+    parent: openstack-tox-py27
+    vars:
+        tox_envlist: py27-func-zmq
+
+- job:
+    name: oslo.messaging-tox-py27-func-zmq-proxy
+    parent: openstack-tox-py27
+    vars:
+        tox_envlist: py27-func-zmq-proxy
+
+- job:
+    name: oslo.messaging-tox-py27-func-zmq-pubsub
+    parent: openstack-tox-py27
+    vars:
+        tox_envlist: py27-func-zmq-pubsub
+
+- job:
+    name: oslo.messaging-tox-py35-func-amqp1
+    parent: openstack-tox-py35
+    vars:
+        tox_envlist: py35-func-amqp1
+
+- job:
+    name: oslo.messaging-tox-py35-func-rabbit
+    parent: openstack-tox-py35
+    vars:
+        tox_envlist: py35-func-rabbit
+
+- job:
+    name: oslo.messaging-tox-py35-func-zmq
+    parent: openstack-tox-py35
+    vars:
+        tox_envlist: py35-func-zmq
+
+- job:
+    name: oslo.messaging-src-dsvm-full-rabbit-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-rabbit-default/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-rabbit-default/post
+    timeout: 10800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-pika-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-pika-default/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-pika-default/post
+    timeout: 10800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-pika
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-amqp1-dual-centos-7
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/post
+    timeout: 10800
+    nodeset: legacy-centos-7
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-amqp1
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-amqp1-hybrid
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/post
+    timeout: 10800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-amqp1
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-kafka-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-kafka-default/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-kafka-default/post
+    timeout: 10800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-kafka
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-kafka-default-centos-7
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/post
+    timeout: 10800
+    nodeset: legacy-centos-7
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-kafka
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-dsvm-full-zmq-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-dsvm-full-zmq-default/run
+    post-run: playbooks/oslo.messaging-src-dsvm-full-zmq-default/post
+    timeout: 10800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-zmq
+      - openstack/oslo.messaging
+
+- job:
+    name: oslo.messaging-src-grenade-dsvm
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-src-grenade-dsvm/run
+    post-run: playbooks/oslo.messaging-src-grenade-dsvm/post
+    timeout: 10800
+    required-projects:
+      - openstack-dev/grenade
+      - openstack-infra/devstack-gate
+      - openstack/oslo.messaging
+    irrelevant-files:
+      - ^(test-|)requirements.txt$
+      - ^setup.cfg$
+
+- job:
+    name: oslo.messaging-src-grenade-dsvm-multinode
+    parent: legacy-dsvm-base-multinode
+    run: playbooks/oslo.messaging-src-grenade-dsvm-multinode/run
+    post-run: playbooks/oslo.messaging-src-grenade-dsvm-multinode/post
+    timeout: 10800
+    required-projects:
+      - openstack-dev/grenade
+      - openstack-infra/devstack-gate
+      - openstack/oslo.messaging
+    irrelevant-files:
+      - ^(test-|)requirements.txt$
+      - ^setup.cfg$
+    nodeset: legacy-ubuntu-xenial-2-node
+
+- job:
+    name: oslo.messaging-telemetry-dsvm-integration-amqp1
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/run
+    post-run: playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/post
+    timeout: 4200
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/aodh
+      - openstack/ceilometer
+      - openstack/devstack-plugin-amqp1
+      - openstack/oslo.messaging
+      - openstack/panko
+      # following are required when DEVSTACK_GATE_HEAT, which this
+      # job turns on
+      - openstack/dib-utils
+      - openstack/diskimage-builder
+
+- job:
+    name: oslo.messaging-telemetry-dsvm-integration-kafka
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/run
+    post-run: playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/post
+    timeout: 4200
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/aodh
+      - openstack/ceilometer
+      - openstack/devstack-plugin-kafka
+      - openstack/oslo.messaging
+      - openstack/panko
+      # following are required when DEVSTACK_GATE_HEAT, which this
+      # job turns on
+      - openstack/dib-utils
+      - openstack/diskimage-builder
+
+- job:
+    name: oslo.messaging-telemetry-dsvm-integration-pika
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-telemetry-dsvm-integration-pika/run
+    post-run: playbooks/oslo.messaging-telemetry-dsvm-integration-pika/post
+    timeout: 4200
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/aodh
+      - openstack/ceilometer
+      - openstack/devstack-plugin-pika
+      - openstack/oslo.messaging
+      - openstack/panko
+      # following are required when DEVSTACK_GATE_HEAT, which this
+      # job turns on
+      - openstack/dib-utils
+      - openstack/diskimage-builder
+
+- job:
+    name: oslo.messaging-telemetry-dsvm-integration-zmq
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/run
+    post-run: playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/post
+    timeout: 4200
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/aodh
+      - openstack/ceilometer
+      - openstack/devstack-plugin-zmq
+      - openstack/oslo.messaging
+      - openstack/panko
+      # following are required when DEVSTACK_GATE_HEAT, which this
+      # job turns on
+      - openstack/dib-utils
+      - openstack/diskimage-builder
+
+- job:
+    name: oslo.messaging-telemetry-dsvm-integration-rabbit
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/run
+    post-run: playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/aodh
+      - openstack/ceilometer
+      - openstack/oslo.messaging
+      - openstack/panko
+      # following are required when DEVSTACK_GATE_HEAT, which this
+      # job turns on
+      - openstack/dib-utils
+      - openstack/diskimage-builder
+
+- job:
+    name: oslo.messaging-tempest-neutron-dsvm-src-rabbit-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/run
+    post-run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/neutron
+      - openstack/oslo.messaging
+      - openstack/tempest
+
+- job:
+    name: oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/run
+    post-run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-amqp1
+      - openstack/neutron
+      - openstack/oslo.messaging
+      - openstack/tempest
+
+- job:
+    name: oslo.messaging-tempest-neutron-dsvm-src-kafka-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/run
+    post-run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-kafka
+      - openstack/neutron
+      - openstack/oslo.messaging
+      - openstack/tempest
+
+- job:
+    name: oslo.messaging-tempest-neutron-dsvm-src-pika-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/run
+    post-run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-pika
+      - openstack/neutron
+      - openstack/oslo.messaging
+      - openstack/tempest
+
+- job:
+    name: oslo.messaging-tempest-neutron-dsvm-src-zmq-default
+    parent: legacy-dsvm-base
+    run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/run
+    post-run: playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/post
+    timeout: 7800
+    required-projects:
+      - openstack-infra/devstack-gate
+      - openstack/devstack-plugin-zmq
+      - openstack/neutron
+      - openstack/oslo.messaging
+      - openstack/tempest
+
+
+- project:
+    name: openstack/oslo.messaging
+    check:
+      jobs:
+        - oslo.messaging-tox-py27-func-amqp1:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-kafka:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-pika:
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-rabbit:
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-zmq-proxy:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-zmq-pubsub:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-zmq:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py35-func-amqp1:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py35-func-rabbit:
+            voting: false
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py35-func-zmq:
+            voting: false
+            branches: ^(?!stable/newton).*$
+
+        - oslo.messaging-src-dsvm-full-rabbit-default
+        - oslo.messaging-src-dsvm-full-amqp1-hybrid:
+            voting: false
+            branches: ^(?!stable/(?:newton|ocata)).*$
+        - oslo.messaging-src-dsvm-full-amqp1-dual-centos-7:
+            voting: false
+            branches: ^(?!stable/(?:newton|ocata)).*$
+        - oslo.messaging-src-dsvm-full-kafka-default-centos-7:
+            voting: false
+        - oslo.messaging-src-dsvm-full-kafka-default:
+            voting: false
+        - oslo.messaging-src-dsvm-full-pika-default:
+            voting: false
+        - oslo.messaging-src-dsvm-full-zmq-default:
+            voting: false
+
+        - oslo.messaging-src-grenade-dsvm:
+            voting: false
+        - oslo.messaging-src-grenade-dsvm-multinode:
+            voting: false
+
+        - oslo.messaging-telemetry-dsvm-integration-rabbit
+        - oslo.messaging-telemetry-dsvm-integration-amqp1:
+            voting: false
+        - oslo.messaging-telemetry-dsvm-integration-kafka:
+            voting: false
+        - oslo.messaging-telemetry-dsvm-integration-pika:
+            voting: false
+        - oslo.messaging-telemetry-dsvm-integration-zmq:
+            voting: false
+
+        - oslo.messaging-tempest-neutron-dsvm-src-rabbit-default
+        - oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid:
+            voting: false
+            branches: ^(?!stable/(?:newton|ocata)).*$
+        - oslo.messaging-tempest-neutron-dsvm-src-kafka-default:
+            voting: false
+        - oslo.messaging-tempest-neutron-dsvm-src-pika-default:
+            voting: false
+        - oslo.messaging-tempest-neutron-dsvm-src-zmq-default:
+            voting: false
+
+    gate:
+      jobs:
+        - oslo.messaging-tox-py27-func-rabbit:
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-tox-py27-func-pika:
+            branches: ^(?!stable/newton).*$
+        - oslo.messaging-telemetry-dsvm-integration-rabbit
+        - oslo.messaging-src-dsvm-full-rabbit-default
+        - oslo.messaging-tempest-neutron-dsvm-src-rabbit-default
+
+
+
+
diff --git a/bindep.txt b/bindep.txt
index df4c23ef2..e3e52b4c3 100644
--- a/bindep.txt
+++ b/bindep.txt
@@ -7,7 +7,7 @@ libffi-dev [platform:dpkg]
 gcc [platform:rpm]
 gcc-c++ [platform:rpm]
 make [platform:rpm]
-pkg-config [platform:rpm]
+pkgconfig [platform:rpm]
 libffi-devel [platform:rpm]
 
 # kombu/pika
diff --git a/playbooks/oslo.messaging-devstack-full/post.yaml b/playbooks/oslo.messaging-devstack-full/post.yaml
new file mode 100644
index 000000000..39e641b1a
--- /dev/null
+++ b/playbooks/oslo.messaging-devstack-full/post.yaml
@@ -0,0 +1,16 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
+
diff --git a/playbooks/oslo.messaging-devstack-full/pre.yaml b/playbooks/oslo.messaging-devstack-full/pre.yaml
new file mode 100644
index 000000000..c30fa38d9
--- /dev/null
+++ b/playbooks/oslo.messaging-devstack-full/pre.yaml
@@ -0,0 +1,12 @@
+- hosts: all
+  name: Test the pre run
+  tasks:
+
+    - shell:
+        cmd: |
+          set -x
+          echo "test pre phase"
+          export -p
+          ls -l
+          pwd
+        executable: /bin/bash
diff --git a/playbooks/oslo.messaging-devstack-full/run.yaml b/playbooks/oslo.messaging-devstack-full/run.yaml
new file mode 100644
index 000000000..97cfe70c2
--- /dev/null
+++ b/playbooks/oslo.messaging-devstack-full/run.yaml
@@ -0,0 +1,54 @@
+- hosts: all
+  name: testing the devstack-tempest job for oslo.messaging
+
+  tasks:
+
+    - name: Ensure legacy workspace directory
+      file:
+        path: '{{ ansible_user_dir }}/workspace'
+        state: directory
+
+    - shell:
+        cmd: |
+          set -x
+          echo "test run phase"
+          export -p
+          ls -l
+          pwd
+        executable: /bin/bash
+      environment: '{{ zuul | zuul_legacy_vars }}'
+
+    - 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_FULL=1
+          export PROJECTS="openstack/oslo.messaging $PROJECTS"
+          if [ -n "{{ transport_plugin_project }}" ]; then
+              export PROJECTS="{{ transport_plugin_project }} $PROJECTS"
+          fi
+
+          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 }}'
+
diff --git a/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/run.yaml
new file mode 100644
index 000000000..f3e2a6103
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-amqp1-dual-centos-7/run.yaml
@@ -0,0 +1,44 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-amqp1-dual-centos-7
+    from old job gate-oslo.messaging-src-dsvm-full-amqp1-dual-centos-7-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-amqp1 $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-amqp1 git://git.openstack.org/openstack/devstack-plugin-amqp1"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"AMQP1_SERVICE=qpid-dual"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/run.yaml
new file mode 100644
index 000000000..a3f94fdf9
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-amqp1-hybrid/run.yaml
@@ -0,0 +1,43 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-amqp1-hybrid from old
+    job gate-oslo.messaging-src-dsvm-full-amqp1-hybrid-ubuntu-xenial-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-amqp1 $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-amqp1 git://git.openstack.org/openstack/devstack-plugin-amqp1"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"AMQP1_SERVICE=qpid-hybrid"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/run.yaml
new file mode 100644
index 000000000..628fef5c9
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-kafka-default-centos-7/run.yaml
@@ -0,0 +1,42 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-kafka-default-centos-7
+    from old job gate-oslo.messaging-src-dsvm-full-kafka-default-centos-7-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-kafka $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-kafka git://git.openstack.org/openstack/devstack-plugin-kafka"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-kafka-default/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-kafka-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-kafka-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-kafka-default/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-kafka-default/run.yaml
new file mode 100644
index 000000000..e2cdcadb1
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-kafka-default/run.yaml
@@ -0,0 +1,42 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-kafka-default from old
+    job gate-oslo.messaging-src-dsvm-full-kafka-default-ubuntu-xenial-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-kafka $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-kafka git://git.openstack.org/openstack/devstack-plugin-kafka"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-pika-default/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-pika-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-pika-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-pika-default/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-pika-default/run.yaml
new file mode 100644
index 000000000..572f1d14c
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-pika-default/run.yaml
@@ -0,0 +1,42 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-pika-default from old
+    job gate-oslo.messaging-src-dsvm-full-pika-default-ubuntu-xenial-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-pika $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-pika git://git.openstack.org/openstack/devstack-plugin-pika"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/run.yaml
new file mode 100644
index 000000000..45e0ee17e
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-rabbit-default/run.yaml
@@ -0,0 +1,39 @@
+- hosts: all
+  name: Full tempest tests with rabbitmq
+  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_FULL=1
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-dsvm-full-zmq-default/post.yaml b/playbooks/oslo.messaging-src-dsvm-full-zmq-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-zmq-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-dsvm-full-zmq-default/run.yaml b/playbooks/oslo.messaging-src-dsvm-full-zmq-default/run.yaml
new file mode 100644
index 000000000..f8ee48e95
--- /dev/null
+++ b/playbooks/oslo.messaging-src-dsvm-full-zmq-default/run.yaml
@@ -0,0 +1,42 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-dsvm-full-zmq-default from old
+    job gate-oslo.messaging-src-dsvm-full-zmq-default-ubuntu-xenial-nv
+  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_FULL=1
+          export PROJECTS="openstack/devstack-plugin-zmq $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-zmq git://git.openstack.org/openstack/devstack-plugin-zmq"
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-grenade-dsvm-multinode/post.yaml b/playbooks/oslo.messaging-src-grenade-dsvm-multinode/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-grenade-dsvm-multinode/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-grenade-dsvm-multinode/run.yaml b/playbooks/oslo.messaging-src-grenade-dsvm-multinode/run.yaml
new file mode 100644
index 000000000..1fb317b5c
--- /dev/null
+++ b/playbooks/oslo.messaging-src-grenade-dsvm-multinode/run.yaml
@@ -0,0 +1,52 @@
+- hosts: primary
+  name: Autoconverted job legacy-oslo.messaging-src-grenade-dsvm-multinode from old
+    job gate-oslo.messaging-src-grenade-dsvm-multinode-ubuntu-xenial-nv
+  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 PROJECTS="openstack-dev/grenade $PROJECTS"
+          export PYTHONUNBUFFERED=true
+          export DEVSTACK_GATE_TEMPEST=1
+          export DEVSTACK_GATE_GRENADE=pullup
+          export BRANCH_OVERRIDE=default
+          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+          fi
+          export DEVSTACK_GATE_TOPOLOGY="multinode"
+          export DEVSTACK_PROJECT_FROM_GIT=$ZUUL_SHORT_PROJECT_NAME
+
+          # Even if the branch is overridden, make sure we use
+          # the correct branch using the OVERRIDE_*_PROJECT_BRANCH
+          # variable.
+          uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] | tr '-' '_' | sed 's/[^A-Z_]//'`
+          export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-src-grenade-dsvm/post.yaml b/playbooks/oslo.messaging-src-grenade-dsvm/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-src-grenade-dsvm/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-src-grenade-dsvm/run.yaml b/playbooks/oslo.messaging-src-grenade-dsvm/run.yaml
new file mode 100644
index 000000000..d921269f3
--- /dev/null
+++ b/playbooks/oslo.messaging-src-grenade-dsvm/run.yaml
@@ -0,0 +1,50 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-src-grenade-dsvm from old job gate-oslo.messaging-src-grenade-dsvm-ubuntu-xenial-nv
+  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 PROJECTS="openstack-dev/grenade $PROJECTS"
+          export PYTHONUNBUFFERED=true
+          export DEVSTACK_GATE_TEMPEST=1
+          export DEVSTACK_GATE_GRENADE=pullup
+          export BRANCH_OVERRIDE=default
+          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+          fi
+          export DEVSTACK_PROJECT_FROM_GIT=$ZUUL_SHORT_PROJECT_NAME
+
+          # Even if the branch is overridden, make sure we use
+          # the correct branch using the OVERRIDE_*_PROJECT_BRANCH
+          # variable.
+          uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] | tr '-' '_' | sed 's/[^A-Z_]//'`
+          export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/post.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/post.yaml
new file mode 100644
index 000000000..dac875340
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/post.yaml
@@ -0,0 +1,80 @@
+- 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/oslo.messaging-telemetry-dsvm-integration-amqp1/run.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/run.yaml
new file mode 100644
index 000000000..ceb3267b1
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-amqp1/run.yaml
@@ -0,0 +1,90 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-telemetry-dsvm-integration-amqp1 from
+    old job gate-oslo.messaging-telemetry-dsvm-integration-amqp1-ubuntu-xenial-nv
+  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_HEAT=1
+          export DEVSTACK_GATE_NEUTRON=1
+          if [ "$ZUUL_BRANCH" == "stable/newton" ] ; then
+              export DEVSTACK_GATE_TEMPEST=0
+          else
+              export DEVSTACK_GATE_TEMPEST=1
+          fi
+          export DEVSTACK_GATE_EXERCISES=0
+          export DEVSTACK_GATE_INSTALL_TESTONLY=1
+
+          export PROJECTS="openstack/ceilometer $PROJECTS"
+          export PROJECTS="openstack/aodh $PROJECTS"
+          export PROJECTS="openstack/devstack-plugin-amqp1 $PROJECTS"
+
+          case "$ZUUL_BRANCH" in
+              "stable/newton")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.0"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              "stable/ocata")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.1"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              *)
+                export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                export PROJECTS="openstack/panko $PROJECTS"
+                ;;
+          esac
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=5"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_STORAGE_BACKEND=file"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"AMQP1_SERVICE=qpid-hybrid"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-amqp1 git://git.openstack.org/openstack/devstack-plugin-amqp1"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          function post_test_hook {
+              cd /opt/stack/new/ceilometer/ceilometer/tests/integration/hooks/
+              ./post_test_hook.sh
+          }
+          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 }}'
diff --git a/playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/post.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/post.yaml
new file mode 100644
index 000000000..dac875340
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/post.yaml
@@ -0,0 +1,80 @@
+- 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/oslo.messaging-telemetry-dsvm-integration-kafka/run.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/run.yaml
new file mode 100644
index 000000000..2117cea1d
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-kafka/run.yaml
@@ -0,0 +1,89 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-telemetry-dsvm-integration-kafka from
+    old job gate-oslo.messaging-telemetry-dsvm-integration-kafka-ubuntu-xenial-nv
+  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_HEAT=1
+          export DEVSTACK_GATE_NEUTRON=1
+          if [ "$ZUUL_BRANCH" == "stable/newton" ] ; then
+              export DEVSTACK_GATE_TEMPEST=0
+          else
+              export DEVSTACK_GATE_TEMPEST=1
+          fi
+          export DEVSTACK_GATE_EXERCISES=0
+          export DEVSTACK_GATE_INSTALL_TESTONLY=1
+
+          export PROJECTS="openstack/ceilometer $PROJECTS"
+          export PROJECTS="openstack/aodh $PROJECTS"
+          export PROJECTS="openstack/devstack-plugin-kafka $PROJECTS"
+
+          case "$ZUUL_BRANCH" in
+              "stable/newton")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.0"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              "stable/ocata")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.1"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              *)
+                export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                export PROJECTS="openstack/panko $PROJECTS"
+                ;;
+          esac
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=5"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_STORAGE_BACKEND=file"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-kafka git://git.openstack.org/openstack/devstack-plugin-kafka"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          function post_test_hook {
+              cd /opt/stack/new/ceilometer/ceilometer/tests/integration/hooks/
+              ./post_test_hook.sh
+          }
+          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 }}'
diff --git a/playbooks/oslo.messaging-telemetry-dsvm-integration-pika/post.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-pika/post.yaml
new file mode 100644
index 000000000..dac875340
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-pika/post.yaml
@@ -0,0 +1,80 @@
+- 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/oslo.messaging-telemetry-dsvm-integration-pika/run.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-pika/run.yaml
new file mode 100644
index 000000000..80a75aae6
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-pika/run.yaml
@@ -0,0 +1,89 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-telemetry-dsvm-integration-pika from
+    old job gate-oslo.messaging-telemetry-dsvm-integration-pika-ubuntu-xenial-nv
+  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_HEAT=1
+          export DEVSTACK_GATE_NEUTRON=1
+          if [ "$ZUUL_BRANCH" == "stable/newton" ] ; then
+              export DEVSTACK_GATE_TEMPEST=0
+          else
+              export DEVSTACK_GATE_TEMPEST=1
+          fi
+          export DEVSTACK_GATE_EXERCISES=0
+          export DEVSTACK_GATE_INSTALL_TESTONLY=1
+
+          export PROJECTS="openstack/ceilometer $PROJECTS"
+          export PROJECTS="openstack/aodh $PROJECTS"
+          export PROJECTS="openstack/devstack-plugin-pika $PROJECTS"
+
+          case "$ZUUL_BRANCH" in
+              "stable/newton")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.0"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              "stable/ocata")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.1"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              *)
+                export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                export PROJECTS="openstack/panko $PROJECTS"
+                ;;
+          esac
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=5"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_STORAGE_BACKEND=file"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-pika git://git.openstack.org/openstack/devstack-plugin-pika"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          function post_test_hook {
+              cd /opt/stack/new/ceilometer/ceilometer/tests/integration/hooks/
+              ./post_test_hook.sh
+          }
+          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 }}'
diff --git a/playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/post.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/post.yaml
new file mode 100644
index 000000000..dac875340
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/post.yaml
@@ -0,0 +1,80 @@
+- 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/oslo.messaging-telemetry-dsvm-integration-rabbit/run.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/run.yaml
new file mode 100644
index 000000000..de9c76954
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-rabbit/run.yaml
@@ -0,0 +1,88 @@
+- hosts: all
+  name: Autoconverted job legacy-telemetry-dsvm-integration-oslo.messaging from old
+    job gate-telemetry-dsvm-integration-oslo.messaging-ubuntu-xenial
+  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_HEAT=1
+          export DEVSTACK_GATE_NEUTRON=1
+          if [ "$ZUUL_BRANCH" == "stable/newton" ] ; then
+              export DEVSTACK_GATE_TEMPEST=0
+          else
+              export DEVSTACK_GATE_TEMPEST=1
+          fi
+          export DEVSTACK_GATE_EXERCISES=0
+          export DEVSTACK_GATE_INSTALL_TESTONLY=1
+          export DEVSTACK_GATE_TEMPEST_NOTESTS=1
+
+          export PROJECTS="openstack/ceilometer openstack/aodh"
+
+          # NOTE(sileht): This job runs on Aodh and Ceilometer.
+          # Gnocchi uses an independent release cycle. So we map here
+          # which Gnocchi version can be used with other OpenStack
+          # components and the reverse.
+          case "$ZUUL_BRANCH" in
+              "stable/newton")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.0"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              "stable/ocata")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.1"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              *)
+                export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                export PROJECTS="openstack/panko $PROJECTS"
+                ;;
+          esac
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=15"
+
+          export DEVSTACK_PROJECT_FROM_GIT=$ZUUL_SHORT_PROJECT_NAME
+
+          function post_test_hook {
+              cd /opt/stack/new/ceilometer/ceilometer/tests/integration/hooks/
+              ./post_test_hook.sh
+          }
+          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 }}'
diff --git a/playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/post.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/post.yaml
new file mode 100644
index 000000000..dac875340
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/post.yaml
@@ -0,0 +1,80 @@
+- 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/oslo.messaging-telemetry-dsvm-integration-zmq/run.yaml b/playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/run.yaml
new file mode 100644
index 000000000..d6aedd754
--- /dev/null
+++ b/playbooks/oslo.messaging-telemetry-dsvm-integration-zmq/run.yaml
@@ -0,0 +1,89 @@
+- hosts: all
+  name: Autoconverted job legacy-oslo.messaging-telemetry-dsvm-integration-zmq from
+    old job gate-oslo.messaging-telemetry-dsvm-integration-zmq-ubuntu-xenial-nv
+  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_HEAT=1
+          export DEVSTACK_GATE_NEUTRON=1
+          if [ "$ZUUL_BRANCH" == "stable/newton" ] ; then
+              export DEVSTACK_GATE_TEMPEST=0
+          else
+              export DEVSTACK_GATE_TEMPEST=1
+          fi
+          export DEVSTACK_GATE_EXERCISES=0
+          export DEVSTACK_GATE_INSTALL_TESTONLY=1
+
+          export PROJECTS="openstack/ceilometer $PROJECTS"
+          export PROJECTS="openstack/aodh $PROJECTS"
+          export PROJECTS="openstack/devstack-plugin-zmq $PROJECTS"
+
+          case "$ZUUL_BRANCH" in
+              "stable/newton")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.0"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              "stable/ocata")
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin gnocchi git://git.openstack.org/openstack/gnocchi"
+                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                  export OVERRIDE_GNOCCHI_PROJECT_BRANCH="stable/3.1"
+                  export PROJECTS="openstack/panko $PROJECTS openstack/gnocchi"
+                  ;;
+              *)
+                export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko git://git.openstack.org/openstack/panko"
+                export PROJECTS="openstack/panko $PROJECTS"
+                ;;
+          esac
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh git://git.openstack.org/openstack/aodh"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=5"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_STORAGE_BACKEND=file"
+
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin devstack-plugin-zmq git://git.openstack.org/openstack/devstack-plugin-zmq"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          function post_test_hook {
+              cd /opt/stack/new/ceilometer/ceilometer/tests/integration/hooks/
+              ./post_test_hook.sh
+          }
+          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 }}'
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/post.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/run.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/run.yaml
new file mode 100644
index 000000000..4d662a812
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-amqp1-hybrid/run.yaml
@@ -0,0 +1,46 @@
+- hosts: all
+  name: Autoconverted job legacy-tempest-neutron-dsvm-src-oslo.messaging-amqp1-hybrid
+    from old job gate-tempest-neutron-dsvm-src-oslo.messaging-amqp1-hybrid-ubuntu-xenial-nv
+  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_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+
+          export PROJECTS="openstack/devstack-plugin-amqp1 $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-amqp1 git://git.openstack.org/openstack/devstack-plugin-amqp1"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"AMQP1_SERVICE=qpid-hybrid"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/post.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/run.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/run.yaml
new file mode 100644
index 000000000..a9b494322
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-kafka-default/run.yaml
@@ -0,0 +1,45 @@
+- hosts: all
+  name: Autoconverted job legacy-tempest-neutron-dsvm-src-oslo.messaging-kafka-default
+    from old job gate-tempest-neutron-dsvm-src-oslo.messaging-kafka-default-ubuntu-xenial-nv
+  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_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+
+          export PROJECTS="openstack/devstack-plugin-kafka $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-kafka git://git.openstack.org/openstack/devstack-plugin-kafka"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/post.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/run.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/run.yaml
new file mode 100644
index 000000000..5dd65330e
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-pika-default/run.yaml
@@ -0,0 +1,45 @@
+- hosts: all
+  name: Autoconverted job legacy-tempest-neutron-dsvm-src-oslo.messaging-pika-default
+    from old job gate-tempest-neutron-dsvm-src-oslo.messaging-pika-default-ubuntu-xenial-nv
+  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_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+
+          export PROJECTS="openstack/devstack-plugin-pika $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-pika git://git.openstack.org/openstack/devstack-plugin-pika"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/post.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/run.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/run.yaml
new file mode 100644
index 000000000..6de63cccb
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-rabbit-default/run.yaml
@@ -0,0 +1,40 @@
+- hosts: all
+  name: Tempest full with neutron using rabbitmq
+  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_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/post.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/post.yaml
@@ -0,0 +1,15 @@
+- 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=/logs/**
+          - --include=*/
+          - --exclude=*
+          - --prune-empty-dirs
diff --git a/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/run.yaml b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/run.yaml
new file mode 100644
index 000000000..cbb6d0044
--- /dev/null
+++ b/playbooks/oslo.messaging-tempest-neutron-dsvm-src-zmq-default/run.yaml
@@ -0,0 +1,45 @@
+- hosts: all
+  name: Autoconverted job legacy-tempest-neutron-dsvm-src-oslo.messaging-zmq-default
+    from old job gate-tempest-neutron-dsvm-src-oslo.messaging-zmq-default-ubuntu-xenial-nv
+  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_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+
+          export PROJECTS="openstack/devstack-plugin-zmq $PROJECTS"
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-zmq git://git.openstack.org/openstack/devstack-plugin-zmq"
+
+          export DEVSTACK_PROJECT_FROM_GIT="oslo.messaging"
+
+          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 }}'
diff --git a/setup-test-env-amqp1.sh b/tools/setup-test-env-amqp1.sh
similarity index 100%
rename from setup-test-env-amqp1.sh
rename to tools/setup-test-env-amqp1.sh
diff --git a/tools/test-setup.sh b/tools/test-setup.sh
index 98a83eabd..b2fffb55f 100755
--- a/tools/test-setup.sh
+++ b/tools/test-setup.sh
@@ -10,25 +10,23 @@ function is_fedora {
     [ -f /usr/bin/yum ] && cat /etc/*release | grep -q -e "Fedora"
 }
 
-# Looks like /home/jenkins/worspace/gate-oslo.messaging-tox-py27-func-rabbit-ubuntu-xenial
-JOB_NAME=${WORKSPACE##*/}
-
-if [ "${JOB_NAME//gate-oslo.messaging-tox-py*-func-/}" == "${JOB_NAME}" ]; then
-    # not a functional test
-    exit 0
-fi
-
 # NOTE(sileht): we create the virtualenv only and use bindep directly
 # because tox doesn't have a quiet option...
 tox -ebindep --notest
 
-# NOTE(sileht): bindep return 1 if some packages have to be installed
-BINDEP_PROFILE=$(echo $JOB_NAME | cut -d- -f6)
-PACKAGES=$(.tox/bindep/bin/bindep -b -f bindep.txt $BINDEP_PROFILE || true)
+# TODO(kgiusti) for now install all profile deps, need to fix this to
+# install only the deps needed by the particular test's profile
+PROFILES="rabbit zmq amqp1"
+PACKAGES=
+for PROFILE in $PROFILES; do
+    # NOTE(sileht): bindep return 1 if some packages have to be installed
+    PACKAGES="$PACKAGES $(.tox/bindep/bin/bindep -b -f bindep.txt $PROFILE || true)"
+done
+[ -n "$PACKAGES" ] || exit 0
 
 # inspired from project-config install-distro-packages.sh
 if apt-get -v >/dev/null 2>&1 ; then
-    [ $BINDEP_PROFILE == amqp1 ] && sudo add-apt-repository -y ppa:qpid/testing
+    sudo add-apt-repository -y ppa:qpid/testing
     sudo apt-get -qq update
     sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
         apt-get -q --option "Dpkg::Options::=--force-confold" \
diff --git a/tox.ini b/tox.ini
index 043767cad..8d2bd82b1 100644
--- a/tox.ini
+++ b/tox.ini
@@ -63,7 +63,7 @@ setenv =
     AMQP1_BACKEND=qpidd
     ENVNAME={envname}
     WORKDIR={toxworkdir}
-commands = {toxinidir}/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
+commands = {toxinidir}/tools/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py35-func-amqp1]
 basepython = python3.5
@@ -73,7 +73,7 @@ setenv =
     AMQP1_BACKEND=qpidd
     ENVNAME={envname}
     WORKDIR={toxworkdir}
-commands = {toxinidir}/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
+commands = {toxinidir}/tools/setup-test-env-amqp1.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'
 
 [testenv:py27-func-zmq]
 commands = {toxinidir}/setup-test-env-zmq.sh python setup.py testr --slowest --testr-args='{posargs:oslo_messaging.tests.functional}'