From 10d72ddb22873c8956bdef5567f1265bf4559c3a Mon Sep 17 00:00:00 2001 From: Ramakrishnan G Date: Wed, 13 Aug 2014 21:51:04 +0530 Subject: [PATCH] Add vmedia boot support for deploy-ironic element deploy-ironic element currently retrieves token over tftp and expects BOOT_IP_ADDRESS to be set. This commit adds support for retrieving token file from virtual media if node booted from virtual media. Also corrects the issue for BOOT_IP_ADDRESS not set for virtual media boot. Change-Id: I3d5f1779b9b17842360860c7778baa01db1e1a52 Closes-Bug: #1356339 --- elements/deploy-ironic/init.d/80-deploy-ironic | 16 ++++++++++++---- elements/ramdisk/extra-data.d/scripts/init | 9 ++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/elements/deploy-ironic/init.d/80-deploy-ironic b/elements/deploy-ironic/init.d/80-deploy-ironic index db7fbbf08..f0ba49bc7 100644 --- a/elements/deploy-ironic/init.d/80-deploy-ironic +++ b/elements/deploy-ironic/init.d/80-deploy-ironic @@ -26,11 +26,19 @@ if [ $? -ne 0 ]; then troubleshoot fi -TOKEN_FILE=token-$DEPLOYMENT_ID +if [ "$BOOT_METHOD" = "$VMEDIA_BOOT_TAG" ]; then + TOKEN_FILE="$VMEDIA_DIR/token" + if [ -f "$TOKEN_FILE" ]; then + TOKEN_HEADER="-H 'X-Auth-Token: $(cat $TOKEN_FILE)'" + else TOKEN_HEADER="" + fi +else + TOKEN_FILE=token-$DEPLOYMENT_ID -if tftp -r $TOKEN_FILE -g $BOOT_SERVER -then TOKEN_HEADER="-H 'X-Auth-Token: `cat $TOKEN_FILE`'" -else TOKEN_HEADER="" + if tftp -r $TOKEN_FILE -g $BOOT_SERVER + then TOKEN_HEADER="-H 'X-Auth-Token: $(cat $TOKEN_FILE)'" + else TOKEN_HEADER="" + fi fi DATA="'{\"address\":\"$BOOT_IP_ADDRESS\",\"key\":\"$DEPLOYMENT_KEY\",\"iqn\":\"$ISCSI_TARGET_IQN\",\"error\":\"$FIRST_ERR_MSG\"}'" diff --git a/elements/ramdisk/extra-data.d/scripts/init b/elements/ramdisk/extra-data.d/scripts/init index 51d62b855..e35f0137a 100755 --- a/elements/ramdisk/extra-data.d/scripts/init +++ b/elements/ramdisk/extra-data.d/scripts/init @@ -105,10 +105,13 @@ readonly _BOOTIF_=$(get_kernel_parameter BOOTIF) readonly _IP_=$(get_kernel_parameter ip) readonly BOOT_MAC_ADDRESS=$(echo "$_BOOTIF_" | sed -e "s/-/:/g" | \ sed -e "s/^01://g" | tr 'a-f' 'A-F') -readonly BOOT_IP_ADDRESS=$(echo "$_IP_" | cut -d':' -f1) readonly BOOT_SERVER=$(echo "$_IP_" | cut -d':' -f2) -readonly BOOT_NETMASK=$(echo "$_IP_" | cut -d':' -f4) -readonly BOOT_GATEWAY=$(echo "$_IP_" | cut -d':' -f3) + +# IP address, netmask, gateway can be set a later point of time if +# IP address is assigned by dhcp (for non-pxe boots). +BOOT_IP_ADDRESS=$(echo "$_IP_" | cut -d':' -f1) +BOOT_NETMASK=$(echo "$_IP_" | cut -d':' -f4) +BOOT_GATEWAY=$(echo "$_IP_" | cut -d':' -f3) readonly DISK=$(get_kernel_parameter disk)