@@ -21,23 +21,28 @@ mountdir=$(mktemp -d)
2121filepath=$mountdir /cloudstack
2222
2323user_data=$filepath /userdata/user_data.txt
24- availability_zone=$filepath /metadata/availability_zone.txt
25- cloud_identifier=$filepath /metadata/cloud_identifier.txt
26- instance_id=$filepath /metadata/instance_id.txt
27- local_hostname=$filepath /metadata/local_hostname.txt
28- service_offering=$filepath /metadata/service_offering.txt
29- vm_id=$filepath /metadata/vm_id.txt
30- public_key=$filepath /metadata/public_keys.txt
3124vm_password=$filepath /password/vm_password.txt
3225
26+ declare -A metadata=(
27+ [" availability-zone" ]=$filepath /metadata/availability-zone.txt
28+ [" cloud-identifier" ]=$filepath /metadata/cloud-identifier.txt
29+ [" instance-id" ]=$filepath /metadata/instance-id.txt
30+ [" local-hostname" ]=$filepath /metadata/local-hostname.txt
31+ [" local-ipv4" ]=$filepath /metadata/local-ipv4.txt
32+ [" public-ipv4" ]=$filepath /metadata/public-ipv4.txt
33+ [" service-offering" ]=$filepath /metadata/service-offering.txt
34+ [" vm-id" ]=$filepath /metadata/vm-id.txt
35+ [" public-key" ]=$filepath /metadata/public-keys.txt
36+ )
3337# If lable name is other than config, please change the below line as required
3438DefaultDisk=/dev/disk/by-label/config-2
3539
3640function usage
3741{
42+ keys=${! metadata[@]}
3843 echo -e " USAGE: cloud-get-vm-data -options"
3944 echo -e " where options include:"
40- echo -e " \\ t-m | --metadata [availability-zone | cloud-identifier | instance-id | local-hostname | service-offering | vm-id | public-key ] \\ n\\ t\\ tprint vm metadata"
45+ echo -e " \\ t-m | --metadata [${keys // / | } ] \\ n\\ t\\ tprint vm metadata"
4146 echo -e " \\ t-p | --password \\ n\\ t\\ tprint vm password"
4247 echo -e " \\ t-u | --userdata \\ n\\ t\\ tprint vm userdata"
4348}
@@ -52,7 +57,7 @@ function prepare_mount
5257 if [ -e $DefaultDisk ]; then
5358 Disk=$DefaultDisk
5459 else
55- BLOCK_DEVICE=$( blkid -t LABEL=' config' /dev/hd? /dev/sd? /dev/xvd? -o device)
60+ BLOCK_DEVICE=$( blkid -t LABEL=' config-2 ' /dev/sr ? /dev/hd? /dev/sd? /dev/xvd? -o device)
5661 if [ -n $BLOCK_DEVICE ]; then
5762 Disk=$BLOCK_DEVICE
5863 else
@@ -81,34 +86,21 @@ case $1 in
8186 ;;
8287 -m | --metadata ) shift
8388 if [ " $1 " != " " ]; then
84- case $1 in
85- availability-zone ) echo -n " availability zone: " ; filename=$availability_zone
86- ;;
87- cloud-identifier ) echo -n " cloud identifier: " ; filename=$cloud_identifier
88- ;;
89- instance-id ) echo -n " instance-id: " ; filename=$instance_id
90- ;;
91- local-hostname ) echo -n " local-hostname: " ; filename=$local_hostname
92- ;;
93- service-offering ) echo -n " service-offering: " ; filename=$service_offering
94- ;;
95- vm-id ) echo -n " vm-id: " ; filename=$vm_id
96- ;;
97- public-key ) echo -n " public-key: " ; filename=$public_key
98- ;;
99- * ) usage
100- remove_mount
101- exit 1
102- esac
89+ if [ -n " ${metadata[$1]} " ]; then
90+ echo -n " $1 : "
91+ filename=${metadata[$1]}
92+ else
93+ usage
94+ remove_mount
95+ exit 1
96+ fi
10397 else
10498 echo -e " METADATA\\ n"
105- [ -f $availability_zone ] && echo -e " availability zone:\t" " $( cat $availability_zone ) "
106- [ -f $cloud_identifier ] && echo -e " cloud identifier:\t" " $( cat $cloud_identifier ) "
107- [ -f $instance_id ] && echo -e " instance-id:\t\t" " $( cat $instance_id ) "
108- [ -f $local_hostname ] && echo -e " local-hostname:\t\t" " $( cat $local_hostname ) "
109- [ -f $service_offering ] && echo -e " service-offering:\t" " $( cat $service_offering ) "
110- [ -f $vm_id ] && echo -e " vm-id:\t\t\t" " $( cat $vm_id ) "
111- [ -f $public_key ] && echo -e " public-key:\t\t" " $( cat $public_key ) "
99+ for entry in " ${! metadata[@]} "
100+ do
101+ file=${metadata[$entry]}
102+ [ -f $file ] && printf " %18s :\t%s\n" $entry " $( cat $file ) "
103+ done
112104 fi
113105 ;;
114106 -p | --password ) echo -n " PASSWORD: "
0 commit comments