From ce0cdea9ac7d92a2f294431034bc15bfdd781575 Mon Sep 17 00:00:00 2001
From: Vasyl Saienko <vsaienko@mirantis.com>
Date: Wed, 25 Oct 2017 15:12:06 +0300
Subject: [PATCH] Cleanup ironic-python-agent legacy jobs

We moved legacy jobs to ironic-python-agent tree, this patch
cleanup their definition.

Depends-On: I3c4432f0d788a03f1c70ba3bcd6c39ebfaaed513
Change-Id: Ic5a3f92b0779d5f86ceff7d1b6da66b442e63b3a
---
 .../post.yaml                                 |  47 -----
 .../run.yaml                                  |  98 ---------
 .../post.yaml                                 |  47 -----
 .../run.yaml                                  |  98 ---------
 .../ironic-python-agent-tox-func/post.yaml    |  67 ------
 .../ironic-python-agent-tox-func/run.yaml     |  86 --------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 195 ------------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 .../post.yaml                                 |  15 --
 .../run.yaml                                  | 157 --------------
 zuul.d/zuul-legacy-jobs.yaml                  | 175 +---------------
 27 files changed, 3 insertions(+), 2373 deletions(-)
 delete mode 100644 playbooks/legacy/ironic-python-agent-buildimage-coreos/post.yaml
 delete mode 100644 playbooks/legacy/ironic-python-agent-buildimage-coreos/run.yaml
 delete mode 100644 playbooks/legacy/ironic-python-agent-buildimage-tinyipa/post.yaml
 delete mode 100644 playbooks/legacy/ironic-python-agent-buildimage-tinyipa/run.yaml
 delete mode 100644 playbooks/legacy/ironic-python-agent-tox-func/post.yaml
 delete mode 100644 playbooks/legacy/ironic-python-agent-tox-func/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-inspector-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-inspector-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/run.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/post.yaml
 delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/run.yaml

