Merge pull request #1109 from remibergsma/fix-CLOUDSTACK-9077

CLOUDSTACK-9077 Fix injectkeys.sh to work on CentOS7Fix regression from commit 3381154fafb7fa4f0a61d538f7c2550e48247787

The error seen on CentOS 7:

```
2015-11-20 21:51:16,161 DEBUG [c.c.s.ConfigurationServerImpl] (localhost-startStop-1:null) No loop device found, skipping ssh key insertion in systemvm.iso
```

Instead of detecting `/dev/loop0` this checks if we run inside Docker.

Tested on CentOS 7 and that now works again as expected.

```
2015-11-23 16:20:16,777 DEBUG [c.c.s.ConfigurationServerImpl] (localhost-startStop-1:null) Executing: /bin/bash /var/lib/tomcat/webapps/client/WEB-INF/classes/scripts/vm/systemvm/injectkeys.sh /home/cloud/.ssh/id_rsa.pub /home/cl
oud/.ssh/id_rsa /var/lib/tomcat/webapps/client/WEB-INF/classes/vms/systemvm.iso
2015-11-23 16:20:16,821 DEBUG [c.c.s.ConfigurationServerImpl] (localhost-startStop-1:null) Execution is successful.
2015-11-23 16:20:16,827 INFO  [c.c.s.ConfigurationServerImpl] (localhost-startStop-1:null) Injected public and private keys into systemvm iso with result : null
```

Pinging @pdion891 to have a look.

* pr/1109:
  CLOUDSTACK-9077 Fix injectkeys.sh to work on CentOS7

Signed-off-by: Remi Bergsma <github@remi.nl>
This commit is contained in:
Remi Bergsma 2015-11-27 20:05:11 +01:00
commit 92913a154c

View File

@ -85,14 +85,19 @@ systemvmpath=$3
command -v mkisofs > /dev/null || (echo "$(basename $0): mkisofs not found, please install or ensure PATH is accurate" ; exit 4) command -v mkisofs > /dev/null || (echo "$(basename $0): mkisofs not found, please install or ensure PATH is accurate" ; exit 4)
# if running into Docker as unprivileges, skip ssh verification as iso cannot be mounted. # if running into Docker as unprivileges, skip ssh verification as iso cannot be mounted due to missing loop device.
if [ -f /.dockerinit ]; then
if [ -e /dev/loop0 ]; then if [ -e /dev/loop0 ]; then
# it's a docker instance with privileges.
inject_into_iso systemvm.iso $newpubkey inject_into_iso systemvm.iso $newpubkey
[ $? -ne 0 ] && exit 5 [ $? -ne 0 ] && exit 5
copy_priv_key $newprivkey copy_priv_key $newprivkey
else else
# this mean it's a docker instance, ssh key cannot be verify. # this mean it's a docker instance, ssh key cannot be verify.
echo "No loop device found, skipping ssh key insertion in systemvm.iso" echo "We run inside Docker, skipping ssh key insertion in systemvm.iso"
fi
else
inject_into_iso systemvm.iso $newpubkey
[ $? -ne 0 ] && exit 5
copy_priv_key $newprivkey
fi fi
exit $?