[libvirt] [PATCH 4/5] dominfo: make example more useful

Daniel P. Berrangé berrange at redhat.com
Tue Apr 2 10:02:10 UTC 2019


The example currently assumes that a NULL URI will open Xen and thus
also assumes that a domain with ID 0 exists. Change it to require the
URI and a domain name as command line arguments.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 examples/dominfo/info1.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/examples/dominfo/info1.c b/examples/dominfo/info1.c
index 09f20358f1..f0ea9b9f08 100644
--- a/examples/dominfo/info1.c
+++ b/examples/dominfo/info1.c
@@ -13,40 +13,39 @@
 
 /**
  * getDomainInfo:
- * @id: the id of the domain
+ * @name: the name of the domain
  *
  * extract the domain 0 information
  */
 static void
-getDomainInfo(int id)
+getDomainInfo(const char *uri, const char *name)
 {
     virConnectPtr conn = NULL; /* the hypervisor connection */
     virDomainPtr dom = NULL;   /* the domain being checked */
     virDomainInfo info;        /* the information being fetched */
     int ret;
 
-    /* NULL means connect to local Xen hypervisor */
-    conn = virConnectOpenReadOnly(NULL);
+    conn = virConnectOpenReadOnly(uri);
     if (conn == NULL) {
         fprintf(stderr, "Failed to connect to hypervisor\n");
         goto error;
     }
 
-    /* Find the domain of the given id */
-    dom = virDomainLookupByID(conn, id);
+    /* Find the domain of the given name */
+    dom = virDomainLookupByName(conn, name);
     if (dom == NULL) {
-        fprintf(stderr, "Failed to find Domain %d\n", id);
+        fprintf(stderr, "Failed to find Domain %s\n", name);
         goto error;
     }
 
     /* Get the information */
     ret = virDomainGetInfo(dom, &info);
     if (ret < 0) {
-        fprintf(stderr, "Failed to get information for Domain %d\n", id);
+        fprintf(stderr, "Failed to get information for Domain %s\n", name);
         goto error;
     }
 
-    printf("Domains %d: %d CPUs\n", id, info.nrVirtCpu);
+    printf("Domain %s: %d CPUs\n", name, info.nrVirtCpu);
 
  error:
     if (dom != NULL)
@@ -55,9 +54,13 @@ getDomainInfo(int id)
         virConnectClose(conn);
 }
 
-int main()
+int main(int argc, char **argv)
 {
-    getDomainInfo(0);
+    if (argc != 3) {
+        fprintf(stderr, "syntax: %s: URI NAME\n", argv[0]);
+        return 1;
+    }
+    getDomainInfo(argv[1], argv[2]);
 
     return 0;
 }
-- 
2.20.1




More information about the libvir-list mailing list