diff --git a/playbooks/legacy/ironic-python-agent-buildimage-coreos/post.yaml b/playbooks/legacy/ironic-python-agent-buildimage-coreos/post.yaml
deleted file mode 100644
index 39672399..00000000
--- a/playbooks/legacy/ironic-python-agent-buildimage-coreos/post.yaml
+++ /dev/null
@@ -1,47 +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/coreos/files/'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/UPLOAD_RAW/*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.work_root }}/artifacts/coreos/'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/UPLOAD_TAR/*
-          - --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
diff --git a/playbooks/legacy/ironic-python-agent-buildimage-coreos/run.yaml b/playbooks/legacy/ironic-python-agent-buildimage-coreos/run.yaml
deleted file mode 100644
index f16933f5..00000000
--- a/playbooks/legacy/ironic-python-agent-buildimage-coreos/run.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-ironic-python-agent-buildimage-coreos from old job
-    ironic-python-agent-buildimage-coreos-ubuntu-xenial
-  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: |
-          set -e
-          set -x
-          BRANCH=$ZUUL_REFNAME
-          export BRANCH_PATH=`echo $BRANCH | tr / -`
-
-          mkdir UPLOAD_RAW
-          mkdir UPLOAD_TAR
-
-          JOBNAME=ironic-python-agent-buildimage-{image-type}-{node}
-          TRANS_START_TIME=$(date +%s)
-          SUBUNIT_OUTPUT=testrepository.subunit
-          ERRORS=1
-          VENV=$(mktemp -d)
-          virtualenv $VENV
-          $VENV/bin/pip install -U os-testr
-
-          trap "finish" EXIT
-
-          function finish {
-              if [[ "$ERRORS" -eq 1 ]]; then
-                  $VENV/bin/generate-subunit $TRANS_START_TIME $SECONDS 'fail' $JOBNAME >> $SUBUNIT_OUTPUT
-              else
-                  $VENV/bin/generate-subunit $TRANS_START_TIME $SECONDS 'success' $JOBNAME >> $SUBUNIT_OUTPUT
-              fi
-              gzip -9 $SUBUNIT_OUTPUT
-              if [ "$VENV" != "" ] ; then
-                  rm -rf $VENV
-                  VENV=""
-              fi
-          }
-
-          type="coreos"
-          case $type in
-              tinyipa)
-                  export BUILD_AND_INSTALL_TINYIPA=true
-                  (cd imagebuild/tinyipa && make)
-                  mv imagebuild/tinyipa/tinyipa*.tar.gz* UPLOAD_TAR
-                  mv imagebuild/tinyipa/tinyipa*.* UPLOAD_RAW
-                  # NOTE(sambetts) Must clean up chroot directories before
-                  # publisher rsync command tries and fails to read them
-                  (cd imagebuild/tinyipa && make clean)
-              ;;
-              coreos)
-                  imagebuild/coreos/full_trusty_build.sh
-                  mv imagebuild/coreos/UPLOAD/coreos_production_pxe* UPLOAD_RAW
-                  mv ipa-coreos*.tar.gz* UPLOAD_TAR
-              ;;
-          esac
-          ERRORS=0
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/post.yaml b/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/post.yaml
deleted file mode 100644
index a6361bf6..00000000
--- a/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/post.yaml
+++ /dev/null
@@ -1,47 +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/tinyipa/files/'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/UPLOAD_RAW/*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.work_root }}/artifacts/tinyipa/'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/UPLOAD_TAR/*
-          - --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
diff --git a/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/run.yaml b/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/run.yaml
deleted file mode 100644
index 282affbf..00000000
--- a/playbooks/legacy/ironic-python-agent-buildimage-tinyipa/run.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-ironic-python-agent-buildimage-tinyipa from old job
-    ironic-python-agent-buildimage-tinyipa-ubuntu-xenial
-  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: |
-          set -e
-          set -x
-          BRANCH=$ZUUL_REFNAME
-          export BRANCH_PATH=`echo $BRANCH | tr / -`
-
-          mkdir UPLOAD_RAW
-          mkdir UPLOAD_TAR
-
-          JOBNAME=ironic-python-agent-buildimage-{image-type}-{node}
-          TRANS_START_TIME=$(date +%s)
-          SUBUNIT_OUTPUT=testrepository.subunit
-          ERRORS=1
-          VENV=$(mktemp -d)
-          virtualenv $VENV
-          $VENV/bin/pip install -U os-testr
-
-          trap "finish" EXIT
-
-          function finish {
-              if [[ "$ERRORS" -eq 1 ]]; then
-                  $VENV/bin/generate-subunit $TRANS_START_TIME $SECONDS 'fail' $JOBNAME >> $SUBUNIT_OUTPUT
-              else
-                  $VENV/bin/generate-subunit $TRANS_START_TIME $SECONDS 'success' $JOBNAME >> $SUBUNIT_OUTPUT
-              fi
-              gzip -9 $SUBUNIT_OUTPUT
-              if [ "$VENV" != "" ] ; then
-                  rm -rf $VENV
-                  VENV=""
-              fi
-          }
-
-          type="tinyipa"
-          case $type in
-              tinyipa)
-                  export BUILD_AND_INSTALL_TINYIPA=true
-                  (cd imagebuild/tinyipa && make)
-                  mv imagebuild/tinyipa/tinyipa*.tar.gz* UPLOAD_TAR
-                  mv imagebuild/tinyipa/tinyipa*.* UPLOAD_RAW
-                  # NOTE(sambetts) Must clean up chroot directories before
-                  # publisher rsync command tries and fails to read them
-                  (cd imagebuild/tinyipa && make clean)
-              ;;
-              coreos)
-                  imagebuild/coreos/full_trusty_build.sh
-                  mv imagebuild/coreos/UPLOAD/coreos_production_pxe* UPLOAD_RAW
-                  mv ipa-coreos*.tar.gz* UPLOAD_TAR
-              ;;
-          esac
-          ERRORS=0
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/ironic-python-agent-tox-func/post.yaml b/playbooks/legacy/ironic-python-agent-tox-func/post.yaml
deleted file mode 100644
index 68fbdf81..00000000
--- a/playbooks/legacy/ironic-python-agent-tox-func/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/ironic-python-agent-tox-func/run.yaml b/playbooks/legacy/ironic-python-agent-tox-func/run.yaml
deleted file mode 100644
index 0a422faa..00000000
--- a/playbooks/legacy/ironic-python-agent-tox-func/run.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-ironic-python-agent-tox-func from old job gate-ironic-python-agent-tox-func-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 func
-        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/tempest-dsvm-ironic-inspector-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-inspector-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-inspector-src/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/tempest-dsvm-ironic-inspector-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-inspector-src/run.yaml
deleted file mode 100644
index 26fba45f..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-inspector-src/run.yaml
+++ /dev/null
@@ -1,195 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-inspector-src from old job gate-tempest-dsvm-ironic-inspector-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="InspectorBasicTest"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export PROJECTS="openstack/ironic-inspector $PROJECTS"
-          export PROJECTS="openstack/python-ironic-inspector-client $PROJECTS"
-          export DEVSTACK_GATE_IRONIC_INSPECTOR=1
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector git://git.openstack.org/openstack/ironic-inspector"
-
-          # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic-inspector'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-inspector'"
-          fi
-
-          export IRONIC_INSPECTOR_AUTO_DISCOVERY=0
-          if [ "$IRONIC_INSPECTOR_AUTO_DISCOVERY" == "1" ]; then
-               # discovery test requires sudo for iptables and virsh
-               export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
-               # enable enroll hook
-               export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK=enroll"
-               # we are deleting node from ironic for simulate node discovery,
-               # so inspector has to sync cache asap
-               export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_CLEAN_UP_PERIOD=5"
-          fi
-
-          # Make IPXE configuration consistent between Mitaka and Master
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_RAMDISK_ELEMENT=ironic-agent"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_MANAGE_FIREWALL=True"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/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/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/run.yaml
deleted file mode 100644
index 6571dbe8..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "coreos" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/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/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/run.yaml
deleted file mode 100644
index 30027d63..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/run.yaml
deleted file mode 100644
index 85f1e5ef..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "coreos" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/run.yaml
deleted file mode 100644
index f2ff26f4..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/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/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/run.yaml
deleted file mode 100644
index 84b7ec12..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src
-    from old job gate-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa256" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "partition" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/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/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/run.yaml
deleted file mode 100644
index 417aba6d..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src
-    from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "coreos" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/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/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/run.yaml
deleted file mode 100644
index 49e3638e..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src
-    from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "agent_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "agent_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/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/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/run.yaml
deleted file mode 100644
index f63c148b..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src
-    from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "coreos" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/post.yaml
deleted file mode 100644
index e07f5510..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/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/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/run.yaml
deleted file mode 100644
index aff94e73..00000000
--- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/run.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src
-    from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src-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: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
-          # Standardize VM size for each supported ramdisk
-          case "tinyipa" in
-              'tinyipa')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'tinyipa256')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-                  ;;
-              'coreos')
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
-                  export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
-                  ;;
-          # if using a ramdisk without a known good value, use the devstack
-          # default by not exporting any value for IRONIC_VM_SPECS_RAM
-          esac
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic'"
-          else
-            # on master, use the local change, so we can pick up any changes to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic'"
-          fi
-          export TEMPEST_CONCURRENCY=1
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=pxe_ipmitool
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          if [ "pxe_ipmitool" == "pxe_snmp" ] ; then
-              # explicitly enable pxe_snmp driver
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
-          fi
-
-          if [ "pxe_ipmitool" == "redfish" ] ; then
-              # When deploying with redfish we need to enable the "redfish"
-              # hardware type
-              export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_HARDWARE_TYPES=redfish"
-          fi
-
-          if [ "wholedisk" == "wholedisk" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-          else
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1"
-          fi
-
-          if [ -n "-src" ] ; then
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=1
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=True"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"USE_SUBNETPOOL=False"
-          else
-            export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-          fi
-
-          if [ "bios" == "uefi" ] ; then
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BOOT_MODE=uefi"
-          fi
-
-          export DEVSTACK_PROJECT_FROM_GIT=""
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          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 f242129c..bf7d7dfb 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -2625,29 +2625,6 @@
     required-projects:
       - openstack/requirements
 
-- job:
-    name: legacy-ironic-python-agent-buildimage-coreos
-    parent: legacy-publish-openstack-artifacts
-    run: playbooks/legacy/ironic-python-agent-buildimage-coreos/run
-    post-run: playbooks/legacy/ironic-python-agent-buildimage-coreos/post
-    timeout: 1800
-
-- job:
-    name: legacy-ironic-python-agent-buildimage-tinyipa
-    parent: legacy-publish-openstack-artifacts
-    run: playbooks/legacy/ironic-python-agent-buildimage-tinyipa/run
-    post-run: playbooks/legacy/ironic-python-agent-buildimage-tinyipa/post
-    timeout: 1800
-
-- job:
-    name: legacy-ironic-python-agent-tox-func
-    parent: legacy-base
-    run: playbooks/legacy/ironic-python-agent-tox-func/run
-    post-run: playbooks/legacy/ironic-python-agent-tox-func/post
-    timeout: 2400
-    required-projects:
-      - openstack/requirements
-
 - job:
     name: legacy-ironic-staging-drivers-dsvm
     parent: legacy-dsvm-base
@@ -8554,40 +8531,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-inspector-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-inspector-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-inspector-src/post
-    timeout: 10800
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-coreos-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa
     parent: legacy-dsvm-base
@@ -8604,38 +8547,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-agent_ipmitool-tinyipa-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-coreos-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa
     parent: legacy-dsvm-base
@@ -8652,38 +8563,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-bios-pxe_ipmitool-tinyipa256-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3
     parent: legacy-dsvm-base
@@ -8718,10 +8597,10 @@
       - openstack/virtualbmc
 
 - job:
-    name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src
+    name: legacy-tempest-dsvm-ironic-ipa-partition-redfish-tinyipa
     parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-coreos-src/post
+    run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/run
+    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/post
     timeout: 5400
     required-projects:
       - openstack-infra/devstack-gate
@@ -8749,38 +8628,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-coreos-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa
     parent: legacy-dsvm-base
@@ -8797,22 +8644,6 @@
       - openstack/tempest
       - openstack/virtualbmc
 
-- job:
-    name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/run
-    post-run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_ipmitool-tinyipa-src/post
-    timeout: 5400
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/pyghmi
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-
 - job:
     name: legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa
     parent: legacy-dsvm-base