Skip to content

Commit 35d20d1

Browse files
bvbharatSheng Yang
authored andcommitted
CLOUDSTACK-4138: keep the existing changes in cloud-set-guest-sshkey.in to make sure we do not break the backward compatibility
Signed-off-by: Sheng Yang <sheng.yang@citrix.com>
1 parent 9807f86 commit 35d20d1

1 file changed

Lines changed: 40 additions & 9 deletions

File tree

setup/bindir/cloud-set-guest-sshkey.in

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,48 @@
2626
# Modify this line to specify the user (default is root)
2727
user=root
2828

29-
SSHKEY_SERVER_IP=$(nslookup data-server | grep Server | awk '{print $2}')
30-
logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP"
29+
# Add your DHCP lease folders here
30+
DHCP_FOLDERS="/var/lib/dhclient/* /var/lib/dhcp3/*"
31+
keys_received=0
32+
file_count=0
33+
34+
for DHCP_FILE in $DHCP_FOLDERS
35+
do
36+
if [ -f $DHCP_FILE ]
37+
then
38+
file_count=$((file_count+1))
39+
SSHKEY_SERVER_IP=$(grep dhcp-server-identifier $DHCP_FILE | tail -1 | awk '{print $NF}' | tr -d '\;')
40+
41+
if [ -n "$SSHKEY_SERVER_IP" ]
42+
then
43+
logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP"
44+
45+
publickey=$(wget -t 3 -T 20 -O - http://$SSHKEY_SERVER_IP/latest/public-keys 2>/dev/null)
46+
47+
if [ $? -eq 0 ]
48+
then
49+
logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP"
50+
keys_received=1
51+
break
52+
fi
53+
else
54+
logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE trying with the name data-server "
55+
fi
56+
fi
57+
done
3158

32-
publickey=$(wget -t 3 -T 20 -O - http://data-server/latest/public-keys 2>/dev/null)
33-
34-
if [ $? -eq 0 ]
59+
if [ "$keys_received" == "0" ]
3560
then
36-
logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP"
37-
keys_received=1
38-
else
39-
logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE"
61+
SSHKEY_SERVER_IP=$(nslookup data-server | grep Address |tr '\n' ' '| awk '{print $4}')
62+
logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP"
63+
publickey=$(wget -t 3 -T 20 -O - http://data-server/latest/public-keys 2>/dev/null)
64+
if [ $? -eq 0 ]
65+
then
66+
logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP"
67+
keys_received=1
68+
else
69+
logger -t "cloud" "Could not resolve the name data-server"
70+
fi
4071
fi
4172

4273
# did we find the keys anywhere?

0 commit comments

Comments
 (0)