Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Changes | 1 +
examples/node-info.pl | 13 +++++++++++++
lib/Sys/Virt.pm | 6 ++++++
lib/Sys/Virt.xs | 16 ++++++++++++++++
4 files changed, 36 insertions(+)
diff --git a/Changes b/Changes
index 6bff52d..39a1bd5 100644
--- a/Changes
+++ b/Changes
@@ -7,6 +7,7 @@ Revision history for perl module Sys::Virt
- Add VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY constant
- Add VIR_DOMAIN_SAVE_IMAGE_XML_SECURE and
VIR_DOMAIN_SNAPSHOT_XML_SECURE constants
+ - Add virConnectGetStoragePoolCapabilities binding
5.0.0 2019-01-21
diff --git a/examples/node-info.pl b/examples/node-info.pl
index 9655ab4..b31e90f 100644
--- a/examples/node-info.pl
+++ b/examples/node-info.pl
@@ -4,6 +4,8 @@ use strict;
use warnings;
use Sys::Virt;
+use XML::XPath;
+use XML::XPath::XMLParser;
my $addr = @ARGV ? shift @ARGV : "";
@@ -33,5 +35,16 @@ foreach my $info (@info) {
print "\n";
}
+my $poolCaps = $hv->get_storage_pool_capabilities();
+my @poolTypes = ();
+
+my $xp = XML::XPath->new(xml => $poolCaps);
+my $nodeset =
$xp->find('/storagepoolCapabilities/pool[@supported="yes"]/@type');
+foreach my $node ($nodeset->get_nodelist) {
+ push (@poolTypes, $node->getNodeValue());
+}
+
+print "Supported pool types: @poolTypes\n";
+
my $xml = $hv->get_domain_capabilities(undef, "x86_64", undef,
"kvm");
print $xml;
diff --git a/lib/Sys/Virt.pm b/lib/Sys/Virt.pm
index 8fd3e23..549dc54 100644
--- a/lib/Sys/Virt.pm
+++ b/lib/Sys/Virt.pm
@@ -1869,6 +1869,12 @@ an optional name of a guest machine, and C<$virttype> is an
optional name of the virtualization type. C<$flags> is unused
and defaults to zero.
+=item my $xml = $con->get_storage_pool_capabilities($flags=0);
+
+Returns an XML document describing the storage pool driver
+capabilities (e.g. which storage pool types are supported and so
+on). C<$flags> is currently unused and defaults to zero.
+
=item my $result = $con->compare_cpu($xml, $flags=0);
Checks whether the CPU definition in C<$xml> is compatible with the
diff --git a/lib/Sys/Virt.xs b/lib/Sys/Virt.xs
index bc9320d..056d767 100644
--- a/lib/Sys/Virt.xs
+++ b/lib/Sys/Virt.xs
@@ -2774,6 +2774,22 @@ PREINIT:
RETVAL
+SV *
+get_storage_pool_capabilities(con, flags=0)
+ virConnectPtr con;
+ unsigned int flags;
+PREINIT:
+ char *xml;
+ CODE:
+ if (!(xml = virConnectGetStoragePoolCapabilities(con, flags)))
+ _croak_error();
+
+ RETVAL = newSVpv(xml, 0);
+ free(xml);
+ OUTPUT:
+ RETVAL
+
+
SV *
compare_cpu(con, xml, flags=0)
virConnectPtr con;
--
2.19.2