Browse code

Merge "Add agent_ipmitool support"

Jenkins authored on 2014/11/20 08:32:07
Showing 1 changed files
... ...
@@ -93,7 +93,7 @@ IRONIC_AGENT_KERNEL_URL=${IRONIC_AGENT_KERNEL_URL:-http://tarballs.openstack.org
93 93
 IRONIC_AGENT_RAMDISK_URL=${IRONIC_AGENT_RAMDISK_URL:-http://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz}
94 94
 
95 95
 # Which deploy driver to use - valid choices right now
96
-# are 'pxe_ssh', 'pxe_ipmitool' and 'agent_ssh'.
96
+# are 'pxe_ssh', 'pxe_ipmitool', 'agent_ssh' and 'agent_ipmitool'.
97 97
 IRONIC_DEPLOY_DRIVER=${IRONIC_DEPLOY_DRIVER:-pxe_ssh}
98 98
 
99 99
 #TODO(agordeev): replace 'ubuntu' with host distro name getting
... ...
@@ -152,6 +152,11 @@ function is_ironic_hardware {
152 152
     return 1
153 153
 }
154 154
 
155
+function is_deployed_by_agent {
156
+    [[ -z "${IRONIC_DEPLOY_DRIVER%%agent*}" ]] && return 0
157
+    return 1
158
+}
159
+
155 160
 # install_ironic() - Collect source and prepare
156 161
 function install_ironic {
157 162
     # make sure all needed service were enabled
... ...
@@ -307,7 +312,7 @@ function configure_ironic_conductor {
307 307
     if [[ "$IRONIC_VM_LOG_CONSOLE" == "True" ]] ; then
308 308
         iniset $IRONIC_CONF_FILE pxe pxe_append_params "nofb nomodeset vga=normal console=ttyS0"
309 309
     fi
310
-    if [[ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]] ; then
310
+    if is_deployed_by_agent; then
311 311
         if [[ "$SWIFT_ENABLE_TEMPURLS" == "True" ]] ; then
312 312
             iniset $IRONIC_CONF_FILE glance swift_temp_url_key $SWIFT_TEMPURL_KEY
313 313
         else
... ...
@@ -510,7 +515,7 @@ function enroll_nodes {
510 510
     if [[ "$IRONIC_DEPLOY_DRIVER" == "pxe_ssh" ]] ; then
511 511
         local _IRONIC_DEPLOY_KERNEL_KEY=pxe_deploy_kernel
512 512
         local _IRONIC_DEPLOY_RAMDISK_KEY=pxe_deploy_ramdisk
513
-    elif [[ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]] ; then
513
+    elif is_deployed_by_agent; then
514 514
         local _IRONIC_DEPLOY_KERNEL_KEY=deploy_kernel
515 515
         local _IRONIC_DEPLOY_RAMDISK_KEY=deploy_ramdisk
516 516
     fi
... ...
@@ -552,6 +557,10 @@ function enroll_nodes {
552 552
             # we create the bare metal flavor with minimum value
553 553
             local node_options="-i ipmi_address=$ipmi_address -i ipmi_password=$ironic_ipmi_passwd\
554 554
                 -i ipmi_username=$ironic_ipmi_username"
555
+            if is_deployed_by_agent; then
556
+                node_options+=" -i $_IRONIC_DEPLOY_KERNEL_KEY=$IRONIC_DEPLOY_KERNEL_ID"
557
+                node_options+=" -i $_IRONIC_DEPLOY_RAMDISK_KEY=$IRONIC_DEPLOY_RAMDISK_ID"
558
+            fi
555 559
         fi
556 560
 
557 561
         local node_id=$(ironic node-create --chassis_uuid $chassis_id \
... ...
@@ -589,7 +598,7 @@ function configure_iptables {
589 589
     # nodes boot from TFTP and callback to the API server listening on $HOST_IP
590 590
     sudo iptables -I INPUT -d $HOST_IP -p udp --dport 69 -j ACCEPT || true
591 591
     sudo iptables -I INPUT -d $HOST_IP -p tcp --dport $IRONIC_SERVICE_PORT -j ACCEPT || true
592
-    if [ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]; then
592
+    if is_deployed_by_agent; then
593 593
         # agent ramdisk gets instance image from swift
594 594
         sudo iptables -I INPUT -d $HOST_IP -p tcp --dport ${SWIFT_DEFAULT_BIND_PORT:-8080} -j ACCEPT || true
595 595
     fi
... ...
@@ -665,8 +674,8 @@ function upload_baremetal_ironic_deploy {
665 665
     fi
666 666
 
667 667
     if [ -z "$IRONIC_DEPLOY_KERNEL" -o -z "$IRONIC_DEPLOY_RAMDISK" ]; then
668
-        local IRONIC_DEPLOY_KERNEL_PATH=$TOP_DIR/files/ir-deploy.kernel
669
-        local IRONIC_DEPLOY_RAMDISK_PATH=$TOP_DIR/files/ir-deploy.initramfs
668
+        local IRONIC_DEPLOY_KERNEL_PATH=$TOP_DIR/files/ir-deploy-$IRONIC_DEPLOY_DRIVER.kernel
669
+        local IRONIC_DEPLOY_RAMDISK_PATH=$TOP_DIR/files/ir-deploy-$IRONIC_DEPLOY_DRIVER.initramfs
670 670
     else
671 671
         local IRONIC_DEPLOY_KERNEL_PATH=$IRONIC_DEPLOY_KERNEL
672 672
         local IRONIC_DEPLOY_RAMDISK_PATH=$IRONIC_DEPLOY_RAMDISK
... ...
@@ -677,17 +686,17 @@ function upload_baremetal_ironic_deploy {
677 677
         if [ "$IRONIC_BUILD_DEPLOY_RAMDISK" = "True" ]; then
678 678
             # we can build them only if we're not offline
679 679
             if [ "$OFFLINE" != "True" ]; then
680
-                if [ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]; then
680
+                if is_deployed_by_agent; then
681 681
                     build_ipa_coreos_ramdisk $IRONIC_DEPLOY_KERNEL_PATH $IRONIC_DEPLOY_RAMDISK_PATH
682 682
                 else
683 683
                     ramdisk-image-create $IRONIC_DEPLOY_FLAVOR \
684
-                        -o $TOP_DIR/files/ir-deploy
684
+                        -o $TOP_DIR/files/ir-deploy-$IRONIC_DEPLOY_DRIVER
685 685
                 fi
686 686
             else
687 687
                 die $LINENO "Deploy kernel+ramdisk files don't exist and cannot be build in OFFLINE mode"
688 688
             fi
689 689
         else
690
-            if [ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]; then
690
+            if is_deployed_by_agent; then
691 691
                 # download the agent image tarball
692 692
                 wget "$IRONIC_AGENT_KERNEL_URL" -O $IRONIC_DEPLOY_KERNEL_PATH
693 693
                 wget "$IRONIC_AGENT_RAMDISK_URL" -O $IRONIC_DEPLOY_RAMDISK_PATH
... ...
@@ -751,7 +760,7 @@ function cleanup_baremetal_basic_ops {
751 751
     restart_service xinetd
752 752
     sudo iptables -D INPUT -d $HOST_IP -p udp --dport 69 -j ACCEPT || true
753 753
     sudo iptables -D INPUT -d $HOST_IP -p tcp --dport $IRONIC_SERVICE_PORT -j ACCEPT || true
754
-    if [ "$IRONIC_DEPLOY_DRIVER" == "agent_ssh" ]; then
754
+    if is_deployed_by_agent; then
755 755
         # agent ramdisk gets instance image from swift
756 756
         sudo iptables -D INPUT -d $HOST_IP -p tcp --dport ${SWIFT_DEFAULT_BIND_PORT:-8080} -j ACCEPT || true
757 757
     fi