pl_boot uses tlsv1 instead of sslv3 to retrieve bootmanager code
[bootcd.git] / initscripts / pl_boot
index 237c2b1..20f4491 100755 (executable)
@@ -1,5 +1,13 @@
 #!/bin/bash
 
+### make sure this output shows up in the console
+
+exec 2>&1
+exec > /dev/console
+
+###
+. /etc/init.d/pl_functions
+
 . /tmp/planet.cnf
 
 # Run gpg once to create default options
@@ -20,11 +28,11 @@ ATTEMPTS_BEFORE_BACKUP=3
 BOOT_DIR=/usr/boot/
 
 # get the server we are going to be contacting
-BOOT_SERVER=`cat $BOOT_DIR/boot_server`
-BOOT_SERVER_PORT=`cat $BOOT_DIR/boot_server_port`
+BOOT_SERVER=$(cat $BOOT_DIR/boot_server)
+BOOT_SERVER_PORT=$(cat $BOOT_DIR/boot_server_port)
 
 # the file to request from the boot server
-BOOT_SERVER_PATH=`cat $BOOT_DIR/boot_server_path`
+BOOT_SERVER_PATH=$(cat $BOOT_DIR/boot_server_path)
 
 # location of the cacert for this boot server
 BOOT_SERVER_CACERT=$BOOT_DIR/cacert.pem
@@ -33,11 +41,11 @@ BOOT_SERVER_CACERT=$BOOT_DIR/cacert.pem
 BOOT_SERVER_GPG_KEYRING=$BOOT_DIR/pubring.gpg
 
 # get the backup server we are going to be contacting
-BACKUP_BOOT_SERVER=`cat $BOOT_DIR/backup/boot_server`
-BACKUP_BOOT_SERVER_PORT=`cat $BOOT_DIR/backup/boot_server_port`
+BACKUP_BOOT_SERVER=$(cat $BOOT_DIR/backup/boot_server)
+BACKUP_BOOT_SERVER_PORT=$(cat $BOOT_DIR/backup/boot_server_port)
 
 # the file to request from the backup boot server
-BACKUP_BOOT_SERVER_PATH=`cat $BOOT_DIR/backup/boot_server_path`
+BACKUP_BOOT_SERVER_PATH=$(cat $BOOT_DIR/backup/boot_server_path)
 
 # location of the cacert for the backup boot server
 BACKUP_BOOT_SERVER_CACERT=$BOOT_DIR/backup/cacert.pem
@@ -105,14 +113,12 @@ while : ; do
 
     if [[ $contact_count != 0 ]]; then
 
-        if [[ $on_backup_server == 1 ]]; then
-            echo $(date "+%H:%M:%S") " pl_boot: attempting to fetch script from backup server in 30s"
-        else
-            echo $(date "+%H:%M:%S") " pl_boot: attempting to fetch script from primary server in 30s"
-        fi
+        echo $(date "+%H:%M:%S") " pl_boot: next attempt in 30s, to fetch script from server at $CONNECT_BOOT_SERVER"
        /bin/sleep 30
     fi
 
+    # June 2015 : using --tlsv1 instead of sslv3 that should be available
+    # on all myplc from f14 inclusive
     # assemble the curl transaction
     CURL_CMD="/usr/bin/curl \
         --connect-timeout 60 \
@@ -124,7 +130,7 @@ while : ; do
         --form nonce=</tmp/nonce \
         --location \
         --output $UNVERIFIED_SCRIPT \
-        --sslv3  \
+        --tlsv1  \
         --silent \
         --show-error \
         --fail \
@@ -168,14 +174,9 @@ while : ; do
                     echo $(date "+%H:%M:%S") " we recommend checking your DNS settings.  If you cannot, then "
                     echo $(date "+%H:%M:%S") " please double check your network settings registered at PLC and "
                     echo $(date "+%H:%M:%S") " stored on this Boot Image."
-                    for file in $(ls /etc/sysconfig/network-scripts/ifcfg-eth* /etc/resolv.conf) ; do 
-                        echo $(date "+%H:%M:%S") contents of $file :
-                        cat $file
-                        echo $(date "+%H:%M:%S") end of $file :
-                    done
                 ;;
                 60)
-                    echo $(date "+%H:%M:%S") " This error likely indicates that the hardware clock is not set "
+                    echo $(date "+%H:%M:%S") " This error likely indicates that the hardware clock is likely not set "
                     echo $(date "+%H:%M:%S") " to GMT.  The result is that authentication between the local and "
                     echo $(date "+%H:%M:%S") " remote site fails.  Please double check this machine's system "
                     echo $(date "+%H:%M:%S") " clock, and set it to GMT in the BIOS. If after rebooting the same "
@@ -188,6 +189,9 @@ while : ; do
                     echo $(date "+%H:%M:%S") " with as much detail as possible."
                 ;;
             esac
+           # in any case display as much info as we can (see pl_functions)
+           pl_network_sanity_checks
+           # retry
             continue
         fi
     elif [ -n "$DISCONNECTED_OPERATION" ]; then