1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
|
# -*- perl -*-
#
# Copyright (C) 2006 Red Hat
# Copyright (C) 2006-2007 Daniel P. Berrange
#
# This program is free software; You can redistribute it and/or modify
# it under either:
#
# a) the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any
# later version,
#
# or
#
# b) the "Artistic License"
#
# The file "LICENSE" distributed along with this file provides full
# details of the terms and conditions of the two licenses.
=pod
=head1 NAME
Sys::Virt::DomainCheckpoint - Represent & manage a libvirt guest domain checkpoint
=head1 DESCRIPTION
The C<Sys::Virt::DomainCheckpoint> module represents a guest domain
checkpoint managed by the virtual machine monitor.
=head1 METHODS
=over 4
=cut
package Sys::Virt::DomainCheckpoint;
use strict;
use warnings;
sub _new {
my $proto = shift;
my $class = ref($proto) || $proto;
my %params = @_;
my $dom = exists $params{domain} ? $params{domain} : die "domain parameter is required";
my $self;
if (exists $params{name}) {
$self = Sys::Virt::DomainCheckpoint::_lookup_by_name($dom, $params{name});
} elsif (exists $params{xml}) {
$self = Sys::Virt::DomainCheckpoint::_create_xml($dom, $params{xml}, $params{flags} ? $params{flags} : 0);
} else {
die "name or xml parameters are required";
}
bless $self, $class;
return $self;
}
=item my $str = $domchkp->get_name()
Return the name of the checkpoint
=item my $xml = $domchkp->get_xml_description($flags)
Returns an XML document containing a complete description of
the domain checkpoints' configuration. The C<$flags> parameter
accepts the following constants
=over 4
=item Sys::Virt::DomainCheckpoint::XML_SECURE
Include security sensitive information in the XML dump, such as
passwords.
=item Sys::Virt::DomainCheckpoint::XML_SIZE
Include dynamic per-<disk> size information
=item Sys::Virt::DomainCheckpoint::XML_NO_DOMAIN
Suppress <domain> sub-element
=back
=item $domchkp->delete($flags)
Deletes this checkpoint object & its data. The optional C<$flags> parameter controls
what should be deleted via the C<Sys::Virt::DomainCheckpoint::DELETE_*>
constants.
=item $parentchkp = $domchkp->get_parent();
Return the parent of the checkpoint, if any
=item my @checkpoints = $domchkp->list_all_children($flags)
Return a list of all domain checkpoints that are children of this
checkpoint. The elements in the returned list are instances of the
L<Sys::Virt::DomainCheckpoint> class. The C<$flags> parameter can be
used to filter the list of return domain checkpoints.
=back
=head1 CONSTANTS
=head2 CHECKPOINT CREATION
The following constants are useful when creating checkpoints
=over 4
=item Sys::Virt::DomainCheckpoint::CREATE_REDEFINE
Replace/set the metadata with the checkpoint
=item Sys::Virt::DomainCheckpoint::CREATE_QUIESCE
Quiesce the guest disks while taking the checkpoint
=item Sys::Virt::DomainCheckpoint::CREATE_REDEFINE_VALIDATE
Validate disk data state
=back
=head2 CHECKPOINT DELETION
The following constants are useful when deleting checkpoints
=over 4
=item Sys::Virt::DomainCheckpoint::DELETE_CHILDREN
Recursively delete any child checkpoints
=item Sys::Virt::DomainCheckpoint::DELETE_CHILDREN_ONLY
Only delete the child checkpoints
=item Sys::Virt::DomainCheckpoint::DELETE_METADATA_ONLY
Only delete the checkpoint metadata
=back
=head2 CHECKPOINT LIST
The following constants are useful when listing checkpoints
=over 4
=item Sys::Virt::DomainCheckpoint::LIST_ROOTS
Only list checkpoints which are root nodes in the tree
=item Sys::Virt::DomainCheckpoint::LIST_DESCENDANTS
Only list checkpoints which are descendants of the current
checkpoint
=item Sys::Virt::DomainCheckpoint::LIST_LEAVES
Only list leaf nodes in the checkpoint tree
=item Sys::Virt::DomainCheckpoint::LIST_NO_LEAVES
Only list non-leaf nodes in the checkpoint tree
=item Sys::Virt::DomainCheckpoint::LIST_TOPOLOGICAL
Sort list in topological order w.r.t. to parent/child
relationships.
=back
=over 4
=cut
1;
=back
=head1 AUTHORS
Daniel P. Berrange <berrange@redhat.com>
=head1 COPYRIGHT
Copyright (C) 2006 Red Hat
Copyright (C) 2006-2007 Daniel P. Berrange
=head1 LICENSE
This program is free software; you can redistribute it and/or modify
it under the terms of either the GNU General Public License as published
by the Free Software Foundation (either version 2 of the License, or at
your option any later version), or, the Artistic License, as specified
in the Perl README file.
=head1 SEE ALSO
L<Sys::Virt>, L<Sys::Virt::Error>, C<http://libvirt.org>
=cut
|