diff --git a/playbooks/legacy/mistral-devstack-dsvm-kombu/post.yaml b/playbooks/legacy/mistral-devstack-dsvm-kombu/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm-kombu/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-devstack-dsvm-kombu/run.yaml b/playbooks/legacy/mistral-devstack-dsvm-kombu/run.yaml
deleted file mode 100644
index 0b84d965..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm-kombu/run.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-devstack-dsvm-kombu from old job gate-mistral-devstack-dsvm-kombu-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_NEUTRON=1
-
-          if [ "mistral" = "python-mistralclient" ] ; then
-              # This puts the repo in PROJECTS
-              export DEVSTACK_PROJECT_FROM_GIT="python-mistralclient"
-          else
-              export PROJECTS="openstack/python-mistralclient $PROJECTS"
-          fi
-
-          export ENABLED_SERVICES=heat,h-api,h-api-cfn,h-api-cw,h-eng,tempest
-          export PROJECTS="openstack/heat $PROJECTS"
-          export PROJECTS="openstack/mistral $PROJECTS"
-          export PROJECTS="openstack/mistral-dashboard $PROJECTS"
-          export DEVSTACK_LOCAL_CONFIG="enable_plugin mistral https://git.openstack.org/openstack/mistral"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
-
-          if [ "-kombu" == "-non-apache" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_USE_MOD_WSGI=False"
-          fi
-
-          if [ "-kombu" == "-kombu" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_RPC_IMPLEMENTATION=kombu"
-          fi
-
-          function post_test_hook {
-              cd /opt/stack/new/mistral/functionaltests
-              ./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/legacy/mistral-devstack-dsvm-non-apache/post.yaml b/playbooks/legacy/mistral-devstack-dsvm-non-apache/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm-non-apache/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-devstack-dsvm-non-apache/run.yaml b/playbooks/legacy/mistral-devstack-dsvm-non-apache/run.yaml
deleted file mode 100644
index 63de8bb5..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm-non-apache/run.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-devstack-dsvm-non-apache from old job gate-mistral-devstack-dsvm-non-apache-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_NEUTRON=1
-
-          if [ "mistral" = "python-mistralclient" ] ; then
-              # This puts the repo in PROJECTS
-              export DEVSTACK_PROJECT_FROM_GIT="python-mistralclient"
-          else
-              export PROJECTS="openstack/python-mistralclient $PROJECTS"
-          fi
-
-          export ENABLED_SERVICES=heat,h-api,h-api-cfn,h-api-cw,h-eng,tempest
-          export PROJECTS="openstack/heat $PROJECTS"
-          export PROJECTS="openstack/mistral $PROJECTS"
-          export PROJECTS="openstack/mistral-dashboard $PROJECTS"
-          export DEVSTACK_LOCAL_CONFIG="enable_plugin mistral https://git.openstack.org/openstack/mistral"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
-
-          if [ "-non-apache" == "-non-apache" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_USE_MOD_WSGI=False"
-          fi
-
-          if [ "-non-apache" == "-kombu" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_RPC_IMPLEMENTATION=kombu"
-          fi
-
-          function post_test_hook {
-              cd /opt/stack/new/mistral/functionaltests
-              ./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/legacy/mistral-devstack-dsvm/post.yaml b/playbooks/legacy/mistral-devstack-dsvm/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm/post.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-devstack-dsvm/run.yaml b/playbooks/legacy/mistral-devstack-dsvm/run.yaml
deleted file mode 100644
index 2508aef2..00000000
--- a/playbooks/legacy/mistral-devstack-dsvm/run.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-devstack-dsvm from old job gate-mistral-devstack-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 PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_NEUTRON=1
-
-          if [ "mistral" = "python-mistralclient" ] ; then
-              # This puts the repo in PROJECTS
-              export DEVSTACK_PROJECT_FROM_GIT="python-mistralclient"
-          else
-              export PROJECTS="openstack/python-mistralclient $PROJECTS"
-          fi
-
-          export ENABLED_SERVICES=heat,h-api,h-api-cfn,h-api-cw,h-eng,tempest
-          export PROJECTS="openstack/heat $PROJECTS"
-          export PROJECTS="openstack/mistral $PROJECTS"
-          export PROJECTS="openstack/mistral-dashboard $PROJECTS"
-          export DEVSTACK_LOCAL_CONFIG="enable_plugin mistral https://git.openstack.org/openstack/mistral"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat git://git.openstack.org/openstack/heat"
-
-          if [ "" == "-non-apache" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_USE_MOD_WSGI=False"
-          fi
-
-          if [ "" == "-kombu" ]; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"MISTRAL_RPC_IMPLEMENTATION=kombu"
-          fi
-
-          function post_test_hook {
-              cd /opt/stack/new/mistral/functionaltests
-              ./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/legacy/mistral-docker-buildimage/post.yaml b/playbooks/legacy/mistral-docker-buildimage/post.yaml
deleted file mode 100644
index 512ab63c..00000000
--- a/playbooks/legacy/mistral-docker-buildimage/post.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Ensure artifacts directory exists
-      file:
-        path: '{{ zuul.executor.work_root }}/artifacts'
-        state: directory
-      delegate_to: localhost
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.work_root }}/artifacts/images'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/mistral-docker.tar.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-docker-buildimage/run.yaml b/playbooks/legacy/mistral-docker-buildimage/run.yaml
deleted file mode 100644
index c3603f75..00000000
--- a/playbooks/legacy/mistral-docker-buildimage/run.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-docker-buildimage from old job gate-mistral-docker-buildimage
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          function cleanup {
-              # In cases where zuul-cloner is aborted during a git
-              # clone operation, git will remove the git work tree in
-              # its cleanup. The work tree in these jobs is the
-              # workspace directory, which means that subsequent
-              # jenkins post-build actions can not run because the
-              # workspace has been removed.
-              # To reduce the likelihood of this having an impact,
-              # recreate the workspace directory if needed
-              mkdir -p $WORKSPACE
-              rm -f $CLONEMAP
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          ./docker_image_build.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/mistral-ha/run.yaml b/playbooks/legacy/mistral-ha/run.yaml
deleted file mode 100644
index dd95a56b..00000000
--- a/playbooks/legacy/mistral-ha/run.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-ha from old job gate-mistral-ha-ubuntu-xenial-nv
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          function cleanup {
-              # In cases where zuul-cloner is aborted during a git
-              # clone operation, git will remove the git work tree in
-              # its cleanup. The work tree in these jobs is the
-              # workspace directory, which means that subsequent
-              # jenkins post-build actions can not run because the
-              # workspace has been removed.
-              # To reduce the likelihood of this having an impact,
-              # recreate the workspace directory if needed
-              mkdir -p $WORKSPACE
-              rm -f $CLONEMAP
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          # TODO: this is a temporary solution that puts all installation
-          # code into a script residing in mistral repo just for more
-          # convenient debugging (since we will be able to send patchsets to
-          # mistral with "check experimental" and trigger the gate). After
-          # it's ready it'll be better to create a special builder in this
-          # file.
-          ha_gate/install.sh
-          ha_gate/run_tests.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/mistral-tox-unit-mysql/post.yaml b/playbooks/legacy/mistral-tox-unit-mysql/post.yaml
deleted file mode 100644
index 68fbdf81..00000000
--- a/playbooks/legacy/mistral-tox-unit-mysql/post.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*nose_results.html
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testr_results.html.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.testrepository/tmp*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testrepository.subunit.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}/tox'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.tox/*/log/*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-tox-unit-mysql/run.yaml b/playbooks/legacy/mistral-tox-unit-mysql/run.yaml
deleted file mode 100644
index 9c7cdedc..00000000
--- a/playbooks/legacy/mistral-tox-unit-mysql/run.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-tox-unit-mysql from old job gate-mistral-tox-unit-mysql-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          if [ -x tools/test-setup.sh ] ; then
-            tools/test-setup.sh
-          fi
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -x
-          sudo rm -f /etc/sudoers.d/zuul
-          # Prove that general sudo access is actually revoked
-          ! sudo -n true
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/run-tox.sh unit-mysql
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          OUT=`git ls-files --other --exclude-standard --directory`
-          if [ -z "$OUT" ]; then
-              echo "No extra files created during test."
-              exit 0
-          else
-              echo "The following un-ignored files were created during the test:"
-              echo "$OUT"
-              exit 0  # TODO: change to 1 to fail tests.
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/mistral-tox-unit-postgresql/post.yaml b/playbooks/legacy/mistral-tox-unit-postgresql/post.yaml
deleted file mode 100644
index 68fbdf81..00000000
--- a/playbooks/legacy/mistral-tox-unit-postgresql/post.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*nose_results.html
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testr_results.html.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.testrepository/tmp*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testrepository.subunit.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}/tox'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.tox/*/log/*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/mistral-tox-unit-postgresql/run.yaml b/playbooks/legacy/mistral-tox-unit-postgresql/run.yaml
deleted file mode 100644
index c8bbca8c..00000000
--- a/playbooks/legacy/mistral-tox-unit-postgresql/run.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-mistral-tox-unit-postgresql from old job gate-mistral-tox-unit-postgresql-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          if [ -x tools/test-setup.sh ] ; then
-            tools/test-setup.sh
-          fi
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -x
-          sudo rm -f /etc/sudoers.d/zuul
-          # Prove that general sudo access is actually revoked
-          ! sudo -n true
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/run-tox.sh unit-postgresql
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          OUT=`git ls-files --other --exclude-standard --directory`
-          if [ -z "$OUT" ]; then
-              echo "No extra files created during test."
-              exit 0
-          else
-              echo "The following un-ignored files were created during the test:"
-              echo "$OUT"
-              exit 0  # TODO: change to 1 to fail tests.
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/rally-dsvm-mistral-task/post.yaml b/playbooks/legacy/rally-dsvm-mistral-task/post.yaml
deleted file mode 100644
index 4c699fc1..00000000
--- a/playbooks/legacy/rally-dsvm-mistral-task/post.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --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=/rally-plot/**
-          - --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=/rally-plot/extra/index.html
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/rally-dsvm-mistral-task/run.yaml b/playbooks/legacy/rally-dsvm-mistral-task/run.yaml
deleted file mode 100644
index bea5c2ad..00000000
--- a/playbooks/legacy/rally-dsvm-mistral-task/run.yaml
+++ /dev/null
@@ -1,71 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-rally-dsvm-mistral-task from old job gate-rally-dsvm-mistral-task-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
-          cat << 'EOF' >>"/tmp/dg-local.conf"
-          [[local|localrc]]
-          enable_plugin rally git://git.openstack.org/openstack/rally
-          enable_plugin mistral https://git.openstack.org/openstack/mistral
-
-          EOF
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-
-          if [ $ZUUL_PROJECT == "openstack/rally" ] && [ $ZUUL_BRANCH != "master" ]; then
-              export DEVSTACK_GATE_FEATURE_MATRIX="/opt/stack/new/rally/devstack/features.yaml"
-          fi
-
-          export PROJECTS="openstack/rally $PROJECTS"
-          export PROJECTS="openstack/mistral $PROJECTS"
-          export PROJECTS="openstack/mistral-dashboard $PROJECTS"
-          export PROJECTS="openstack/python-mistralclient $PROJECTS"
-
-          export DEVSTACK_GATE_TEMPEST_LARGE_OPS=0
-          export DEVSTACK_GATE_EXERCISES=0
-          export RALLY_SCENARIO=$ZUUL_SHORT_PROJECT_NAME-mistral
-
-          export IDENTITY_API_VERSION=3
-
-          export ENABLED_SERVICES=h-api,h-api-cfn,h-api-cw,h-eng,heat,
-
-          function post_test_hook {
-              $BASE/new/rally/tests/ci/rally-gate.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/zuul.d/zuul-legacy-jobs.yaml b/zuul.d/zuul-legacy-jobs.yaml
index d74b134b..288469c0 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -5045,79 +5045,6 @@
     post-run: playbooks/legacy/merlin-js-release-master/post
     timeout: 1800
 
-- job:
-    name: legacy-mistral-devstack-dsvm
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/mistral-devstack-dsvm/run
-    post-run: playbooks/legacy/mistral-devstack-dsvm/post
-    timeout: 4200
-    required-projects:
-      - openstack-dev/devstack
-      - openstack-infra/devstack-gate
-      - openstack/heat
-      - openstack/mistral
-      - openstack/mistral-dashboard
-      - openstack/python-mistralclient
-
-- job:
-    name: legacy-mistral-devstack-dsvm-kombu
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/mistral-devstack-dsvm-kombu/run
-    post-run: playbooks/legacy/mistral-devstack-dsvm-kombu/post
-    timeout: 4200
-    required-projects:
-      - openstack-dev/devstack
-      - openstack-infra/devstack-gate
-      - openstack/heat
-      - openstack/mistral
-      - openstack/mistral-dashboard
-      - openstack/python-mistralclient
-
-- job:
-    name: legacy-mistral-devstack-dsvm-non-apache
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/mistral-devstack-dsvm-non-apache/run
-    post-run: playbooks/legacy/mistral-devstack-dsvm-non-apache/post
-    timeout: 4200
-    required-projects:
-      - openstack-dev/devstack
-      - openstack-infra/devstack-gate
-      - openstack/heat
-      - openstack/mistral
-      - openstack/mistral-dashboard
-      - openstack/python-mistralclient
-
-- job:
-    name: legacy-mistral-docker-buildimage
-    parent: legacy-publish-openstack-artifacts
-    run: playbooks/legacy/mistral-docker-buildimage/run
-    post-run: playbooks/legacy/mistral-docker-buildimage/post
-    timeout: 1800
-
-- job:
-    name: legacy-mistral-ha
-    parent: legacy-base
-    run: playbooks/legacy/mistral-ha/run
-    timeout: 4200
-
-- job:
-    name: legacy-mistral-tox-unit-mysql
-    parent: legacy-base
-    run: playbooks/legacy/mistral-tox-unit-mysql/run
-    post-run: playbooks/legacy/mistral-tox-unit-mysql/post
-    timeout: 2400
-    required-projects:
-      - openstack/requirements
-
-- job:
-    name: legacy-mistral-tox-unit-postgresql
-    parent: legacy-base
-    run: playbooks/legacy/mistral-tox-unit-postgresql/run
-    post-run: playbooks/legacy/mistral-tox-unit-postgresql/post
-    timeout: 2400
-    required-projects:
-      - openstack/requirements
-
 - job:
     name: legacy-mixmatch-dsvm-functional
     parent: legacy-dsvm-base
@@ -10034,19 +9961,6 @@
       - openstack/python-mistralclient
       - openstack/rally
 
-- job:
-    name: legacy-rally-dsvm-mistral-task
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/rally-dsvm-mistral-task/run
-    post-run: playbooks/legacy/rally-dsvm-mistral-task/post
-    timeout: 7800
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/mistral
-      - openstack/mistral-dashboard
-      - openstack/python-mistralclient
-      - openstack/rally
-
 - job:
     name: legacy-rally-dsvm-monasca-rally
     parent: legacy-dsvm-base