summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuby Loo <ruby.loo@intel.com>2017-10-31 15:25:57 -0400
committerVladyslav Drok <vdrok@mirantis.com>2017-11-07 17:29:04 +0000
commit9e4d0dee78729c621e693619b7e6d1a245032ad3 (patch)
tree187d0cb276c61451dabeaea2aa75bb4591781c27
parentbfafe2279196f2bf14ec27cde59e2877775498aa (diff)
downloadpython-ironicclient-9e4d0dee78729c621e693619b7e6d1a245032ad3.tar.gz
Move legacy ironicclient jobs in-tree
This moves the legacy python-ironicclient CI jobs into the python-ironicclient tree, instead of storing them in openstack-infra/openstack-zuul-jobs. This also changes the ironicclient-tempest-dsvm-src job to inherit from legacy-ironic-dsvm-base instead of legacy-dsvm-base, since the required projects are the same. This will give us control as we migrate the legacy jobs to the new ansible roles. Change-Id: If0c072e357fbeccc3dee8cc06b96e1bfa42299a7 (cherry picked from commit 9232ebd6d9dda0f6ddec71fe3353abf9a08f31d0)
-rw-r--r--playbooks/legacy/ironicclient-dsvm-functional/post.yaml15
-rw-r--r--playbooks/legacy/ironicclient-dsvm-functional/run.yaml68
-rw-r--r--playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml15
-rw-r--r--playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml166
-rw-r--r--zuul.d/legacy-ironicclient-jobs.yaml17
-rw-r--r--zuul.d/project.yaml30
6 files changed, 311 insertions, 0 deletions
diff --git a/playbooks/legacy/ironicclient-dsvm-functional/post.yaml b/playbooks/legacy/ironicclient-dsvm-functional/post.yaml
new file mode 100644
index 0000000..e07f551
--- /dev/null
+++ b/playbooks/legacy/ironicclient-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/ironicclient-dsvm-functional/run.yaml b/playbooks/legacy/ironicclient-dsvm-functional/run.yaml
new file mode 100644
index 0000000..2fcd628
--- /dev/null
+++ b/playbooks/legacy/ironicclient-dsvm-functional/run.yaml
@@ -0,0 +1,68 @@
+- hosts: all
+ name: Autoconverted job legacy-ironicclient-dsvm-functional from old job gate-ironicclient-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
+ IRONIC_DEPLOY_DRIVER=fake
+ # neutron is not enabled here
+ IRONIC_ENABLED_NETWORK_INTERFACES=noop
+ IRONIC_DHCP_PROVIDER=none
+
+ 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=0
+ export DEVSTACK_PROJECT_FROM_GIT=python-ironicclient
+ export OVERRIDE_ENABLED_SERVICES=key,mysql,rabbit,ir-api,ir-cond
+ export BRANCH_OVERRIDE=default
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+ export PROJECTS="openstack/ironic $PROJECTS"
+
+ function post_test_hook {
+ # Configure and run functional tests
+ $BASE/new/python-ironicclient/ironicclient/tests/functional/hooks/post_test_hook.sh
+ }
+
+ export -f post_test_hook
+
+ cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml b/playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml
new file mode 100644
index 0000000..e07f551
--- /dev/null
+++ b/playbooks/legacy/ironicclient-tempest-dsvm-src/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/ironicclient-tempest-dsvm-src/run.yaml b/playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml
new file mode 100644
index 0000000..84a66b8
--- /dev/null
+++ b/playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml
@@ -0,0 +1,166 @@
+- hosts: all
+ name: Autoconverted job legacy-tempest-dsvm-python-ironicclient-src from old job
+ gate-tempest-dsvm-python-ironicclient-src-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True"
+ # Standardize VM size for each supported ramdisk
+ case "tinyipa" in
+ 'tinyipa')
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
+ ;;
+ 'tinyipa256')
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=256"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
+ ;;
+ 'coreos')
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1280"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=coreos"
+ ;;
+ # if using a ramdisk without a known good value, use the devstack
+ # default by not exporting any value for IRONIC_VM_SPECS_RAM
+ esac
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_GATE_TEMPEST_REGEX="ironic"
+
+ EOF
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ cat << 'EOF' >> ironic-extra-vars
+ export DEVSTACK_PROJECT_FROM_GIT="python-ironicclient,$DEVSTACK_PROJECT_FROM_GIT"
+
+ 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/legacy-ironicclient-jobs.yaml b/zuul.d/legacy-ironicclient-jobs.yaml
new file mode 100644
index 0000000..0d9cc2f
--- /dev/null
+++ b/zuul.d/legacy-ironicclient-jobs.yaml
@@ -0,0 +1,17 @@
+- job:
+ name: ironicclient-dsvm-functional
+ parent: legacy-dsvm-base
+ run: playbooks/legacy/ironicclient-dsvm-functional/run.yaml
+ post-run: playbooks/legacy/ironicclient-dsvm-functional/post.yaml
+ timeout: 4800
+ required-projects:
+ - openstack-infra/devstack-gate
+ - openstack/ironic
+ - openstack/python-ironicclient
+
+- job:
+ name: ironicclient-tempest-dsvm-src
+ parent: legacy-ironic-dsvm-base
+ run: playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml
+ post-run: playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml
+ timeout: 10800
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
new file mode 100644
index 0000000..3ad01da
--- /dev/null
+++ b/zuul.d/project.yaml
@@ -0,0 +1,30 @@
+- project:
+ name: openstack/python-ironicclient
+ check:
+ jobs:
+ - ironicclient-tempest-dsvm-src:
+ irrelevant-files:
+ - ^(test-|)requirements.txt$
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^releasenotes/.*$
+ - ^setup.cfg$
+ - ironicclient-dsvm-functional:
+ irrelevant-files:
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^releasenotes/.*$
+ gate:
+ jobs:
+ - ironicclient-tempest-dsvm-src:
+ irrelevant-files:
+ - ^(test-|)requirements.txt$
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^releasenotes/.*$
+ - ^setup.cfg$
+ - ironicclient-dsvm-functional:
+ irrelevant-files:
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^releasenotes/.*$