summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/source/admin/drivers/oneview.rst117
-rw-r--r--doc/source/admin/upgrade-to-hardware-types.rst104
-rw-r--r--playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/post.yaml15
-rw-r--r--playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/run.yaml217
-rw-r--r--playbooks/legacy/grenade-dsvm-ironic/post.yaml15
-rw-r--r--playbooks/legacy/grenade-dsvm-ironic/run.yaml180
-rw-r--r--playbooks/legacy/ironic-dsvm-functional/post.yaml15
-rw-r--r--playbooks/legacy/ironic-dsvm-functional/run.yaml63
-rw-r--r--playbooks/legacy/ironic-dsvm-standalone/post.yaml15
-rw-r--r--playbooks/legacy/ironic-dsvm-standalone/run.yaml98
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-bfv/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml169
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-inspector/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-inspector/run.yaml195
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/run.yaml182
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/run.yaml157
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/run.yaml157
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/run.yaml166
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml183
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/run.yaml157
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/run.yaml157
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/run.yaml156
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/post.yaml15
-rw-r--r--playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/run.yaml175
-rw-r--r--zuul.d/project.yaml37
33 files changed, 2872 insertions, 23 deletions
diff --git a/doc/source/admin/drivers/oneview.rst b/doc/source/admin/drivers/oneview.rst
index 6f5112cfc..806433d72 100644
--- a/doc/source/admin/drivers/oneview.rst
+++ b/doc/source/admin/drivers/oneview.rst
@@ -14,16 +14,23 @@ instance. In this context, the ``HP OneView driver`` for ironic enables the
users of OneView to use ironic as a bare metal provider to their managed
physical hardware.
-Currently there are two OneView drivers:
+HPE OneView hardware is supported by the ``oneview`` hardware type and the
+following classic drivers:
* ``iscsi_pxe_oneview``
* ``agent_pxe_oneview``
+Classic Drivers
+===============
+
The ``iscsi_pxe_oneview`` and ``agent_pxe_oneview`` drivers implement the
core interfaces of an ironic Driver [2]_, and use the ``python-oneviewclient``
[3]_ to provide communication between ironic and OneView through OneView's
REST API.
+.. note::
+ Classic drivers will be deprecated in favor of Hardware Types.
+
To provide a bare metal instance there are four components involved in the
process:
@@ -96,6 +103,114 @@ Tested platforms
in general, the hardware also needs to run version 4.2.3 of iLO, with
Redfish enabled.
+Hardware Interfaces
+===================
+
+The ``oneview`` hardware type supports the following hardware interfaces:
+
+* boot
+ Supports only ``pxe``. It can be enabled by using the
+ ``[DEFAULT]enabled_boot_interfaces`` option in ``ironic.conf``
+ as given below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_boot_interfaces = pxe
+
+* console
+ Supports only ``no-console``. It can be enabled by using the
+ ``[DEFAULT]enabled_console_interfaces``
+ option in ``ironic.conf`` as given below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_console_interfaces = no-console
+
+* deploy
+ Supports ``oneview-direct`` and ``oneview-iscsi``. The default is
+ ``oneview-iscsi``. They can be enabled by using the
+ ``[DEFAULT]enabled_deploy_interfaces`` option in ``ironic.conf``
+ as given below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_deploy_interfaces = oneview-iscsi,oneview-direct
+
+* inspect
+ Supports ``oneview`` and ``no-inspect``. The default is ``oneview``.
+ They can be enabled by using the ``[DEFAULT]enabled_inspect_interfaces``
+ option in ``ironic.conf`` as given below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_inspect_interfaces = oneview,no-inspect
+
+* management
+ Supports only ``oneview``. It can be enabled by using the
+ ``[DEFAULT]enabled_management_interfaces`` option in ``ironic.conf`` as
+ given below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_management_interfaces = oneview
+
+* power
+ Supports only ``oneview``. It can be enabled by using the
+ ``[DEFAULT]enabled_power_interfaces`` option in ``ironic.conf`` as given
+ below:
+
+ .. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_power_interfaces = oneview
+
+The ``oneview`` hardware type also supports the standard *network* and
+*storage* interfaces.
+
+To enable the same feature set as provided by all oneview classic drivers,
+apply the following configuration:
+
+.. code-block:: ini
+
+ [DEFAULT]
+ enabled_hardware_types = oneview
+ enabled_deploy_interfaces = oneview-direct,oneview-iscsi
+ enabled_inspect_interfaces = oneview
+ enabled_power_interfaces = oneview
+ enabled_management_interfaces = oneview
+
+The following commands can be used to enroll a node with the same
+feature set as one of the classic drivers, but using the ``oneview``
+hardware type:
+
+* ``oneview-direct``:
+
+ .. code-block:: console
+
+ openstack baremetal node create --os-baremetal-api-version=1.31 \
+ --driver oneview \
+ --deploy-interface oneview-direct
+
+* ``oneview-iscsi``:
+
+ .. code-block:: console
+
+ openstack baremetal node create --os-baremetal-api-version=1.31 \
+ --driver oneview \
+ --deploy-interface oneview-iscsi
+
+
Drivers
=======
diff --git a/doc/source/admin/upgrade-to-hardware-types.rst b/doc/source/admin/upgrade-to-hardware-types.rst
index 987bea302..dde3bba3a 100644
--- a/doc/source/admin/upgrade-to-hardware-types.rst
+++ b/doc/source/admin/upgrade-to-hardware-types.rst
@@ -10,31 +10,47 @@ Planning the upgrade
--------------------
It is necessary to figure out which hardware types and hardware interfaces
-correspond to which classic drivers used in your deployment.
-Use the following table:
-
-================ ============= ==================== ====== ========== =========
- Classic Driver Hardware Type Boot Deploy Management Power
-================ ============= ==================== ====== ========== =========
-pxe_ilo ilo ilo-pxe iscsi ilo ilo
-agent_ilo ilo ilo-virtual-media direct ilo ilo
-iscsi_ilo ilo ilo-virtual-media iscsi ilo ilo
-pxe_ipmitool ipmi pxe iscsi ipmitool ipmitool
-agent_ipmitool ipmi pxe direct ipmitool ipmitool
-pxe_irmc irmc irmc-pxe iscsi irmc irmc
-iscsi_irmc irmc irmc-virtual-media iscsi irmc irmc
-agent_irmc irmc irmc-virtual-media direct irmc irmc
-================ ============= ==================== ====== ========== =========
-
-.. TODO(dtantsur): finish this table
+correspond to which classic drivers used in your deployment. The following
+table lists the classic drivers with their corresponding hardware types and
+the boot, deploy, inspect, management, and power hardware interfaces:
+
+===================== ==================== ==================== ============== ========== ========== =========
+ Classic Driver Hardware Type Boot Deploy Inspect Management Power
+===================== ==================== ==================== ============== ========== ========== =========
+agent_ilo ilo ilo-virtual-media direct ilo ilo ilo
+agent_ipmitool ipmi pxe direct inspector ipmitool ipmitool
+agent_ipmitool_socat ipmi pxe direct inspector ipmitool ipmitool
+agent_irmc irmc irmc-virtual-media direct irmc irmc irmc
+agent_pxe_oneview oneview pxe oneview-direct oneview oneview oneview
+agent_ucs cisco-ucs-managed pxe direct inspector ucsm ucsm
+iscsi_ilo ilo ilo-virtual-media iscsi ilo ilo ilo
+iscsi_irmc irmc irmc-virtual-media iscsi irmc irmc irmc
+iscsi_pxe_oneview oneview pxe oneview-iscsi oneview oneview oneview
+pxe_agent_cimc cisco-ucs-standalone pxe direct inspector cimc cimc
+pxe_drac idrac pxe iscsi idrac idrac idrac
+pxe_drac_inspector idrac pxe iscsi inspector idrac idrac
+pxe_ilo ilo ilo-pxe iscsi ilo ilo ilo
+pxe_ipmitool ipmi pxe iscsi inspector ipmitool ipmitool
+pxe_ipmitool_socat ipmi pxe iscsi inspector ipmitool ipmitool
+pxe_iscsi_cimc cisco-ucs-standalone pxe iscsi inspector cimc cimc
+pxe_irmc irmc irmc-pxe iscsi irmc irmc irmc
+pxe_snmp snmp pxe iscsi no-inspect fake snmp
+pxe_ucs cisco-ucs-managed pxe iscsi inspector ucsm ucsm
+===================== ==================== ==================== ============== ========== ========== =========
-.. warning::
- This table does not currently cover hardware interfaces other than
- boot, deploy, management and power.
+.. note::
+ The ``inspector`` *inspect* interface was only used if
+ explicitly enabled in the configuration. Otherwise, ``no-inspect``
+ was used.
.. note::
- For out-of-tree drivers you may need to reach out to their maintainers or
- figure out the appropriate interfaces by researching the source code.
+ ``pxe_ipmitool_socat`` and ``agent_ipmitool_socat`` use
+ ``ipmitool-socat`` *console* interface (the default for the ``ipmi``
+ hardware type), while ``pxe_ipmitool`` and ``agent_ipmitool`` use
+ ``ipmitool-shellinabox``. See Console_ for details.
+
+For out-of-tree drivers you may need to reach out to their maintainers or
+figure out the appropriate interfaces by researching the source code.
Configuration
-------------
@@ -214,3 +230,47 @@ Network and storage
The network and storage interfaces have always been dynamic, and thus do not
require any special treatment during upgrade.
+
+Vendor
+~~~~~~
+
+Classic drivers are allowed to use the ``VendorMixin`` functionality
+to combine and expose several node or driver vendor passthru methods
+from different vendor interface implementations in one driver.
+
+**This is no longer possible with hardware types.**
+
+With hardware types, a vendor interface can only have a single active
+implementation from the list of vendor interfaces supported by a given
+hardware type.
+
+Ironic no longer has in-tree drivers (both classic and hardware types) that
+rely on this ``VendorMixin`` functionality support.
+However if you are using an out-of-tree classic driver that depends on it,
+you'll need to do the following in order to use vendor
+passthru methods from different vendor passthru implementations:
+
+#. While creating a new hardware type to replace your classic driver,
+ specify all vendor interface implementations your classic driver
+ was using to build its ``VendorMixin`` as supported vendor interfaces
+ (property ``supported_vendor_interfaces`` of the Python class
+ that defines your hardware type).
+#. Ensure all required vendor interfaces are enabled in the ironic
+ configuration file under the ``[DEFAULT]enabled_vendor_interfaces``
+ option.
+ You should also consider setting the ``[DEFAULT]default_vendor_interface``
+ option to specify the vendor interface for nodes that do not have one set
+ explicitly.
+#. Before invoking a specific vendor passthru method,
+ make sure that the node's vendor interface is set to the interface
+ with the desired vendor passthru method.
+ For example, if you want to invoke the vendor passthru method
+ ``vendor_method_foo()`` from ``vendor_foo`` vendor interface:
+
+ .. code-block:: shell
+
+ # set the vendor interface to 'vendor_foo`
+ openstack --os-baremetal-api-version 1.31 baremetal node set <node> --vendor-interface vendor_foo
+
+ # invoke the vendor passthru method
+ openstack baremetal node passthru call <node> vendor_method_foo
diff --git a/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/post.yaml b/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/run.yaml b/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/run.yaml
new file mode 100644
index 000000000..576a14194
--- /dev/null
+++ b/playbooks/legacy/grenade-dsvm-ironic-multinode-multitenant/run.yaml
@@ -0,0 +1,217 @@
+- hosts: primary
+ name: Autoconverted job legacy-grenade-dsvm-ironic-multinode-multitenant from old
+ job gate-grenade-dsvm-ironic-multinode-multitenant-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-vars-early
+ # Set this early so that we do not have to be as careful with builder ordering in jobs.
+ export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export PROJECTS="openstack-dev/grenade $PROJECTS"
+ export DEVSTACK_GATE_GRENADE=pullup
+ export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
+ export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
+ export DEVSTACK_GATE_TLSPROXY=0
+ export BUILD_TIMEOUT
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export GRENADE_PLUGINRC+=$'\n'"enable_grenade_plugin networking-generic-switch https://git.openstack.org/openstack/networking-generic-switch"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_TOPOLOGY="multinode"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
+ # networking-generic-switch requires sudo to execute ovs-vsctl commands
+ export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
+ export PROJECTS="openstack/networking-generic-switch $PROJECTS"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_USE_PROVIDERNET_FOR_PUBLIC=False"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron"
+
+ EOF
+ 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-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=4
+
+ 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 "" ] ; 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=7"
+
+ # 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/grenade-dsvm-ironic/post.yaml b/playbooks/legacy/grenade-dsvm-ironic/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/grenade-dsvm-ironic/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/grenade-dsvm-ironic/run.yaml b/playbooks/legacy/grenade-dsvm-ironic/run.yaml
new file mode 100644
index 000000000..6ba64bd59
--- /dev/null
+++ b/playbooks/legacy/grenade-dsvm-ironic/run.yaml
@@ -0,0 +1,180 @@
+- hosts: all
+ name: Autoconverted job legacy-grenade-dsvm-ironic from old job gate-grenade-dsvm-ironic-ubuntu-xenial-nv
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - name: Show the environment
+ shell:
+ cmd: |
+ env
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-vars-early
+ # Set this early so that we do not have to be as careful with builder ordering in jobs.
+ export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export PROJECTS="openstack-dev/grenade $PROJECTS"
+ export DEVSTACK_GATE_GRENADE=pullup
+ export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
+ export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_BUILD_DEPLOY_RAMDISK=False"
+ export DEVSTACK_GATE_TLSPROXY=0
+ export BUILD_TIMEOUT
+
+ 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: |
+ 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: |
+ 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 "" ] ; 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=7"
+
+ # 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/ironic-dsvm-functional/post.yaml b/playbooks/legacy/ironic-dsvm-functional/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/ironic-dsvm-functional/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/ironic-dsvm-functional/run.yaml b/playbooks/legacy/ironic-dsvm-functional/run.yaml
new file mode 100644
index 000000000..737281d28
--- /dev/null
+++ b/playbooks/legacy/ironic-dsvm-functional/run.yaml
@@ -0,0 +1,63 @@
+- hosts: all
+ name: Autoconverted job legacy-ironic-dsvm-functional from old job gate-ironic-dsvm-functional-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat << 'EOF' >>"/tmp/dg-local.conf"
+ [[local|localrc]]
+ enable_plugin ironic git://git.openstack.org/openstack/ironic
+
+ EOF
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ export PYTHONUNBUFFERED=true
+ export DEVSTACK_GATE_TEMPEST=1
+ export DEVSTACK_GATE_IRONIC=1
+ export DEVSTACK_GATE_NEUTRON=1
+ export DEVSTACK_GATE_VIRT_DRIVER=ironic
+ export TEMPEST_CONCURRENCY=2
+ export BRANCH_OVERRIDE=default
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+ export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1
+ export DEVSTACK_GATE_TEMPEST_REGEX='ironic'
+ export PROJECTS="openstack/ironic $PROJECTS"
+ export PROJECTS="openstack/ironic-python-agent $PROJECTS"
+
+ # No post_test_hook is needed while tests live in tempest
+ 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/ironic-dsvm-standalone/post.yaml b/playbooks/legacy/ironic-dsvm-standalone/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/ironic-dsvm-standalone/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/ironic-dsvm-standalone/run.yaml b/playbooks/legacy/ironic-dsvm-standalone/run.yaml
new file mode 100644
index 000000000..bb5dc4599
--- /dev/null
+++ b/playbooks/legacy/ironic-dsvm-standalone/run.yaml
@@ -0,0 +1,98 @@
+- hosts: all
+ name: Autoconverted job legacy-ironic-dsvm-standalone from old job gate-ironic-dsvm-standalone-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-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=4
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_TEMPEST_REGEX="ironic_standalone"
+
+ 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 PYTHONUNBUFFERED=true
+ export DEVSTACK_GATE_TEMPEST=1
+ export DEVSTACK_GATE_IRONIC=1
+ export DEVSTACK_GATE_NEUTRON=1
+ export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
+ export DEVSTACK_GATE_VIRT_DRIVER=ironic
+ export DEVSTACK_GATE_IRONIC_DRIVER=agent_ipmitool
+ export OVERRIDE_ENABLED_SERVICES="g-api,g-reg,q-agt,q-dhcp,q-l3,q-svc,key,mysql,rabbit,ir-api,ir-cond,s-account,s-container,s-object,s-proxy,tempest"
+
+ export BRANCH_OVERRIDE=default
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+
+ export DEVSTACK_LOCAL_CONFIG="enable_plugin ironic git://git.openstack.org/openstack/ironic"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=6"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER=agent_ipmitool"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_ENABLE_TEMPURLS=True"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_TEMPURL_KEY=secretkey"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,agent_ipmitool,pxe_ipmitool"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_MOD_WSGI=True"
+
+ # 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
+
+ # 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-bfv/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-bfv/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-bfv/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml
new file mode 100644
index 000000000..33d323d31
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-bfv/run.yaml
@@ -0,0 +1,169 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-bfv from old job gate-tempest-dsvm-ironic-bfv-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="baremetal_boot_from_volume"
+
+ 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: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_STORAGE_INTERFACES=cinder,noop"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_STORAGE_INTERFACE=cinder"
+ # We have to enable cinder this way, as normally when
+ # DEVSTACK_GATE_IRONIC=1 it disables all the cinder services.
+ export ENABLED_SERVICES=cinder,c-sch,c-api,c-vol
+
+ 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 "" ] ; 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=3"
+
+ # 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-inspector/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-inspector/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-inspector/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-inspector/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-inspector/run.yaml
new file mode 100644
index 000000000..ad31ebe38
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-inspector/run.yaml
@@ -0,0 +1,195 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-inspector from old job gate-tempest-dsvm-ironic-inspector-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 "" ] ; 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-pxe_ipmitool-tinyipa-python3/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/run.yaml
new file mode 100644
index 000000000..3d17b1472
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3/run.yaml
@@ -0,0 +1,182 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3
+ from old job gate-tempest-dsvm-ironic-ipa-partition-pxe_ipmitool-tinyipa-python3-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="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: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_USE_PYTHON3=True
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat << 'EOF' >>"/tmp/dg-local.conf"
+ [[local|localrc]]
+ disable_service s-account
+ disable_service s-container
+ disable_service s-object
+ disable_service s-proxy
+
+ EOF
+ executable: /bin/bash
+ 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 "" ] ; 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-redfish-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/run.yaml
new file mode 100644
index 000000000..a1f35af2a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-redfish-tinyipa/run.yaml
@@ -0,0 +1,157 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-redfish-tinyipa
+ from old job gate-tempest-dsvm-ironic-ipa-partition-redfish-tinyipa-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=redfish
+ 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 [ "redfish" == "pxe_snmp" ] ; then
+ # explicitly enable pxe_snmp driver
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
+ fi
+
+ if [ "redfish" == "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 "" ] ; 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-uefi-pxe_ipmitool-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/run.yaml
new file mode 100644
index 000000000..60c158273
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa/run.yaml
@@ -0,0 +1,157 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa
+ from old job gate-tempest-dsvm-ironic-ipa-partition-uefi-pxe_ipmitool-tinyipa-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 "" ] ; 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 [ "uefi" == "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-resourceclasses-partition-pxe_ipmitool-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/run.yaml
new file mode 100644
index 000000000..64e97000a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa/run.yaml
@@ -0,0 +1,166 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa
+ from old job gate-tempest-dsvm-ironic-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa-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_USE_RESOURCE_CLASSES=True"
+
+ EOF
+ 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 "" ] ; 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=2"
+
+ # 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-agent_ipmitool-tinyipa-multinode/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml
new file mode 100644
index 000000000..4def3ef8c
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml
@@ -0,0 +1,183 @@
+- hosts: primary
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode
+ from old job gate-tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode-ubuntu-xenial-nv
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ 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_TOPOLOGY="multinode"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400
+ # networking-generic-switch requires sudo to execute ovs-vsctl commands
+ export DEVSTACK_GATE_REMOVE_STACK_SUDO=0
+ export PROJECTS="openstack/networking-generic-switch $PROJECTS"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_USE_PROVIDERNET_FOR_PUBLIC=False"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron"
+
+ 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=4
+
+ 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 "" ] ; 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=7"
+
+ # 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/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/run.yaml
new file mode 100644
index 000000000..242459b5b
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa/run.yaml
@@ -0,0 +1,157 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa
+ from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-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="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 "" ] ; 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_snmp-tinyipa/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/run.yaml
new file mode 100644
index 000000000..5f6b04d96
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa/run.yaml
@@ -0,0 +1,157 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa
+ from old job gate-tempest-dsvm-ironic-ipa-wholedisk-bios-pxe_snmp-tinyipa-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="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_snmp
+ 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_snmp" == "pxe_snmp" ] ; then
+ # explicitly enable pxe_snmp driver
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_DRIVERS=fake,pxe_snmp"
+ fi
+
+ if [ "pxe_snmp" == "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 "" ] ; 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-pxe_ipa-full/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/run.yaml
new file mode 100644
index 000000000..ba8a9faee
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipa-full/run.yaml
@@ -0,0 +1,156 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-pxe_ipa-full from old job gate-tempest-dsvm-ironic-pxe_ipa-full-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_FULL=1
+
+ 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 "" ] ; 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=7"
+
+ # 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-pxe_ipmitool-postgres/post.yaml b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/post.yaml
new file mode 100644
index 000000000..e07f5510a
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/post.yaml
@@ -0,0 +1,15 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff --git a/playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/run.yaml
new file mode 100644
index 000000000..c590f3922
--- /dev/null
+++ b/playbooks/legacy/tempest-dsvm-ironic-pxe_ipmitool-postgres/run.yaml
@@ -0,0 +1,175 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-ironic-pxe_ipmitool-postgres from old
+ job gate-tempest-dsvm-ironic-pxe_ipmitool-postgres-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="ironic"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_POSTGRES=1
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=False"
+
+ 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 "" ] ; 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/project.yaml b/zuul.d/project.yaml
new file mode 100644
index 000000000..310c2e362
--- /dev/null
+++ b/zuul.d/project.yaml
@@ -0,0 +1,37 @@
+- project:
+ name: openstack/ironic
+ check:
+ jobs:
+ - ironic-tempest-dsvm-pxe_ipmitool-postgres:
+ voting: false
+ - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa
+ - ironic-tempest-dsvm-ipa-wholedisk-bios-pxe_snmp-tinyipa:
+ voting: false
+ - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa
+ - ironic-tempest-dsvm-ipa-partition-pxe_ipmitool-tinyipa-python3:
+ voting: false
+ - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode
+ - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa
+ - ironic-tempest-dsvm-bfv
+ - ironic-dsvm-standalone
+ - ironic-tempest-dsvm-ironic-inspector:
+ voting: false
+ - ironic-grenade-dsvm
+ - ironic-grenade-dsvm-multinode-multitenant
+ gate:
+ queue: ironic
+ jobs:
+ - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa
+ - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa
+ - ironic-tempest-dsvm-bfv
+ - ironic-dsvm-standalone
+ - ironic-grenade-dsvm
+ - ironic-grenade-dsvm-multinode-multitenant
+ - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode
+ experimental:
+ jobs:
+ - ironic-dsvm-functional
+ - ironic-tempest-dsvm-pxe_ipa-full:
+ voting: false
+ - ironic-tempest-dsvm-ipa-resourceclasses-partition-pxe_ipmitool-tinyipa:
+ voting: false