class Libvirt::Domain::Snapshot

Class Libvirt::Domain::Snapshot

Constants

CREATE_ATOMIC
CREATE_CURRENT
CREATE_DISK_ONLY
CREATE_HALT
CREATE_LIVE
CREATE_NO_METADATA
CREATE_QUIESCE
CREATE_REDEFINE
CREATE_REUSE_EXT
DELETE_CHILDREN
DELETE_CHILDREN_ONLY
DELETE_METADATA_ONLY
LIST_ACTIVE
LIST_DESCENDANTS
LIST_DISK_ONLY
LIST_EXTERNAL
LIST_INACTIVE
LIST_INTERNAL
LIST_LEAVES
LIST_METADATA
LIST_NO_LEAVES
LIST_NO_METADATA
LIST_ROOTS
REVERT_FORCE
REVERT_PAUSED
REVERT_RUNNING

Public Instance Methods

current?(flags=0) → [true|false] click to toggle source

Call virDomainSnapshotIsCurrent to determine if the snapshot is the domain's current snapshot.

static VALUE libvirt_domain_snapshot_current_p(int argc, VALUE *argv, VALUE s)
{
 VALUE flags;
 rb_scan_args(argc, argv, "01", &flags);
 ruby_libvirt_generate_call_truefalse(virDomainSnapshotIsCurrent,
 ruby_libvirt_connect_get(s),
 domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
}
delete(flags=0) → nil click to toggle source

Call virDomainSnapshotDelete to delete this snapshot.

static VALUE libvirt_domain_snapshot_delete(int argc, VALUE *argv, VALUE s)
{
 VALUE flags;
 rb_scan_args(argc, argv, "01", &flags);
 ruby_libvirt_generate_call_nil(virDomainSnapshotDelete,
 ruby_libvirt_connect_get(s),
 domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
}
free → nil click to toggle source

Call virDomainSnapshotFree to free up the snapshot object. After this call the snapshot object is no longer valid.

static VALUE libvirt_domain_snapshot_free(VALUE s)
{
 ruby_libvirt_generate_call_free(DomainSnapshot, s);
}
has_metadata?(flags=0) → [true|false] click to toggle source

Call virDomainSnapshotHasMetadata to determine if the snapshot is associated with libvirt metadata.

static VALUE libvirt_domain_snapshot_has_metadata_p(int argc, VALUE *argv,
 VALUE s)
{
 VALUE flags;
 rb_scan_args(argc, argv, "01", &flags);
 ruby_libvirt_generate_call_truefalse(virDomainSnapshotHasMetadata,
 ruby_libvirt_connect_get(s),
 domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
}
list_all_children(flags=0) → Array click to toggle source

Call virDomainSnapshotListAllChildren to get an array of snapshot objects that are children of this snapshot.

static VALUE libvirt_domain_snapshot_list_all_children(int argc, VALUE *argv,
 VALUE s)
{
 ruby_libvirt_generate_call_list_all(virDomainSnapshotPtr, argc, argv,
 virDomainSnapshotListAllChildren,
 domain_snapshot_get(s), s,
 domain_snapshot_new,
 virDomainSnapshotFree);
}
list_children_names(flags=0) → Array click to toggle source

Call virDomainSnapshotListChildrenNames to get an array of strings representing the children of this snapshot.

static VALUE libvirt_domain_snapshot_list_children_names(int argc, VALUE *argv,
 VALUE s)
{
 VALUE flags, result;
 char **children;
 int num_children, ret, i, j, exception = 0;
 struct ruby_libvirt_str_new2_and_ary_store_arg arg;
 rb_scan_args(argc, argv, "01", &flags);
 num_children = virDomainSnapshotNumChildren(domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
 ruby_libvirt_raise_error_if(num_children < 0, e_RetrieveError,
 "virDomainSnapshotNumChildren",
 ruby_libvirt_connect_get(s));
 result = rb_ary_new2(num_children);
 if (num_children == 0) {
 return result;
 }
 children = alloca(num_children * sizeof(char *));
 ret = virDomainSnapshotListChildrenNames(domain_snapshot_get(s), children,
 num_children,
 ruby_libvirt_value_to_uint(flags));
 ruby_libvirt_raise_error_if(ret < 0, e_RetrieveError,
 "virDomainSnapshotListChildrenNames",
 ruby_libvirt_connect_get(s));
 for (i = 0; i < ret; i++) {
 arg.arr = result;
 arg.index = i;
 arg.value = children[i];
 rb_protect(ruby_libvirt_str_new2_and_ary_store_wrap, (VALUE)&arg,
 &exception);
 if (exception) {
 goto error;
 }
 free(children[i]);
 }
 return result;
error:
 for (j = i; j < ret; j++) {
 free(children[j]);
 }
 rb_jump_tag(exception);
 /* not necessary, just to shut the compiler up */
 return Qnil;
}
name → String click to toggle source

Call virDomainSnapshotGetName to get the name associated with a snapshot.

static VALUE libvirt_domain_snapshot_name(VALUE s)
{
 ruby_libvirt_generate_call_string(virDomainSnapshotGetName,
 ruby_libvirt_connect_get(s),
 0, domain_snapshot_get(s));
}
num_children(flags=0) → Fixnum click to toggle source

Call virDomainSnapshotNumChildren to get the number of children snapshots of this snapshot.

static VALUE libvirt_domain_snapshot_num_children(int argc, VALUE *argv,
 VALUE s)
{
 VALUE flags;
 rb_scan_args(argc, argv, "01", &flags);
 ruby_libvirt_generate_call_int(virDomainSnapshotNumChildren,
 ruby_libvirt_connect_get(s),
 domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
}
parent(flags=0) → [Libvirt::Domain::Snapshot|nil] click to toggle source

Call virDomainSnapshotGetParent to get the parent of this snapshot (nil will be returned if this is a root snapshot).

static VALUE libvirt_domain_snapshot_parent(int argc, VALUE *argv, VALUE s)
{
 virDomainSnapshotPtr snap;
 VALUE flags;
 virErrorPtr err;
 rb_scan_args(argc, argv, "01", &flags);
 snap = virDomainSnapshotGetParent(domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
 if (snap == NULL) {
 /* snap may be NULL if there is a root, in which case we want to return
 * nil
 */
 err = virConnGetLastError(ruby_libvirt_connect_get(s));
 if (err->code == VIR_ERR_NO_DOMAIN_SNAPSHOT) {
 return Qnil;
 }
 ruby_libvirt_raise_error_if(snap == NULL, e_RetrieveError,
 "virDomainSnapshotGetParent",
 ruby_libvirt_connect_get(s));
 }
 return domain_snapshot_new(snap, s);
}
xml_desc(flags=0) → String click to toggle source

Call virDomainSnapshotGetXMLDesc to retrieve the xml description for this snapshot.

static VALUE libvirt_domain_snapshot_xml_desc(int argc, VALUE *argv, VALUE s)
{
 VALUE flags;
 rb_scan_args(argc, argv, "01", &flags);
 ruby_libvirt_generate_call_string(virDomainSnapshotGetXMLDesc,
 ruby_libvirt_connect_get(s), 1,
 domain_snapshot_get(s),
 ruby_libvirt_value_to_uint(flags));
}