Browse code

Allow devstack to build ironic agent ramdisk

This provides a way to test Ironic-python-agent code that is
not yet merged.

Change-Id: I85084c383263173a33250592a95a17f46827b347

Jim Rollenhagen authored on 2014/08/15 10:08:11
Showing 4 changed files
... ...
@@ -1,3 +1,4 @@
1
+docker.io
1 2
 ipmitool
2 3
 iptables
3 4
 ipxe
... ...
@@ -1,3 +1,4 @@
1
+docker-io
1 2
 ipmitool
2 3
 iptables
3 4
 ipxe-bootimgs
... ...
@@ -29,6 +29,7 @@ set +o pipefail
29 29
 
30 30
 # Set up default directories
31 31
 IRONIC_DIR=$DEST/ironic
32
+IRONIC_PYTHON_AGENT_DIR=$DEST/ironic-python-agent
32 33
 IRONIC_DATA_DIR=$DATA_DIR/ironic
33 34
 IRONIC_STATE_PATH=/var/lib/ironic
34 35
 IRONICCLIENT_DIR=$DEST/python-ironicclient
... ...
@@ -558,6 +559,19 @@ function configure_ironic_auxiliary {
558 558
     ironic_ssh_check $IRONIC_SSH_KEY_DIR/$IRONIC_SSH_KEY_FILENAME $IRONIC_VM_SSH_ADDRESS $IRONIC_VM_SSH_PORT $IRONIC_SSH_USERNAME 10
559 559
 }
560 560
 
561
+function build_ipa_coreos_ramdisk {
562
+    echo "Building ironic-python-agent deploy ramdisk"
563
+    local kernel_path=$1
564
+    local ramdisk_path=$2
565
+    git_clone $IRONIC_PYTHON_AGENT_REPO $IRONIC_PYTHON_AGENT_DIR $IRONIC_PYTHON_AGENT_BRANCH
566
+    cd $IRONIC_PYTHON_AGENT_DIR
567
+    imagebuild/coreos/build_coreos_image.sh
568
+    cp imagebuild/coreos/UPLOAD/coreos_production_pxe_image-oem.cpio.gz $ramdisk_path
569
+    cp imagebuild/coreos/UPLOAD/coreos_production_pxe.vmlinuz $kernel_path
570
+    sudo rm -rf UPLOAD
571
+    cd -
572
+}
573
+
561 574
 # build deploy kernel+ramdisk, then upload them to glance
562 575
 # this function sets ``IRONIC_DEPLOY_KERNEL_ID``, ``IRONIC_DEPLOY_RAMDISK_ID``
563 576
 function upload_baremetal_ironic_deploy {
... ...
@@ -582,8 +596,8 @@ function upload_baremetal_ironic_deploy {
582 582
         if [ "$IRONIC_BUILD_DEPLOY_RAMDISK" = "True" ]; then
583 583
             # we can build them only if we're not offline
584 584
             if [ "$OFFLINE" != "True" ]; then
585
-                if [ "$IRONIC_DEPLOY_RAMDISK" == "agent_ssh" ]; then
586
-                    die $LINENO "Ironic-python-agent build is not yet supported"
585
+                if [ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]; then
586
+                    build_ipa_coreos_ramdisk $IRONIC_DEPLOY_KERNEL_PATH $IRONIC_DEPLOY_RAMDISK_PATH
587 587
                 else
588 588
                     ramdisk-image-create $IRONIC_DEPLOY_FLAVOR \
589 589
                         -o $TOP_DIR/files/ir-deploy
... ...
@@ -172,9 +172,11 @@ HORIZON_BRANCH=${HORIZON_BRANCH:-master}
172 172
 HORIZONAUTH_REPO=${HORIZONAUTH_REPO:-${GIT_BASE}/openstack/django_openstack_auth.git}
173 173
 HORIZONAUTH_BRANCH=${HORIZONAUTH_BRANCH:-master}
174 174
 
175
-# baremetal provisionint service
175
+# baremetal provisioning service
176 176
 IRONIC_REPO=${IRONIC_REPO:-${GIT_BASE}/openstack/ironic.git}
177 177
 IRONIC_BRANCH=${IRONIC_BRANCH:-master}
178
+IRONIC_PYTHON_AGENT_REPO=${IRONIC_PYTHON_AGENT_REPO:-${GIT_BASE}/openstack/ironic-python-agent.git}
179
+IRONIC_PYTHON_AGENT_BRANCH=${IRONIC_PYTHON_AGENT_BRANCH:-master}
178 180
 
179 181
 # ironic client
180 182
 IRONICCLIENT_REPO=${IRONICCLIENT_REPO:-${GIT_BASE}/openstack/python-ironicclient.git}