[Ovirt-devel] [PATCH] Changed the source for UUID to be dmidecode for now.

Darryl L. Pierce dpierce at redhat.com
Thu Jun 26 11:35:05 UTC 2008


Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
---
 ovirt-host-creator/common-pkgs.ks            |    1 +
 ovirt-host-creator/common-post.ks            |   14 +++++++++++++-
 ovirt-managed-node/src/ovirt-identify-node.c |    7 ++++---
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/ovirt-host-creator/common-pkgs.ks b/ovirt-host-creator/common-pkgs.ks
index 6fe4f26..3ad8fa0 100644
--- a/ovirt-host-creator/common-pkgs.ks
+++ b/ovirt-host-creator/common-pkgs.ks
@@ -26,6 +26,7 @@ augeas
 nc
 bind-utils
 syslinux
+dmidecode
 ovirt-managed-node
 -policycoreutils
 -audit-libs-python
diff --git a/ovirt-host-creator/common-post.ks b/ovirt-host-creator/common-post.ks
index a7dc987..232485f 100644
--- a/ovirt-host-creator/common-post.ks
+++ b/ovirt-host-creator/common-post.ks
@@ -237,7 +237,19 @@ start() {
     echo -n $"Starting ovirt-post: "
 
     find_srv identify tcp
-    ovirt-identify-node -s $SRV_HOST -p $SRV_PORT
+
+    # TODO: In future, when libvirt supports getting the UUID,
+    # we will remove this check and let ovirt-identify-node
+    # grab the UUID internally
+    VENDOR=`dmidecode | awk ' /Vendor/{ print $2; } '`
+    UUID=`dmidecode | awk ' /UUID/{ print $2; } '`
+
+    if [ $VENDOR != "QEMU" ]; then
+        ovirt-identify-node -s $SRV_HOST -p $SRV_PORT -u $UUID
+    else
+        ovirt-identify-node -s $SRV_HOST -p $SRV_PORT
+    fi
+
 
     success
     echo
diff --git a/ovirt-managed-node/src/ovirt-identify-node.c b/ovirt-managed-node/src/ovirt-identify-node.c
index 41dfec3..b882b55 100644
--- a/ovirt-managed-node/src/ovirt-identify-node.c
+++ b/ovirt-managed-node/src/ovirt-identify-node.c
@@ -53,7 +53,7 @@ char uuid[VIR_UUID_BUFLEN];
 char memsize[BUFFER_LENGTH];
 char numcpus[BUFFER_LENGTH];
 char cpuspeed[BUFFER_LENGTH];
-char hostname[256];
+char* hostname;
 int  hostport = -1;
 int  socketfd;
 
@@ -124,14 +124,15 @@ int config(int argc,char** argv)
     int result = 0;
     int option;
 
-    while((option = getopt(argc,argv,"s:p:dvth")) != -1)
+    while((option = getopt(argc,argv,"s:p:u:dvth")) != -1)
     {
         if(debug) fprintf(stdout,"Processing argument: %c (optarg:%s)\n",option,optarg);
 
         switch(option)
         {
-            case 's': strcpy(hostname,optarg); break;
+            case 's': hostname = optarg;       break;
             case 'p': hostport = atoi(optarg); break;
+            case 'u': strcpy(uuid,optarg);     break;
             case 't': testing  = 1; break;
             case 'd': debug    = 1; break;
             case 'v': verbose  = 1; break;
-- 
1.5.5.1




More information about the ovirt-devel mailing list