Browse code

Do not regenerate ironic ssh key if one exists

Gets rid of redundant globals and avoids regenerating an ssh key
for ironic if one exists. Also allows key file to be user-specified,
letting ironic use pregenerated keys.

Change-Id: Iaa6f8918bf14dae2116269a0be5039fc5afaecfa

Adam Gandelman authored on 2014/12/03 09:20:50
Showing 1 changed files
... ...
@@ -60,7 +60,7 @@ IRONIC_ENABLED_DRIVERS=${IRONIC_ENABLED_DRIVERS:-fake,pxe_ssh,pxe_ipmitool}
60 60
 IRONIC_SSH_USERNAME=${IRONIC_SSH_USERNAME:-`whoami`}
61 61
 IRONIC_SSH_KEY_DIR=${IRONIC_SSH_KEY_DIR:-$IRONIC_DATA_DIR/ssh_keys}
62 62
 IRONIC_SSH_KEY_FILENAME=${IRONIC_SSH_KEY_FILENAME:-ironic_key}
63
-IRONIC_KEY_FILE=$IRONIC_SSH_KEY_DIR/$IRONIC_SSH_KEY_FILENAME
63
+IRONIC_KEY_FILE=${IRONIC_KEY_FILE:-$IRONIC_SSH_KEY_DIR/$IRONIC_SSH_KEY_FILENAME}
64 64
 IRONIC_SSH_VIRT_TYPE=${IRONIC_SSH_VIRT_TYPE:-virsh}
65 65
 IRONIC_TFTPBOOT_DIR=${IRONIC_TFTPBOOT_DIR:-$IRONIC_DATA_DIR/tftpboot}
66 66
 IRONIC_TFTPSERVER_IP=${IRONIC_TFTPSERVER_IP:-$HOST_IP}
... ...
@@ -632,15 +632,16 @@ function configure_tftpd {
632 632
 }
633 633
 
634 634
 function configure_ironic_ssh_keypair {
635
-    # Generating ssh key pair for stack user
636
-    if [[ ! -d $IRONIC_SSH_KEY_DIR ]]; then
637
-        mkdir -p $IRONIC_SSH_KEY_DIR
638
-    fi
639 635
     if [[ ! -d $HOME/.ssh ]]; then
640 636
         mkdir -p $HOME/.ssh
641 637
         chmod 700 $HOME/.ssh
642 638
     fi
643
-    echo -e 'n\n' | ssh-keygen -q -t rsa -P '' -f $IRONIC_KEY_FILE
639
+    if [[ ! -e $IRONIC_KEY_FILE ]]; then
640
+        if [[ ! -d $(dirname $IRONIC_KEY_FILE) ]]; then
641
+            mkdir -p $(dirname $IRONIC_KEY_FILE)
642
+        fi
643
+        echo -e 'n\n' | ssh-keygen -q -t rsa -P '' -f $IRONIC_KEY_FILE
644
+    fi
644 645
     cat $IRONIC_KEY_FILE.pub | tee -a $IRONIC_AUTHORIZED_KEYS_FILE
645 646
 }
646 647
 
... ...
@@ -657,7 +658,7 @@ function ironic_ssh_check {
657 657
 
658 658
 function configure_ironic_auxiliary {
659 659
     configure_ironic_ssh_keypair
660
-    ironic_ssh_check $IRONIC_SSH_KEY_DIR/$IRONIC_SSH_KEY_FILENAME $IRONIC_VM_SSH_ADDRESS $IRONIC_VM_SSH_PORT $IRONIC_SSH_USERNAME 10
660
+    ironic_ssh_check $IRONIC_KEY_FILE $IRONIC_VM_SSH_ADDRESS $IRONIC_VM_SSH_PORT $IRONIC_SSH_USERNAME 10
661 661
 }
662 662
 
663 663
 function build_ipa_coreos_ramdisk {