summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-05-06 12:21:01 -0400
committerRichard W.M. Jones <rjones@redhat.com>2011-05-06 13:04:18 -0400
commitbe3b028d7f2fadd8d2107a419393511e4510d0a4 (patch)
treef5fa9c4f8bd1c38a337416174bc4aae421dc3ab7 /src
parenta4c28b4ed1c5a102c8de2a7425568eb504d05c34 (diff)
downloadlibguestfs-be3b028d7f2fadd8d2107a419393511e4510d0a4.tar.gz
libguestfs-be3b028d7f2fadd8d2107a419393511e4510d0a4.tar.xz
libguestfs-be3b028d7f2fadd8d2107a419393511e4510d0a4.zip
add-domain: Add allowuuid flag to allow UUIDs to be used for names.
This makes a backwards-compatible change to the add-domain API. If the optional allowuuid flag is true then UUIDs can be used instead of names in the domain name parameter.
Diffstat (limited to 'src')
-rw-r--r--src/virt.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/virt.c b/src/virt.c
index cd488886..58cb999d 100644
--- a/src/virt.c
+++ b/src/virt.c
@@ -82,6 +82,7 @@ guestfs__add_domain (guestfs_h *g, const char *domain_name,
const char *libvirturi;
int readonly;
int live;
+ int allowuuid;
const char *iface;
struct guestfs___add_libvirt_dom_argv optargs2 = { .bitmask = 0 };
@@ -93,6 +94,8 @@ guestfs__add_domain (guestfs_h *g, const char *domain_name,
? optargs->iface : NULL;
live = optargs->bitmask & GUESTFS_ADD_DOMAIN_LIVE_BITMASK
? optargs->live : 0;
+ allowuuid = optargs->bitmask & GUESTFS_ADD_DOMAIN_ALLOWUUID_BITMASK
+ ? optargs->allowuuid : 0;
if (live && readonly) {
error (g, _("you cannot set both live and readonly flags"));
@@ -114,7 +117,14 @@ guestfs__add_domain (guestfs_h *g, const char *domain_name,
*/
virConnSetErrorFunc (conn, NULL, ignore_errors);
- dom = virDomainLookupByName (conn, domain_name);
+ /* Try UUID first. */
+ if (allowuuid)
+ dom = virDomainLookupByUUIDString (conn, domain_name);
+
+ /* Try ordinary domain name. */
+ if (!dom)
+ dom = virDomainLookupByName (conn, domain_name);
+
if (!dom) {
err = virGetLastError ();
error (g, _("no libvirt domain called '%s': %s"),