]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
snapshot: new APIs for inspecting snapshot object
authorEric Blake <eblake@redhat.com>
Thu, 8 Sep 2011 11:19:25 +0000 (12:19 +0100)
committerEric Blake <eblake@redhat.com>
Thu, 8 Sep 2011 12:15:13 +0000 (13:15 +0100)
These functions access internals of the opaque object, and do
not need any rpc counterpart.  It could be argued that we should
have provided these when snapshot objects were first introduced,
since all the other vir*Ptr objects have at least a GetName accessor.

* include/libvirt/libvirt.h.in (virDomainSnapshotGetName)
(virDomainSnapshotGetDomain, virDomainSnapshotGetConnect): Declare.
* src/libvirt.c (virDomainSnapshotGetName)
(virDomainSnapshotGetDomain, virDomainSnapshotGetConnect): New
functions.
* src/libvirt_public.syms: Export them.

include/libvirt/libvirt.h.in
src/libvirt.c
src/libvirt_public.syms

index 5fa489ea46a7a364a5c6126b3a02ed613ac9ca29..ea7b3fc44800b50232d9e5fe57e335375dfab767 100644 (file)
@@ -2656,6 +2656,10 @@ typedef struct _virDomainSnapshot virDomainSnapshot;
  */
 typedef virDomainSnapshot *virDomainSnapshotPtr;
 
+const char *virDomainSnapshotGetName(virDomainSnapshotPtr snapshot);
+virDomainPtr virDomainSnapshotGetDomain(virDomainSnapshotPtr snapshot);
+virConnectPtr virDomainSnapshotGetConnect(virDomainSnapshotPtr snapshot);
+
 typedef enum {
     VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE    = (1 << 0), /* Restore or alter
                                                           metadata */
index dc082a60ae52099a61d55e5d3c1479a57c856a94..c32c7a6eeffc3af8f440f5ad856b02bc2a9c977d 100644 (file)
@@ -15664,6 +15664,79 @@ error:
     return -1;
 }
 
+/**
+ * virDomainSnapshotGetName:
+ * @snapshot: a snapshot object
+ *
+ * Get the public name for that snapshot
+ *
+ * Returns a pointer to the name or NULL, the string need not be deallocated
+ * as its lifetime will be the same as the snapshot object.
+ */
+const char *
+virDomainSnapshotGetName(virDomainSnapshotPtr snapshot)
+{
+    VIR_DEBUG("snapshot=%p", snapshot);
+
+    virResetLastError();
+
+    if (!VIR_IS_DOMAIN_SNAPSHOT(snapshot)) {
+        virLibDomainSnapshotError(VIR_ERR_INVALID_DOMAIN_SNAPSHOT,
+                                  __FUNCTION__);
+        virDispatchError(NULL);
+        return NULL;
+    }
+    return snapshot->name;
+}
+
+/**
+ * virDomainSnapshotGetDomain:
+ * @snapshot: a snapshot object
+ *
+ * Get the domain that a snapshot was created for
+ *
+ * Returns the domain or NULL.
+ */
+virDomainPtr
+virDomainSnapshotGetDomain(virDomainSnapshotPtr snapshot)
+{
+    VIR_DEBUG("snapshot=%p", snapshot);
+
+    virResetLastError();
+
+    if (!VIR_IS_DOMAIN_SNAPSHOT(snapshot)) {
+        virLibDomainSnapshotError(VIR_ERR_INVALID_DOMAIN_SNAPSHOT,
+                                  __FUNCTION__);
+        virDispatchError(NULL);
+        return NULL;
+    }
+    return snapshot->domain;
+}
+
+/**
+ * virDomainSnapshotGetConnect:
+ * @snapshot: a snapshot object
+ *
+ * Get the connection that owns the domain that a snapshot was created for
+ *
+ * Returns the connection or NULL.
+ */
+virConnectPtr
+virDomainSnapshotGetConnect(virDomainSnapshotPtr snapshot)
+{
+    VIR_DEBUG("snapshot=%p", snapshot);
+
+    virResetLastError();
+
+    if (!VIR_IS_DOMAIN_SNAPSHOT(snapshot)) {
+        virLibDomainSnapshotError(VIR_ERR_INVALID_DOMAIN_SNAPSHOT,
+                                  __FUNCTION__);
+        virDispatchError(NULL);
+        return NULL;
+    }
+    return snapshot->domain->conn;
+}
+
 /**
  * virDomainSnapshotCreateXML:
  * @domain: a domain object
index dc5a80b6102e4ebd15d9798b747e0eeb9d5fb50e..8a6d55a34b1802eaa1fccb1e8d1ec7b877381d3b 100644 (file)
@@ -482,8 +482,11 @@ LIBVIRT_0.9.4 {
 
 LIBVIRT_0.9.5 {
     global:
-        virDomainMigrateGetMaxSpeed;
         virDomainBlockStatsFlags;
+        virDomainMigrateGetMaxSpeed;
+        virDomainSnapshotGetConnect;
+        virDomainSnapshotGetDomain;
+        virDomainSnapshotGetName;
 } LIBVIRT_0.9.4;
 
 # .... define new API here using predicted next version number ....