cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-10382) [ConfigDrive] cloud-get-vm-data-configdrive.in is incorrect
Date Thu, 07 Jun 2018 05:49:00 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-10382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16504273#comment-16504273
] 

ASF GitHub Bot commented on CLOUDSTACK-10382:
---------------------------------------------

rhtyd closed pull request #2688: CLOUDSTACK-10382: Fix cloud-get-vm-data-configdrive.in
URL: https://github.com/apache/cloudstack/pull/2688
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/setup/bindir/cloud-get-vm-data-configdrive.in b/setup/bindir/cloud-get-vm-data-configdrive.in
index 946ec3b1cdf..c6b70be321b 100644
--- a/setup/bindir/cloud-get-vm-data-configdrive.in
+++ b/setup/bindir/cloud-get-vm-data-configdrive.in
@@ -21,23 +21,28 @@ mountdir=$(mktemp -d)
 filepath=$mountdir/cloudstack
 
 user_data=$filepath/userdata/user_data.txt
-availability_zone=$filepath/metadata/availability_zone.txt
-cloud_identifier=$filepath/metadata/cloud_identifier.txt
-instance_id=$filepath/metadata/instance_id.txt
-local_hostname=$filepath/metadata/local_hostname.txt
-service_offering=$filepath/metadata/service_offering.txt
-vm_id=$filepath/metadata/vm_id.txt
-public_key=$filepath/metadata/public_keys.txt
 vm_password=$filepath/password/vm_password.txt
 
+declare -A metadata=(
+["availability-zone"]=$filepath/metadata/availability-zone.txt
+["cloud-identifier"]=$filepath/metadata/cloud-identifier.txt
+["instance-id"]=$filepath/metadata/instance-id.txt
+["local-hostname"]=$filepath/metadata/local-hostname.txt
+["local-ipv4"]=$filepath/metadata/local-ipv4.txt
+["public-ipv4"]=$filepath/metadata/public-ipv4.txt
+["service-offering"]=$filepath/metadata/service-offering.txt
+["vm-id"]=$filepath/metadata/vm-id.txt
+["public-key"]=$filepath/metadata/public-keys.txt
+)
 # If lable name is other than config, please change the below line as required
 DefaultDisk=/dev/disk/by-label/config-2
 
 function usage
 {
+    keys=${!metadata[@]}
     echo -e "USAGE: cloud-get-vm-data -options"
     echo -e "  where options include:"
-    echo -e "\\t-m | --metadata [availability-zone | cloud-identifier | instance-id | local-hostname
| service-offering | vm-id | public-key] \\n\\t\\tprint vm metadata"
+    echo -e "\\t-m | --metadata [${keys// / | }] \\n\\t\\tprint vm metadata"
     echo -e "\\t-p | --password \\n\\t\\tprint vm password"
     echo -e "\\t-u | --userdata \\n\\t\\tprint vm userdata"
 }
@@ -52,7 +57,7 @@ function prepare_mount
     if [ -e $DefaultDisk ]; then
         Disk=$DefaultDisk
     else
-        BLOCK_DEVICE=$(blkid -t LABEL='config' /dev/hd? /dev/sd? /dev/xvd? -o device)
+        BLOCK_DEVICE=$(blkid -t LABEL='config-2' /dev/sr? /dev/hd? /dev/sd? /dev/xvd? -o
device)
         if [ -n $BLOCK_DEVICE ]; then
             Disk=$BLOCK_DEVICE
         else
@@ -81,34 +86,21 @@ case $1 in
                         ;;
     -m | --metadata )   shift
                         if [ "$1" != "" ]; then
-                            case $1 in
-                                availability-zone ) echo -n "availability zone: ";  filename=$availability_zone
-                                                    ;;
-                                cloud-identifier )  echo -n "cloud identifier: ";   filename=$cloud_identifier
-                                                    ;;
-                                instance-id )       echo -n "instance-id: ";        filename=$instance_id
-                                                    ;;
-                                local-hostname )    echo -n "local-hostname: ";     filename=$local_hostname
-                                                    ;;
-                                service-offering )  echo -n "service-offering: ";   filename=$service_offering
-                                                    ;;
-                                vm-id )             echo -n  "vm-id: ";             filename=$vm_id
-                                                    ;;
-                                public-key )       echo -n  "public-key: ";         filename=$public_key
-                                                    ;;
-                                * )                 usage
-                                                    remove_mount
-                                                    exit 1
-                            esac
+                            if [ -n "${metadata[$1]}" ]; then
+                                echo -n "$1: "
+                                filename=${metadata[$1]}
+                            else
+                                usage
+                                remove_mount
+                                exit 1
+                            fi
                         else
                             echo -e "METADATA\\n"
-                            [ -f $availability_zone ] && echo -e "availability zone:\t"
"$(cat $availability_zone)"
-                            [ -f $cloud_identifier ]  && echo -e "cloud identifier:\t"
 "$(cat $cloud_identifier)"
-                            [ -f $instance_id ]       && echo -e "instance-id:\t\t"
    "$(cat $instance_id)"
-                            [ -f $local_hostname ]    && echo -e "local-hostname:\t\t"
 "$(cat $local_hostname)"
-                            [ -f $service_offering ]  && echo -e "service-offering:\t"
 "$(cat $service_offering)"
-                            [ -f $vm_id ]             && echo -e "vm-id:\t\t\t" 
       "$(cat $vm_id)"
-                            [ -f $public_key ]        && echo -e "public-key:\t\t"
     "$(cat $public_key)"
+                            for entry in "${!metadata[@]}"
+                            do
+                                file=${metadata[$entry]}
+                                [ -f $file ] && printf "%18s :\t%s\n" $entry "$(cat
$file)"
+                            done
                         fi
                         ;;
     -p | --password )   echo -n "PASSWORD: "


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> [ConfigDrive] cloud-get-vm-data-configdrive.in is incorrect
> -----------------------------------------------------------
>
>                 Key: CLOUDSTACK-10382
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10382
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>            Reporter: Frank Maximus
>            Assignee: Frank Maximus
>            Priority: Major
>
> * As config iso is built using RockRidge/Juliet, dashes aren't replaced anymore.
> Script is still referring to the files using underscores.
>  * BLOCK_DEVICE is still looked up using config i.s.o. config-2
>  *



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message