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
|
# -*- 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::NWFilter - Represent & manage a libvirt virtual network
=head1 DESCRIPTION
The C<Sys::Virt::NWFilter> module represents a virtual network managed
by the virtual machine monitor.
=head1 METHODS
=over 4
=cut
package Sys::Virt::NWFilter;
use strict;
use warnings;
sub _new {
my $proto = shift;
my $class = ref($proto) || $proto;
my %params = @_;
my $con = exists $params{connection} ? $params{connection} : die "connection parameter is required";
my $self;
if (exists $params{name}) {
$self = Sys::Virt::NWFilter::_lookup_by_name($con, $params{name});
} elsif (exists $params{uuid}) {
if (length($params{uuid}) == 16) {
$self = Sys::Virt::NWFilter::_lookup_by_uuid($con, $params{uuid});
} elsif (length($params{uuid}) == 32 ||
length($params{uuid}) == 36) {
$self = Sys::Virt::NWFilter::_lookup_by_uuid_string($con, $params{uuid});
} else {
die "UUID must be either 16 unsigned bytes, or 32/36 hex characters long";
}
} elsif (exists $params{xml}) {
$self = Sys::Virt::NWFilter::_define_xml($con, $params{xml}, $params{flags});
} else {
die "address, id or uuid parameters are required";
}
bless $self, $class;
return $self;
}
=item my $uuid = $filter->get_uuid()
Returns a 16 byte long string containing the raw globally unique identifier
(UUID) for the network.
=item my $uuid = $filter->get_uuid_string()
Returns a printable string representation of the raw UUID, in the format
'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'.
=item my $name = $filter->get_name()
Returns a string with a locally unique name of the network
=item my $xml = $filter->get_xml_description()
Returns an XML document containing a complete description of
the network's configuration
=item $filter->undefine()
Remove the configuration associated with a network filter previously defined
with the C<define_nwfilter> method in L<Sys::Virt>.
=back
=head1 CONSTANTS
This section documents constants that are used with various
APIs described above
=head2 NWFILTER DEFINE
The following constants can be used to control the behaviour
of network filter define operations
=over 4
=item Sys::Virt::NWFilter::DEFINE_VALIDATE
Validate the XML document against the XML schema
=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
|