[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] xl, libxl: xl list -v shows the uuid too



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1271090577 -3600
# Node ID cd05b6aa8c0a15512da49b5338477dea42eed04f
# Parent  e226618aa7156ddf500960a2e8be44220466a981
xl, libxl: xl list -v shows the uuid too

Break uuid to string conversion (including logging) out into a new
function libxl_uuid2string for reuse, and expose it for the
convenience of callers.

Provide a new -v option to xl list which shows the domain's uuid.

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 tools/libxl/libxl.c     |    7 ++-----
 tools/libxl/libxl.h     |    3 +++
 tools/libxl/libxl_dom.c |    6 ++++++
 tools/libxl/xl.c        |   22 +++++++++++++++-------
 4 files changed, 26 insertions(+), 12 deletions(-)

diff -r e226618aa715 -r cd05b6aa8c0a tools/libxl/libxl.c
--- a/tools/libxl/libxl.c       Mon Apr 12 17:42:29 2010 +0100
+++ b/tools/libxl/libxl.c       Mon Apr 12 17:42:57 2010 +0100
@@ -93,11 +93,8 @@ int libxl_domain_make(struct libxl_ctx *
     xs_transaction_t t;
     xen_domain_handle_t handle;
 
-    uuid_string = string_of_uuid(ctx, info->uuid);
-    if (!uuid_string) {
-        XL_LOG(ctx, XL_LOG_ERROR, "cannot allocate uuid string");
-        return ERROR_FAIL;
-    }
+    uuid_string = libxl_uuid2string(ctx, info->uuid);
+    if (!uuid_string) return ERROR_NOMEM;
 
     flags = info->hvm ? XEN_DOMCTL_CDF_hvm_guest : 0;
     flags |= info->hap ? XEN_DOMCTL_CDF_hap : 0;
diff -r e226618aa715 -r cd05b6aa8c0a tools/libxl/libxl.h
--- a/tools/libxl/libxl.h       Mon Apr 12 17:42:29 2010 +0100
+++ b/tools/libxl/libxl.h       Mon Apr 12 17:42:57 2010 +0100
@@ -264,6 +264,9 @@ int libxl_domain_shutdown(struct libxl_c
 int libxl_domain_shutdown(struct libxl_ctx *ctx, uint32_t domid, int req);
 int libxl_domain_destroy(struct libxl_ctx *ctx, uint32_t domid, int force);
 
+char *libxl_uuid2string(struct libxl_ctx *ctx, uint8_t uuid[16]);
+  /* 0 means ERROR_ENOMEM, which we have logged */
+
 /* events handling */
 
 typedef enum {
diff -r e226618aa715 -r cd05b6aa8c0a tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c   Mon Apr 12 17:42:29 2010 +0100
+++ b/tools/libxl/libxl_dom.c   Mon Apr 12 17:42:57 2010 +0100
@@ -350,3 +350,9 @@ int save_device_model(struct libxl_ctx *
     unlink(filename);
     return 0;
 }
+
+char *libxl_uuid2string(struct libxl_ctx *ctx, uint8_t uuid[16]) {
+    char *s = string_of_uuid(ctx, uuid);
+    if (!s) XL_LOG(ctx, XL_LOG_ERROR, "cannot allocate for uuid");
+    return s;
+}
diff -r e226618aa715 -r cd05b6aa8c0a tools/libxl/xl.c
--- a/tools/libxl/xl.c  Mon Apr 12 17:42:29 2010 +0100
+++ b/tools/libxl/xl.c  Mon Apr 12 17:42:57 2010 +0100
@@ -891,7 +891,7 @@ static void help(char *command)
         printf("-d                     Enable debug messages.\n");
         printf("-e                     Do not wait in the background for the 
death of the domain.\n");
     } else if(!strcmp(command, "list")) {
-        printf("Usage: xl list [Domain]\n\n");
+        printf("Usage: xl list [-v] [Domain]\n\n");
         printf("List information about all/some domains.\n\n");
     } else if(!strcmp(command, "pci-attach")) {
         printf("Usage: xl pci-attach <Domain> <BDF> [Virtual Slot]\n\n");
@@ -1368,7 +1368,7 @@ void destroy_domain(char *p)
     libxl_domain_destroy(&ctx, domid, 0);
 }
 
-void list_domains(void)
+void list_domains(int verbose)
 {
     struct libxl_ctx ctx;
     struct libxl_dominfo *info;
@@ -1388,7 +1388,7 @@ void list_domains(void)
     }
     printf("Name                                        ID   Mem 
VCPUs\tState\tTime(s)\n");
     for (i = 0; i < nb_domain; i++) {
-        printf("%-40s %5d %5lu %5d        %c%c%c %8.1f\n",
+        printf("%-40s %5d %5lu %5d        %c%c%c %8.1f",
                 libxl_domid_to_name(&ctx, info[i].domid),
                 info[i].domid,
                 (unsigned long) (info[i].max_memkb / 1024),
@@ -1397,6 +1397,11 @@ void list_domains(void)
                 info[i].paused ? 'p' : '-',
                 info[i].dying ? 'd' : '-',
                 ((float)info[i].cpu_time / 1e9));
+        if (verbose) {
+            char *uuid = libxl_uuid2string(&ctx, info[i].uuid);
+            printf(" %s", uuid);
+        }
+        putchar('\n');
     }
     free(info);
 }
@@ -1614,20 +1619,23 @@ int main_destroy(int argc, char **argv)
 
 int main_list(int argc, char **argv)
 {
-    int opt;
-
-    while ((opt = getopt(argc, argv, "h")) != -1) {
+    int opt, verbose = 0;
+
+    while ((opt = getopt(argc, argv, "hv")) != -1) {
         switch (opt) {
         case 'h':
             help("list");
             exit(0);
+        case 'v':
+            verbose = 1;
+            break;
         default:
             fprintf(stderr, "option not supported\n");
             break;
         }
     }
 
-    list_domains();
+    list_domains(verbose);
     exit(0);
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.