Create a new libvirt-domain-snapshot.h file to hold the public
API definitions for the virDomainSnapshot type. This header
file is not self-contained, so applications will not directly
include it. They will contain to #include <libvirt/libvirt.h>
---
docs/apibuild.py | 1 +
include/libvirt/Makefile.am | 1 +
include/libvirt/libvirt-domain-snapshot.h | 212 ++++++++++++++++++++++++++++++
include/libvirt/libvirt.h.in | 184 +-------------------------
4 files changed, 218 insertions(+), 180 deletions(-)
create mode 100644 include/libvirt/libvirt-domain-snapshot.h
diff --git a/docs/apibuild.py b/docs/apibuild.py
index 9b5f6d6..55d09f0 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -22,6 +22,7 @@ debugsym=None
#
included_files = {
"libvirt.h": "header with general libvirt API definitions",
+ "libvirt-domain-snapshot.h": "header with general libvirt API
definitions",
"virterror.h": "header with error specific API definitions",
"libvirt.c": "Main interfaces for the libvirt library",
"libvirt-domain.c": "Domain interfaces for the libvirt library",
diff --git a/include/libvirt/Makefile.am b/include/libvirt/Makefile.am
index 5638890..ea935b0 100644
--- a/include/libvirt/Makefile.am
+++ b/include/libvirt/Makefile.am
@@ -19,6 +19,7 @@
virincdir = $(includedir)/libvirt
virinc_HEADERS = libvirt.h \
+ libvirt-domain-snapshot.h \
libvirt-lxc.h \
libvirt-qemu.h \
virterror.h
diff --git a/include/libvirt/libvirt-domain-snapshot.h
b/include/libvirt/libvirt-domain-snapshot.h
new file mode 100644
index 0000000..0f73f24
--- /dev/null
+++ b/include/libvirt/libvirt-domain-snapshot.h
@@ -0,0 +1,212 @@
+/*
+ * libvirt-domain-snapshot.h
+ * Summary: APIs for management of domain snapshots
+ * Description: Provides APIs for the management of domain snapshots
+ * Author: Daniel Veillard <veillard(a)redhat.com>
+ *
+ * Copyright (C) 2006-2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <
http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__
+# define __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__
+
+# ifndef __VIR_LIBVIRT_H_INCLUDES__
+# error "Don't include this file directly, only use libvirt/libvirt.h"
+# endif
+
+/**
+ * virDomainSnapshot:
+ *
+ * a virDomainSnapshot is a private structure representing a snapshot of
+ * a domain.
+ */
+typedef struct _virDomainSnapshot virDomainSnapshot;
+
+/**
+ * virDomainSnapshotPtr:
+ *
+ * a virDomainSnapshotPtr is pointer to a virDomainSnapshot private structure,
+ * and is the type used to reference a domain snapshot in the API.
+ */
+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 */
+ VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = (1 << 1), /* With redefine, make
+ snapshot current */
+ VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA = (1 << 2), /* Make snapshot without
+ remembering it */
+ VIR_DOMAIN_SNAPSHOT_CREATE_HALT = (1 << 3), /* Stop running guest
+ after snapshot */
+ VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY = (1 << 4), /* disk snapshot, not
+ system checkpoint */
+ VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = (1 << 5), /* reuse any existing
+ external files */
+ VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = (1 << 6), /* use guest agent to
+ quiesce all mounted
+ file systems within
+ the domain */
+ VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC = (1 << 7), /* atomically avoid
+ partial changes */
+ VIR_DOMAIN_SNAPSHOT_CREATE_LIVE = (1 << 8), /* create the snapshot
+ while the guest is
+ running */
+} virDomainSnapshotCreateFlags;
+
+/* Take a snapshot of the current VM state */
+virDomainSnapshotPtr virDomainSnapshotCreateXML(virDomainPtr domain,
+ const char *xmlDesc,
+ unsigned int flags);
+
+/* Dump the XML of a snapshot */
+char *virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+/**
+ * virDomainSnapshotListFlags:
+ *
+ * Flags valid for virDomainSnapshotNum(),
+ * virDomainSnapshotListNames(), virDomainSnapshotNumChildren(), and
+ * virDomainSnapshotListChildrenNames(), virDomainListAllSnapshots(),
+ * and virDomainSnapshotListAllChildren(). Note that the interpretation
+ * of flag (1<<0) depends on which function it is passed to; but serves
+ * to toggle the per-call default of whether the listing is shallow or
+ * recursive. Remaining bits come in groups; if all bits from a group are
+ * 0, then that group is not used to filter results. */
+typedef enum {
+ VIR_DOMAIN_SNAPSHOT_LIST_ROOTS = (1 << 0), /* Filter by snapshots
+ with no parents, when
+ listing a domain */
+ VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS = (1 << 0), /* List all descendants,
+ not just children, when
+ listing a snapshot */
+
+ /* For historical reasons, groups do not use contiguous bits. */
+
+ VIR_DOMAIN_SNAPSHOT_LIST_LEAVES = (1 << 2), /* Filter by snapshots
+ with no children */
+ VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES = (1 << 3), /* Filter by snapshots
+ that have children */
+
+ VIR_DOMAIN_SNAPSHOT_LIST_METADATA = (1 << 1), /* Filter by snapshots
+ which have metadata */
+ VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA = (1 << 4), /* Filter by snapshots
+ with no metadata */
+
+ VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE = (1 << 5), /* Filter by snapshots
+ taken while guest was
+ shut off */
+ VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE = (1 << 6), /* Filter by snapshots
+ taken while guest was
+ active, and with
+ memory state */
+ VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY = (1 << 7), /* Filter by snapshots
+ taken while guest was
+ active, but without
+ memory state */
+
+ VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL = (1 << 8), /* Filter by snapshots
+ stored internal to
+ disk images */
+ VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL = (1 << 9), /* Filter by snapshots
+ that use files external
+ to disk images */
+} virDomainSnapshotListFlags;
+
+/* Return the number of snapshots for this domain */
+int virDomainSnapshotNum(virDomainPtr domain, unsigned int flags);
+
+/* Get the names of all snapshots for this domain */
+int virDomainSnapshotListNames(virDomainPtr domain, char **names, int nameslen,
+ unsigned int flags);
+
+/* Get all snapshot objects for this domain */
+int virDomainListAllSnapshots(virDomainPtr domain,
+ virDomainSnapshotPtr **snaps,
+ unsigned int flags);
+
+/* Return the number of child snapshots for this snapshot */
+int virDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+/* Get the names of all child snapshots for this snapshot */
+int virDomainSnapshotListChildrenNames(virDomainSnapshotPtr snapshot,
+ char **names, int nameslen,
+ unsigned int flags);
+
+/* Get all snapshot object children for this snapshot */
+int virDomainSnapshotListAllChildren(virDomainSnapshotPtr snapshot,
+ virDomainSnapshotPtr **snaps,
+ unsigned int flags);
+
+/* Get a handle to a named snapshot */
+virDomainSnapshotPtr virDomainSnapshotLookupByName(virDomainPtr domain,
+ const char *name,
+ unsigned int flags);
+
+/* Check whether a domain has a snapshot which is currently used */
+int virDomainHasCurrentSnapshot(virDomainPtr domain, unsigned int flags);
+
+/* Get a handle to the current snapshot */
+virDomainSnapshotPtr virDomainSnapshotCurrent(virDomainPtr domain,
+ unsigned int flags);
+
+/* Get a handle to the parent snapshot, if one exists */
+virDomainSnapshotPtr virDomainSnapshotGetParent(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+/* Determine if a snapshot is the current snapshot of its domain. */
+int virDomainSnapshotIsCurrent(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+/* Determine if a snapshot has associated libvirt metadata that would
+ * prevent the deletion of its domain. */
+int virDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+typedef enum {
+ VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING = 1 << 0, /* Run after revert */
+ VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED = 1 << 1, /* Pause after revert */
+ VIR_DOMAIN_SNAPSHOT_REVERT_FORCE = 1 << 2, /* Allow risky reverts */
+} virDomainSnapshotRevertFlags;
+
+/* Revert the domain to a point-in-time snapshot. The
+ * state of the guest after this call will be the state
+ * of the guest when the snapshot in question was taken
+ */
+int virDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+/* Delete a snapshot */
+typedef enum {
+ VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN = (1 << 0), /* Also delete children
*/
+ VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata
*/
+ VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children
*/
+} virDomainSnapshotDeleteFlags;
+
+int virDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
+ unsigned int flags);
+
+int virDomainSnapshotRef(virDomainSnapshotPtr snapshot);
+int virDomainSnapshotFree(virDomainSnapshotPtr snapshot);
+
+#endif /* __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__ */
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index c910b31..77c7b1b 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -4590,186 +4590,6 @@ int virDomainAbortJob(virDomainPtr dom);
#define VIR_DOMAIN_JOB_COMPRESSION_OVERFLOW "compression_overflow"
-/**
- * virDomainSnapshot:
- *
- * a virDomainSnapshot is a private structure representing a snapshot of
- * a domain.
- */
-typedef struct _virDomainSnapshot virDomainSnapshot;
-
-/**
- * virDomainSnapshotPtr:
- *
- * a virDomainSnapshotPtr is pointer to a virDomainSnapshot private structure,
- * and is the type used to reference a domain snapshot in the API.
- */
-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 */
- VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = (1 << 1), /* With redefine, make
- snapshot current */
- VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA = (1 << 2), /* Make snapshot without
- remembering it */
- VIR_DOMAIN_SNAPSHOT_CREATE_HALT = (1 << 3), /* Stop running guest
- after snapshot */
- VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY = (1 << 4), /* disk snapshot, not
- system checkpoint */
- VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = (1 << 5), /* reuse any existing
- external files */
- VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = (1 << 6), /* use guest agent to
- quiesce all mounted
- file systems within
- the domain */
- VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC = (1 << 7), /* atomically avoid
- partial changes */
- VIR_DOMAIN_SNAPSHOT_CREATE_LIVE = (1 << 8), /* create the snapshot
- while the guest is
- running */
-} virDomainSnapshotCreateFlags;
-
-/* Take a snapshot of the current VM state */
-virDomainSnapshotPtr virDomainSnapshotCreateXML(virDomainPtr domain,
- const char *xmlDesc,
- unsigned int flags);
-
-/* Dump the XML of a snapshot */
-char *virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-/**
- * virDomainSnapshotListFlags:
- *
- * Flags valid for virDomainSnapshotNum(),
- * virDomainSnapshotListNames(), virDomainSnapshotNumChildren(), and
- * virDomainSnapshotListChildrenNames(), virDomainListAllSnapshots(),
- * and virDomainSnapshotListAllChildren(). Note that the interpretation
- * of flag (1<<0) depends on which function it is passed to; but serves
- * to toggle the per-call default of whether the listing is shallow or
- * recursive. Remaining bits come in groups; if all bits from a group are
- * 0, then that group is not used to filter results. */
-typedef enum {
- VIR_DOMAIN_SNAPSHOT_LIST_ROOTS = (1 << 0), /* Filter by snapshots
- with no parents, when
- listing a domain */
- VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS = (1 << 0), /* List all descendants,
- not just children, when
- listing a snapshot */
-
- /* For historical reasons, groups do not use contiguous bits. */
-
- VIR_DOMAIN_SNAPSHOT_LIST_LEAVES = (1 << 2), /* Filter by snapshots
- with no children */
- VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES = (1 << 3), /* Filter by snapshots
- that have children */
-
- VIR_DOMAIN_SNAPSHOT_LIST_METADATA = (1 << 1), /* Filter by snapshots
- which have metadata */
- VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA = (1 << 4), /* Filter by snapshots
- with no metadata */
-
- VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE = (1 << 5), /* Filter by snapshots
- taken while guest was
- shut off */
- VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE = (1 << 6), /* Filter by snapshots
- taken while guest was
- active, and with
- memory state */
- VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY = (1 << 7), /* Filter by snapshots
- taken while guest was
- active, but without
- memory state */
-
- VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL = (1 << 8), /* Filter by snapshots
- stored internal to
- disk images */
- VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL = (1 << 9), /* Filter by snapshots
- that use files external
- to disk images */
-} virDomainSnapshotListFlags;
-
-/* Return the number of snapshots for this domain */
-int virDomainSnapshotNum(virDomainPtr domain, unsigned int flags);
-
-/* Get the names of all snapshots for this domain */
-int virDomainSnapshotListNames(virDomainPtr domain, char **names, int nameslen,
- unsigned int flags);
-
-/* Get all snapshot objects for this domain */
-int virDomainListAllSnapshots(virDomainPtr domain,
- virDomainSnapshotPtr **snaps,
- unsigned int flags);
-
-/* Return the number of child snapshots for this snapshot */
-int virDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-/* Get the names of all child snapshots for this snapshot */
-int virDomainSnapshotListChildrenNames(virDomainSnapshotPtr snapshot,
- char **names, int nameslen,
- unsigned int flags);
-
-/* Get all snapshot object children for this snapshot */
-int virDomainSnapshotListAllChildren(virDomainSnapshotPtr snapshot,
- virDomainSnapshotPtr **snaps,
- unsigned int flags);
-
-/* Get a handle to a named snapshot */
-virDomainSnapshotPtr virDomainSnapshotLookupByName(virDomainPtr domain,
- const char *name,
- unsigned int flags);
-
-/* Check whether a domain has a snapshot which is currently used */
-int virDomainHasCurrentSnapshot(virDomainPtr domain, unsigned int flags);
-
-/* Get a handle to the current snapshot */
-virDomainSnapshotPtr virDomainSnapshotCurrent(virDomainPtr domain,
- unsigned int flags);
-
-/* Get a handle to the parent snapshot, if one exists */
-virDomainSnapshotPtr virDomainSnapshotGetParent(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-/* Determine if a snapshot is the current snapshot of its domain. */
-int virDomainSnapshotIsCurrent(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-/* Determine if a snapshot has associated libvirt metadata that would
- * prevent the deletion of its domain. */
-int virDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-typedef enum {
- VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING = 1 << 0, /* Run after revert */
- VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED = 1 << 1, /* Pause after revert */
- VIR_DOMAIN_SNAPSHOT_REVERT_FORCE = 1 << 2, /* Allow risky reverts */
-} virDomainSnapshotRevertFlags;
-
-/* Revert the domain to a point-in-time snapshot. The
- * state of the guest after this call will be the state
- * of the guest when the snapshot in question was taken
- */
-int virDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-/* Delete a snapshot */
-typedef enum {
- VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN = (1 << 0), /* Also delete children
*/
- VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata
*/
- VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children
*/
-} virDomainSnapshotDeleteFlags;
-
-int virDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
- unsigned int flags);
-
-int virDomainSnapshotRef(virDomainSnapshotPtr snapshot);
-int virDomainSnapshotFree(virDomainSnapshotPtr snapshot);
/**
* virConnectDomainEventGenericCallback:
@@ -5829,6 +5649,10 @@ typedef virMemoryParameter *virMemoryParameterPtr;
/* Add new interfaces to the appropriate sections earlier in this
* file; the end of the file is reserved for deprecated names. */
+#define __VIR_LIBVIRT_H_INCLUDES__
+#include <libvirt/libvirt-domain-snapshot.h>
+#undef __VIR_LIBVIRT_H_INCLUDES__
+
#ifdef __cplusplus
}
#endif
--
2.1.0