1Sys::Virt(3) User Contributed Perl Documentation Sys::Virt(3)
2
3
4
6 Sys::Virt - Represent and manage a libvirt hypervisor connection
7
9 my $conn = Sys::Virt->new(uri => $uri);
10
11 my @domains = $conn->list_domains();
12
13 foreach my $dom (@domains) {
14 print "Domain ", $dom->get_id, " ", $dom->get_name, "\n";
15 }
16
18 The Sys::Virt module provides a Perl XS binding to the libvirt virtual
19 machine management APIs. This allows machines running within arbitrary
20 virtualization containers to be managed with a consistent API.
21
23 Any operations in the Sys::Virt API which have failure scenarios will
24 result in an instance of the Sys::Virt::Error module being thrown. To
25 catch these errors, simply wrap the method in an eval block:
26
27 eval { my $conn = Sys::Virt->new(uri => $uri); };
28 if ($@) {
29 print STDERR "Unable to open connection to $addr" . $@->message . "\n";
30 }
31
32 For details of the information contained in the error objects, consult
33 the Sys::Virt::Error manual page.
34
36 my $conn = Sys::Virt->new(uri => $uri, readonly => $ro, flags =>
37 $flags);
38 Attach to the virtualization host identified by "uri". The "uri"
39 parameter may be omitted, in which case the default connection made
40 will be to the local Xen hypervisor. Some example URIs include:
41
42 xen:///
43 Xen on the local machine
44
45 test:///default
46 Dummy "in memory" driver for test suites
47
48 qemu:///system
49 System-wide driver for QEMU / KVM virtualization
50
51 qemu:///session
52 Per-user driver for QEMU virtualization
53
54 qemu+tls://somehost/system
55 System-wide QEMU driver on "somehost" using TLS security
56
57 xen+tcp://somehost/
58 Xen driver on "somehost" using TCP / SASL security
59
60 For further details consult "http://libvirt.org/uri.html"
61
62 If the optional "readonly" parameter is supplied, then an
63 unprivileged connection to the hypervisor will be attempted. If it
64 is not supplied, then it defaults to making a fully privileged
65 connection to the hypervisor. If the calling application is not
66 running as root, it may be necessary to provide authentication
67 callbacks.
68
69 If the optional "auth" parameter is set to a non-zero value,
70 authentication will be enabled during connection, using the default
71 set of credential gathering callbacks. The default callbacks prompt
72 for credentials on the console, so are not suitable for graphical
73 applications. For such apps a custom implementation should be
74 supplied. The "credlist" parameter should be an array reference
75 listing the set of credential types that will be supported. The
76 credential constants in this module can be used as values in this
77 list. The "callback" parameter should be a subroutine reference
78 containing the code necessary to gather the credentials. When
79 invoked it will be supplied with a single parameter, an array
80 reference of requested credentials. The elements of the array are
81 hash references, with keys "type" giving the type of credential,
82 "prompt" giving a user descriptive user prompt, "challenge" giving
83 name of the credential required. The answer should be collected
84 from the user, and returned by setting the "result" key. This key
85 may already be set with a default result if applicable
86
87 As a simple example returning hardcoded credentials
88
89 my $uri = "qemu+tcp://192.168.122.1/system";
90 my $username = "test";
91 my $password = "123456";
92
93 my $con = Sys::Virt->new(uri => $uri,
94 auth => 1,
95 credlist => [
96 Sys::Virt::CRED_AUTHNAME,
97 Sys::Virt::CRED_PASSPHRASE,
98 ],
99 callback =>
100 sub {
101 my $creds = shift;
102
103 foreach my $cred (@{$creds}) {
104 if ($cred->{type} == Sys::Virt::CRED_AUTHNAME) {
105 $cred->{result} = $username;
106 }
107 if ($cred->{type} == Sys::Virt::CRED_PASSPHRASE) {
108 $cred->{result} = $password;
109 }
110 }
111 return 0;
112 });
113
114 For backwards compatibility with earlier releases, the "address"
115 parameter is accepted as a synonym for the "uri" parameter. The use
116 of "uri" is recommended for all newly written code.
117
118 $conn->set_identity($identity, $flags=0)
119 Change the identity that is used for access control over the
120 connection. Normally the remote daemon will use the identity
121 associated with the UNIX domain socket that the app opens. Only a
122 privileged client is usually able to override this. The $identity
123 should be a hash reference whose keys are one of the IDENTITY
124 constants. The $flags parameter is currently unused, and defaults
125 to 0 if omitted.
126
127 my $st = $conn->new_stream($flags)
128 Create a new stream, with the given flags
129
130 my $dom = $conn->create_domain($xml, $flags);
131 Create a new domain based on the XML description passed into the
132 $xml parameter. The returned object is an instance of the
133 Sys::Virt::Domain class. This method is not available with
134 unprivileged connections to the hypervisor. The $flags parameter
135 accepts one of the DOMAIN CREATION constants documented in
136 Sys::Virt::Domain, and defaults to 0 if omitted.
137
138 my $dom = $conn->create_domain_with_files($xml, $fds, $flags);
139 Create a new domain based on the XML description passed into the
140 $xml parameter. The returned object is an instance of the
141 Sys::Virt::Domain class. This method is not available with
142 unprivileged connections to the hypervisor. The $fds parameter is
143 an array of UNIX file descriptors which will be passed to the init
144 process of the container. This is only supported with container
145 based virtualization. The $flags parameter accepts one of the
146 DOMAIN CREATION constants documented in Sys::Virt::Domain, and
147 defaults to 0 if omitted.
148
149 my $dom = $conn->define_domain($xml, $flags=0);
150 Defines, but does not start, a new domain based on the XML
151 description passed into the $xml parameter. The returned object is
152 an instance of the Sys::Virt::Domain class. This method is not
153 available with unprivileged connections to the hypervisor. The
154 defined domain can be later started by calling the "create" method
155 on the returned "Sys::Virt::Domain" object.
156
157 my $net = $conn->create_network($xml, $flags=0);
158 Create a new network based on the XML description passed into the
159 $xml parameter. The returned object is an instance of the
160 Sys::Virt::Network class. This method is not available with
161 unprivileged connections to the hypervisor.
162
163 my $net = $conn->define_network($xml, $flags = 0);
164 Defines, but does not start, a new network based on the XML
165 description passed into the $xml parameter. The returned object is
166 an instance of the Sys::Virt::Network class. This method is not
167 available with unprivileged connections to the hypervisor. The
168 defined network can be later started by calling the "create" method
169 on the returned "Sys::Virt::Network" object.
170
171 my $nwfilter = $conn->define_nwfilter($xml, $flags=0);
172 Defines a new network filter based on the XML description passed
173 into the $xml parameter. The returned object is an instance of the
174 Sys::Virt::NWFilter class. This method is not available with
175 unprivileged connections to the hypervisor.
176
177 my $secret = $conn->define_secret($xml, $flags=0);
178 Defines a new secret based on the XML description passed into the
179 $xml parameter. The returned object is an instance of the
180 Sys::Virt::Secret class. This method is not available with
181 unprivileged connections to the hypervisor.
182
183 my $pool = $conn->create_storage_pool($xml);
184 Create a new storage pool based on the XML description passed into
185 the $xml parameter. The returned object is an instance of the
186 Sys::Virt::StoragePool class. This method is not available with
187 unprivileged connections to the hypervisor.
188
189 my $pool = $conn->define_storage_pool($xml, $flags=0);
190 Defines, but does not start, a new storage pol based on the XML
191 description passed into the $xml parameter. The returned object is
192 an instance of the Sys::Virt::StoragePool class. This method is not
193 available with unprivileged connections to the hypervisor. The
194 defined pool can be later started by calling the "create" method on
195 the returned "Sys::Virt::StoragePool" object.
196
197 my $pool = $conn->create_interface($xml);
198 Create a new interface based on the XML description passed into the
199 $xml parameter. The returned object is an instance of the
200 Sys::Virt::Interface class. This method is not available with
201 unprivileged connections to the hypervisor.
202
203 my $binding = $conn->create_nwfilter_binding($xml, $flags=0);
204 Create a new network filter binding based on the XML description
205 passed into the $xml parameter. The returned object is an instance
206 of the Sys::Virt::NWFilterBinding class.
207
208 my $iface = $conn->define_interface($xml, $flags=0);
209 Defines, but does not start, a new interface based on the XML
210 description passed into the $xml parameter. The returned object is
211 an instance of the Sys::Virt::Interface class. This method is not
212 available with unprivileged connections to the hypervisor. The
213 defined interface can be later started by calling the "create"
214 method on the returned "Sys::Virt::Interface" object.
215
216 my $dev = $conn->create_node_device($xml, $flags=0);
217 Create a new virtual node device based on the XML description
218 passed into the $xml parameter. The $flags parameter is currently
219 unused and defaults to zero. The returned object is an instance of
220 the Sys::Virt::NodeDevice class. This method is not available with
221 unprivileged connections to the hypervisor.
222
223 my $dev = $conn->define_node_device($xml, $flags=0);
224 Defines, but does not start, a new node dev based on the XML
225 description passed into the $xml parameter. The $flags parameter is
226 currently unused and defaults to zero. The returned object is an
227 instance of the Sys::Virt::NodeDevice class. This method is not
228 available with unprivileged connections to the hypervisor. The
229 defined node device can be later started by calling the "create"
230 method on the returned "Sys::Virt::NodeDevice" object.
231
232 my @doms = $conn->list_domains()
233 Return a list of all running domains currently known to the
234 hypervisor. The elements in the returned list are instances of the
235 Sys::Virt::Domain class. This method requires O(n) RPC calls, so
236 the "list_all_domains" method is recommended as a more efficient
237 alternative.
238
239 my $nids = $conn->num_of_domains()
240 Return the number of running domains known to the hypervisor. This
241 can be used as the "maxids" parameter to "list_domain_ids".
242
243 my @domIDs = $conn->list_domain_ids($maxids)
244 Return a list of all domain IDs currently known to the hypervisor.
245 The IDs can be used with the "get_domain_by_id" method.
246
247 my @doms = $conn->list_defined_domains()
248 Return a list of all domains defined, but not currently running, on
249 the hypervisor. The elements in the returned list are instances of
250 the Sys::Virt::Domain class. This method requires O(n) RPC calls,
251 so the "list_all_domains" method is recommended as a more efficient
252 alternative.
253
254 my $ndoms = $conn->num_of_defined_domains()
255 Return the number of running domains known to the hypervisor. This
256 can be used as the "maxnames" parameter to
257 "list_defined_domain_names".
258
259 my @names = $conn->list_defined_domain_names($maxnames)
260 Return a list of names of all domains defined, but not currently
261 running, on the hypervisor. The names can be used with the
262 "get_domain_by_name" method.
263
264 my @doms = $conn->list_all_domains($flags)
265 Return a list of all domains currently known to the hypervisor,
266 whether running or shutoff. The elements in the returned list are
267 instances of the Sys::Virt::Domain class. The $flags parameter can
268 be used to filter the list of returned domains.
269
270 my @nets = $conn->list_networks()
271 Return a list of all networks currently known to the hypervisor.
272 The elements in the returned list are instances of the
273 Sys::Virt::Network class. This method requires O(n) RPC calls, so
274 the "list_all_networks" method is recommended as a more efficient
275 alternative.
276
277 my $nnets = $conn->num_of_networks()
278 Return the number of running networks known to the hypervisor. This
279 can be used as the "maxids" parameter to "list_network_ids".
280
281 my @netNames = $conn->list_network_names($maxnames)
282 Return a list of all network names currently known to the
283 hypervisor. The names can be used with the "get_network_by_name"
284 method.
285
286 my @nets = $conn->list_defined_networks()
287 Return a list of all networks defined, but not currently running,
288 on the hypervisor. The elements in the returned list are instances
289 of the Sys::Virt::Network class. This method requires O(n) RPC
290 calls, so the "list_all_networks" method is recommended as a more
291 efficient alternative.
292
293 my $nnets = $conn->num_of_defined_networks()
294 Return the number of running networks known to the host. This can
295 be used as the "maxnames" parameter to
296 "list_defined_network_names".
297
298 my @names = $conn->list_defined_network_names($maxnames)
299 Return a list of names of all networks defined, but not currently
300 running, on the host. The names can be used with the
301 "get_network_by_name" method.
302
303 my @nets = $conn->list_all_networks($flags)
304 Return a list of all networks currently known to the hypervisor,
305 whether running or shutoff. The elements in the returned list are
306 instances of the Sys::Virt::Network class. The $flags parameter can
307 be used to filter the list of returned networks.
308
309 my @pools = $conn->list_storage_pools()
310 Return a list of all storage pools currently known to the host. The
311 elements in the returned list are instances of the
312 Sys::Virt::StoragePool class. This method requires O(n) RPC calls,
313 so the "list_all_storage_pools" method is recommended as a more
314 efficient alternative.
315
316 my $npools = $conn->num_of_storage_pools()
317 Return the number of running storage pools known to the hypervisor.
318 This can be used as the "maxids" parameter to
319 "list_storage_pool_names".
320
321 my @poolNames = $conn->list_storage_pool_names($maxnames)
322 Return a list of all storage pool names currently known to the
323 hypervisor. The IDs can be used with the "get_network_by_id"
324 method.
325
326 my @pools = $conn->list_defined_storage_pools()
327 Return a list of all storage pools defined, but not currently
328 running, on the host. The elements in the returned list are
329 instances of the Sys::Virt::StoragePool class. This method requires
330 O(n) RPC calls, so the "list_all_storage_pools" method is
331 recommended as a more efficient alternative.
332
333 my $npools = $conn->num_of_defined_storage_pools()
334 Return the number of running networks known to the host. This can
335 be used as the "maxnames" parameter to
336 "list_defined_storage_pool_names".
337
338 my @names = $conn->list_defined_storage_pool_names($maxnames)
339 Return a list of names of all storage pools defined, but not
340 currently running, on the host. The names can be used with the
341 "get_storage_pool_by_name" method.
342
343 my @pools = $conn->list_all_storage_pools($flags)
344 Return a list of all storage pools currently known to the
345 hypervisor, whether running or shutoff. The elements in the
346 returned list are instances of the Sys::Virt::StoragePool class.
347 The $flags parameter can be used to filter the list of returned
348 pools.
349
350 my @devs = $conn->list_node_devices($capability)
351 Return a list of all devices currently known to the host OS. The
352 elements in the returned list are instances of the
353 Sys::Virt::NodeDevice class. The optional "capability" parameter
354 allows the list to be restricted to only devices with a particular
355 capability type. This method requires O(n) RPC calls, so the
356 "list_all_node_devices" method is recommended as a more efficient
357 alternative.
358
359 my $ndevs = $conn->num_of_node_devices($capability[, $flags])
360 Return the number of host devices known to the hypervisor. This can
361 be used as the "maxids" parameter to "list_node_device_names". The
362 "capability" parameter allows the list to be restricted to only
363 devices with a particular capability type, and should be left as
364 "undef" if the full list is required. The optional <flags>
365 parameter is currently unused and defaults to 0 if omitted.
366
367 my @devNames = $conn->list_node_device_names($capability, $maxnames[,
368 $flags])
369 Return a list of all host device names currently known to the
370 hypervisor. The names can be used with the
371 "get_node_device_by_name" method. The "capability" parameter
372 allows the list to be restricted to only devices with a particular
373 capability type, and should be left as "undef" if the full list is
374 required. The optional <flags> parameter is currently unused and
375 defaults to 0 if omitted.
376
377 my @devs = $conn->list_all_node_devices($flags)
378 Return a list of all node devices currently known to the
379 hypervisor. The elements in the returned list are instances of the
380 Sys::Virt::NodeDevice class. The $flags parameter can be used to
381 filter the list of returned devices.
382
383 my @ifaces = $conn->list_interfaces()
384 Return a list of all network interfaces currently known to the
385 hypervisor. The elements in the returned list are instances of the
386 Sys::Virt::Interface class. This method requires O(n) RPC calls,
387 so the "list_all_interfaces" method is recommended as a more
388 efficient alternative.
389
390 my $nifaces = $conn->num_of_interfaces()
391 Return the number of running interfaces known to the hypervisor.
392 This can be used as the "maxnames" parameter to
393 "list_interface_names".
394
395 my @names = $conn->list_interface_names($maxnames)
396 Return a list of all interface names currently known to the
397 hypervisor. The names can be used with the "get_interface_by_name"
398 method.
399
400 my @ifaces = $conn->list_defined_interfaces()
401 Return a list of all network interfaces currently known to the
402 hypervisor. The elements in the returned list are instances of the
403 Sys::Virt::Interface class. This method requires O(n) RPC calls,
404 so the "list_all_interfaces" method is recommended as a more
405 efficient alternative.
406
407 my $nifaces = $conn->num_of_defined_interfaces()
408 Return the number of inactive interfaces known to the hypervisor.
409 This can be used as the "maxnames" parameter to
410 "list_defined_interface_names".
411
412 my @names = $conn->list_defined_interface_names($maxnames)
413 Return a list of inactive interface names currently known to the
414 hypervisor. The names can be used with the "get_interface_by_name"
415 method.
416
417 my @ifaces = $conn->list_all_interfaces($flags)
418 Return a list of all interfaces currently known to the hypervisor,
419 whether running or shutoff. The elements in the returned list are
420 instances of the Sys::Virt::Interface class. The $flags parameter
421 can be used to filter the list of returned interfaces.
422
423 my @ifaces = $conn->list_secrets()
424 Return a list of all secrets currently known to the hypervisor. The
425 elements in the returned list are instances of the
426 Sys::Virt::Secret class. This method requires O(n) RPC calls, so
427 the "list_all_secrets" method is recommended as a more efficient
428 alternative.
429
430 my $nuuids = $conn->num_of_secrets()
431 Return the number of secrets known to the hypervisor. This can be
432 used as the "maxuuids" parameter to "list_secrets".
433
434 my @uuids = $conn->list_secret_uuids($maxuuids)
435 Return a list of all secret uuids currently known to the
436 hypervisor. The uuids can be used with the "get_secret_by_uuid"
437 method.
438
439 my @secrets = $conn->list_all_secrets($flags)
440 Return a list of all secrets currently known to the hypervisor. The
441 elements in the returned list are instances of the
442 Sys::Virt::Network class. The $flags parameter can be used to
443 filter the list of returned secrets.
444
445 my @nwfilters = $conn->list_nwfilters()
446 Return a list of all nwfilters currently known to the hypervisor.
447 The elements in the returned list are instances of the
448 Sys::Virt::NWFilter class. This method requires O(n) RPC calls, so
449 the "list_all_nwfilters" method is recommended as a more efficient
450 alternative.
451
452 my $nnwfilters = $conn->num_of_nwfilters()
453 Return the number of running nwfilters known to the hypervisor.
454 This can be used as the "maxids" parameter to
455 "list_nwfilter_names".
456
457 my @filterNames = $conn->list_nwfilter_names($maxnames)
458 Return a list of all nwfilter names currently known to the
459 hypervisor. The names can be used with the "get_nwfilter_by_name"
460 method.
461
462 my @nwfilters = $conn->list_all_nwfilters($flags)
463 Return a list of all nwfilters currently known to the hypervisor.
464 The elements in the returned list are instances of the
465 Sys::Virt::NWFilter class. The $flags parameter is currently
466 unused and defaults to zero.
467
468 my @bindings = $conn->list_all_nwfilter_bindings($flags)
469 Return a list of all nwfilter bindings currently known to the
470 hypervisor. The elements in the returned list are instances of the
471 Sys::Virt::NWFilterBinding class. The $flags parameter is currently
472 unused and defaults to zero.
473
474 $conn->define_save_image_xml($file, $dxml, $flags=0)
475 Update the XML associated with a virtual machine's save image. The
476 $file parameter is the fully qualified path to the save image XML,
477 while $dxml is the new XML document to write. The $flags parameter
478 is currently unused and defaults to zero.
479
480 $xml = $conn->get_save_image_xml_description($file, $flags=1)
481 Retrieve the current XML configuration associated with the virtual
482 machine's save image identified by $file. The $flags parameter
483 accepts the same constants as
484 "Sys::Virt::Domain::managed_save_get_xml_description".
485
486 my $dom = $conn->get_domain_by_name($name)
487 Return the domain with a name of $name. The returned object is an
488 instance of the Sys::Virt::Domain class.
489
490 my $dom = $conn->get_domain_by_id($id)
491 Return the domain with a local id of $id. The returned object is an
492 instance of the Sys::Virt::Domain class.
493
494 my $dom = $conn->get_domain_by_uuid($uuid)
495 Return the domain with a globally unique id of $uuid. The returned
496 object is an instance of the Sys::Virt::Domain class.
497
498 my $net = $conn->get_network_by_name($name)
499 Return the network with a name of $name. The returned object is an
500 instance of the Sys::Virt::Network class.
501
502 my $net = $conn->get_network_by_uuid($uuid)
503 Return the network with a globally unique id of $uuid. The returned
504 object is an instance of the Sys::Virt::Network class.
505
506 my $pool = $conn->get_storage_pool_by_name($name)
507 Return the storage pool with a name of $name. The returned object
508 is an instance of the Sys::Virt::StoragePool class.
509
510 my $pool = $conn->get_storage_pool_by_uuid($uuid)
511 Return the storage pool with a globally unique id of $uuid. The
512 returned object is an instance of the Sys::Virt::StoragePool class.
513
514 my $pool = $conn->get_storage_pool_by_volume($vol)
515 Return the storage pool with a storage volume $vol. The $vol
516 parameter must be an instance of the Sys::Virt::StorageVol class.
517 The returned object is an instance of the Sys::Virt::StoragePool
518 class.
519
520 my $pool = $conn->get_storage_pool_by_target_path($path)
521 Return the storage pool with a target path of $path. The returned
522 object is an instance of the Sys::Virt::StoragePool class.
523
524 my $vol = $conn->get_storage_volume_by_path($path)
525 Return the storage volume with a location of $path. The returned
526 object is an instance of the Sys::Virt::StorageVol class.
527
528 my $vol = $conn->get_storage_volume_by_key($key)
529 Return the storage volume with a globally unique id of $key. The
530 returned object is an instance of the Sys::Virt::StorageVol class.
531
532 my $dev = $conn->get_node_device_by_name($name)
533 Return the node device with a name of $name. The returned object is
534 an instance of the Sys::Virt::NodeDevice class.
535
536 my $dev = $conn->get_node_device_scsihost_by_wwn($wwnn, $wwpn,
537 $flags=0)
538 Return the node device which is a SCSI host identified by $wwnn and
539 $wwpn. The $flags parameter is unused and defaults to zero. The
540 returned object is an instance of the Sys::Virt::NodeDevice class.
541
542 my $iface = $conn->get_interface_by_name($name)
543 Return the interface with a name of $name. The returned object is
544 an instance of the Sys::Virt::Interface class.
545
546 my $iface = $conn->get_interface_by_mac($mac)
547 Return the interface with a MAC address of $mac. The returned
548 object is an instance of the Sys::Virt::Interface class.
549
550 my $sec = $conn->get_secret_by_uuid($uuid)
551 Return the secret with a globally unique id of $uuid. The returned
552 object is an instance of the Sys::Virt::Secret class.
553
554 my $sec = $conn->get_secret_by_usage($usageType, $usageID)
555 Return the secret with a usage type of $usageType, identified by
556 $usageID. The returned object is an instance of the
557 Sys::Virt::Secret class.
558
559 my $nwfilter = $conn->get_nwfilter_by_name($name)
560 Return the domain with a name of $name. The returned object is an
561 instance of the Sys::Virt::NWFilter class.
562
563 my $nwfilter = $conn->get_nwfilter_by_uuid($uuid)
564 Return the nwfilter with a globally unique id of $uuid. The
565 returned object is an instance of the Sys::Virt::NWFilter class.
566
567 my $binding = $conn->get_nwfilter_binding_by_port_dev($name)
568 Return the network filter binding for the port device $name. The
569 returned object is an instance of the Sys::Virt::NWFilterBinding
570 class.
571
572 my $xml = $conn->find_storage_pool_sources($type, $srcspec[, $flags])
573 Probe for available storage pool sources for the pool of type
574 $type. The $srcspec parameter can be "undef", or a parameter to
575 refine the discovery process, for example a server hostname for NFS
576 discovery. The $flags parameter is optional, and if omitted
577 defaults to zero. The returned scalar is an XML document describing
578 the discovered storage pool sources.
579
580 my @stats = $conn->get_all_domain_stats($stats, \@doms=undef,
581 $flags=0);
582 Get a list of all statistics for domains known to the hypervisor.
583 The $stats parameter controls which data fields to return and
584 should be a combination of the DOMAIN STATS FIELD CONSTANTS.
585
586 The optional @doms parameter is a list of Sys::Virt::Domain objects
587 to return stats for. If this is undefined, then all domains will be
588 returned. The $flags method can be used to filter the list of
589 returned domains.
590
591 The return data for the method is a list, one element for each
592 domain. The element will be a hash with two keys, "dom" pointing
593 to an instance of "Sys::Virt::Domain" and "data" pointing to
594 another hash reference containing the actual statistics.
595
596 $conn->interface_change_begin($flags)
597 Begin a transaction for changing the configuration of one or more
598 network interfaces
599
600 $conn->interface_change_commit($flags)
601 Complete a transaction for changing the configuration of one or
602 more network interfaces
603
604 $conn->interface_change_rollback($flags)
605 Abort a transaction for changing the configuration of one or more
606 network interfaces
607
608 $conn->restore_domain($savefile)
609 Recreate a domain from the saved state file given in the $savefile
610 parameter.
611
612 $conn->get_max_vcpus($domtype)
613 Return the maximum number of vcpus that can be configured for a
614 domain of type $domtype
615
616 my $hostname = $conn->get_hostname()
617 Return the name of the host with which this connection is
618 associated.
619
620 my $uri = $conn->get_uri()
621 Return the URI associated with the open connection. This may be
622 different from the URI used when initially connecting to libvirt,
623 when 'auto-probing' or drivers occurrs.
624
625 my $xml = $conn->get_sysinfo()
626 Return an XML documenting representing the host system information,
627 typically obtained from SMBIOS tables.
628
629 my $type = $conn->get_type()
630 Return the type of virtualization backend accessed by this
631 hypervisor object. Currently the only supported type is "Xen".
632
633 my $xml = $conn->domain_xml_from_native($format, $config);
634 Convert the native hypervisor configuration $config which is in
635 format <$format> into libvirrt domain XML. Valid values of $format
636 vary between hypervisor drivers.
637
638 my $config = $conn->domain_xml_to_native($format, $xml)
639 Convert the libvirt domain XML configuration $xml to a native
640 hypervisor configuration in format $format
641
642 my $ver = $conn->get_version()
643 Return the complete version number as a string encoded in the
644 formula "(major * 1000000) + (minor * 1000) + micro".
645
646 my $ver = $conn->get_major_version
647 Return the major version number of the libvirt library.
648
649 my $ver = $conn->get_minor_version
650 Return the minor version number of the libvirt library.
651
652 my $ver = $conn->get_micro_version
653 Return the micro version number of the libvirt library.
654
655 my $ver = $conn->get_library_version
656 Return the version number of the API associated with the active
657 connection. This differs from "get_version" in that if the
658 connection is to a remote libvirtd daemon, it will return the API
659 version of the remote libvirt, rather than the local client.
660
661 $conn->is_secure()
662 Returns a true value if the current connection is secure against
663 network interception. This implies either use of UNIX sockets, or
664 encryption with a TCP stream.
665
666 $conn->is_encrypted()
667 Returns a true value if the current connection data stream is
668 encrypted.
669
670 $conn->is_alive()
671 Returns a true value if the connection is alive, as determined by
672 keep-alive packets or other recent RPC traffic.
673
674 $conn->set_keep_alive($interval, $count)
675 Change the operation of the keep alive protocol to send $count
676 packets spaced $interval seconds apart before considering the
677 connection dead.
678
679 my $info = $con->get_node_info()
680 Returns a hash reference summarising the capabilities of the host
681 node. The elements of the hash are as follows:
682
683 memory
684 The amount of physical memory in the host
685
686 model
687 The model of the CPU, eg x86_64
688
689 cpus
690 The total number of logical CPUs.
691
692 mhz The peak MHZ of the CPU
693
694 nodes
695 The number of NUMA cells
696
697 sockets
698 The number of CPU sockets
699
700 cores
701 The number of cores per socket
702
703 threads
704 The number of threads per core
705
706 NB, more accurate information about the total number of CPUs and
707 those online can be obtained using the "get_node_cpu_map" method.
708
709 my ($totcpus, $onlinemap, $totonline) = $con->get_node_cpu_map();
710 Returns an array containing information about the CPUs available on
711 the host. The first element, "totcpus", specifies the total number
712 of CPUs available to the host regardles of their online stat. The
713 second element, "onlinemap", provides a bitmap detailing which CPUs
714 are currently online. The third element, "totonline", specifies the
715 total number of online CPUs. The values in the bitmap can be
716 extracted using the "unpack" method as follows:
717
718 my @onlinemap = split(//, unpack("b*", $onlinemap));
719
720 my $info = $con->get_node_cpu_stats($cpuNum=-1, $flags=0)
721 Returns a hash reference providing information about the host CPU
722 statistics. If <$cpuNum> is omitted, it defaults to
723 "Sys::Virt::NODE_CPU_STATS_ALL_CPUS" which causes it to return
724 cumulative information for all CPUs in the host. If $cpuNum is zero
725 or larger, it returns information just for the specified number.
726 The $flags parameter is currently unused and defaults to zero. The
727 fields in the returned hash reference are
728
729 kernel
730 The time spent in kernelspace
731
732 user
733 The time spent in userspace
734
735 idle
736 The idle time
737
738 iowait
739 The I/O wait time
740
741 utilization
742 The overall percentage utilization.
743
744 my $info = $con->get_node_memory_stats($cellNum=-1, $flags=0)
745 Returns a hash reference providing information about the host
746 memory statistics. If <$cellNum> is omitted, it defaults to
747 "Sys::Virt::NODE_MEMORY_STATS_ALL_CELLS" which causes it to return
748 cumulative information for all NUMA cells in the host. If $cellNum
749 is zero or larger, it returns information just for the specified
750 number. The $flags parameter is currently unused and defaults to
751 zero. The fields in the returned hash reference are
752
753 total
754 The total memory
755
756 free
757 The free memory
758
759 buffers
760 The memory consumed by buffers
761
762 cached
763 The memory consumed for cache
764
765 my $params = $conn->get_node_memory_parameters($flags=0)
766 Return a hash reference containing the set of memory tunable
767 parameters for the node. The keys in the hash are one of the
768 constants MEMORY PARAMETERS described later. The $flags parameter
769 is currently unused, and defaults to 0 if omitted.
770
771 $conn->set_node_memory_parameters($params, $flags=0)
772 Update the memory tunable parameters for the node. The $params
773 should be a hash reference whose keys are one of the MEMORY
774 PARAMETERS constants. The $flags parameter is currently unused, and
775 defaults to 0 if omitted.
776
777 $info = $conn->get_node_sev_info($flags=0)
778 Get the AMD SEV information for the host. $flags is currently
779 unused and defaults to 0 if omitted. The returned hash contains the
780 following keys:
781
782 Sys::Virt::SEV_CBITPOS
783 The CBit position
784
785 Sys::Virt::SEV_CERT_CHAIN
786 The certificate chain
787
788 Sys::Virt::SEV_PDH
789 Platform diffie-hellman key
790
791 Sys::Virt::SEV_REDUCED_PHYS_BITS
792 The number of physical address bits used by SEV
793
794 Sys::Virt::SEV_MAX_GUESTS
795 Maximum number of SEV guests that can be launched
796
797 Sys::Virt::SEV_MAX_ES_GUESTS
798 Maximum number of SEV-ES guests that can be launched
799
800 $conn->node_suspend_for_duration($target, $duration, $flags=0)
801 Suspend the the host, using mode $target which is one of the NODE
802 SUSPEND constants listed later. The $duration parameter controls
803 how long the node is suspended for before waking up.
804
805 $conn->domain_event_register($callback)
806 Register a callback to received notifications of domain state
807 change events. Only a single callback can be registered with each
808 connection instance. The callback will be invoked with four
809 parameters, an instance of "Sys::Virt" for the connection, an
810 instance of "Sys::Virt::Domain" for the domain changing state, and
811 a "event" and "detail" arguments, corresponding to the event
812 constants defined in the "Sys::Virt::Domain" module. Before
813 discarding the connection object, the callback must be
814 deregistered, otherwise the connection object memory will never be
815 released in garbage collection.
816
817 $conn->domain_event_deregister()
818 Unregister a callback, allowing the connection object to be garbage
819 collected.
820
821 $callback = $conn->domain_event_register_any($dom, $eventID, $callback)
822 Register a callback to received notifications of domain events.
823 The $dom parameter can be "undef" to request events on all known
824 domains, or a specific "Sys::Virt::Domain" object to filter events.
825 The $eventID parameter is one of the EVENT ID constants described
826 later in this document. The $callback is a subroutine reference
827 that will receive the events.
828
829 All callbacks receive a "Sys::Virt" connection as the first
830 parameter and a "Sys::Virt::Domain" object indicating the domain on
831 which the event occurred as the second parameter. Subsequent
832 parameters vary according to the event type
833
834 EVENT_ID_LIFECYCLE
835 Extra "event" and "detail" parameters defining the lifecycle
836 transition that occurred.
837
838 EVENT_ID_REBOOT
839 No extra parameters
840
841 EVENT_ID_RTC_CHANGE
842 The "utcoffset" gives the offset from UTC in seconds
843
844 EVENT_ID_WATCHDOG
845 The "action" defines the action that is taken as a result of
846 the watchdog triggering. One of the WATCHDOG constants
847 described later
848
849 EVENT_ID_IO_ERROR
850 The "srcPath" is the file on the host which had the error. The
851 "devAlias" is the unique device alias from the guest
852 configuration associated with "srcPath". The "action" is the
853 action taken as a result of the error, one of the IO ERROR
854 constants described later
855
856 EVENT_ID_GRAPHICS
857 The "phase" is the stage of the connection, one of the GRAPHICS
858 PHASE constants described later. The "local" and "remote"
859 parameters follow with the details of the local and remote
860 network addresses. The "authScheme" describes how the user was
861 authenticated (if at all). Finally "identities" is an array ref
862 containing authenticated identities for the user, if any.
863
864 The return value is a unique callback ID that must be used when
865 unregistering the event.
866
867 $conn->domain_event_deregister_any($callbackID)
868 Unregister a callback, associated with the $callbackID previously
869 obtained from "domain_event_register_any".
870
871 $callback = $conn->network_event_register_any($net, $eventID,
872 $callback)
873 Register a callback to received notifications of network events.
874 The $net parameter can be "undef" to request events on all known
875 networks, or a specific "Sys::Virt::Network" object to filter
876 events. The $eventID parameter is one of the EVENT ID constants
877 described later in this document. The $callback is a subroutine
878 reference that will receive the events.
879
880 All callbacks receive a "Sys::Virt" connection as the first
881 parameter and a "Sys::Virt::Network" object indicating the network
882 on which the event occurred as the second parameter. Subsequent
883 parameters vary according to the event type
884
885 EVENT_ID_LIFECYCLE
886 Extra "event" and "detail" parameters defining the lifecycle
887 transition that occurred.
888
889 The return value is a unique callback ID that must be used when
890 unregistering the event.
891
892 $conn->network_event_deregister_any($callbackID)
893 Unregister a callback, associated with the $callbackID previously
894 obtained from "network_event_register_any".
895
896 $callback = $conn->storage_pool_event_register_any($pool, $eventID,
897 $callback)
898 Register a callback to received notifications of storage pool
899 events. The $pool parameter can be "undef" to request events on
900 all known storage pools, or a specific "Sys::Virt::StoragePool"
901 object to filter events. The $eventID parameter is one of the EVENT
902 ID constants described later in this document. The $callback is a
903 subroutine reference that will receive the events.
904
905 All callbacks receive a "Sys::Virt" connection as the first
906 parameter and a "Sys::Virt::StoragePool" object indicating the
907 storage pool on which the event occurred as the second parameter.
908 Subsequent parameters vary according to the event type
909
910 EVENT_ID_LIFECYCLE
911 Extra "event" and "detail" parameters defining the lifecycle
912 transition that occurred.
913
914 EVENT_ID_REFRESH
915 No extra parameters.
916
917 The return value is a unique callback ID that must be used when
918 unregistering the event.
919
920 $conn->storage_pool_event_deregister_any($callbackID)
921 Unregister a callback, associated with the $callbackID previously
922 obtained from "storage_pool_event_register_any".
923
924 $callback = $conn->node_device_event_register_any($dev, $eventID,
925 $callback)
926 Register a callback to received notifications of node device
927 events. The $dev parameter can be "undef" to request events on all
928 known node devices, or a specific "Sys::Virt::NodeDevice" object to
929 filter events. The $eventID parameter is one of the EVENT ID
930 constants described later in this document. The $callback is a
931 subroutine reference that will receive the events.
932
933 All callbacks receive a "Sys::Virt" connection as the first
934 parameter and a "Sys::Virt::NodeDevice" object indicating the node
935 device on which the event occurred as the second parameter.
936 Subsequent parameters vary according to the event type
937
938 EVENT_ID_LIFECYCLE
939 Extra "event" and "detail" parameters defining the lifecycle
940 transition that occurred.
941
942 The return value is a unique callback ID that must be used when
943 unregistering the event.
944
945 $conn->node_device_event_deregister_any($callbackID)
946 Unregister a callback, associated with the $callbackID previously
947 obtained from "node_device_event_register_any".
948
949 $callback = $conn->secret_event_register_any($secret, $eventID,
950 $callback)
951 Register a callback to received notifications of secret events.
952 The $secret parameter can be "undef" to request events on all known
953 secrets, or a specific "Sys::Virt::Secret" object to filter events.
954 The $eventID parameter is one of the EVENT ID constants described
955 later in this document. The $callback is a subroutine reference
956 that will receive the events.
957
958 All callbacks receive a "Sys::Virt" connection as the first
959 parameter and a "Sys::Virt::Secret" object indicating the secret on
960 which the event occurred as the second parameter. Subsequent
961 parameters vary according to the event type
962
963 EVENT_ID_LIFECYCLE
964 Extra "event" and "detail" parameters defining the lifecycle
965 transition that occurred.
966
967 EVENT_ID_VALUE_CHANGED
968 No extra parameters.
969
970 The return value is a unique callback ID that must be used when
971 unregistering the event.
972
973 $conn->secret_event_deregister_any($callbackID)
974 Unregister a callback, associated with the $callbackID previously
975 obtained from "secret_event_register_any".
976
977 $conn->register_close_callback($coderef);
978 Register a callback to be invoked when the connection is closed.
979 The callback will be invoked with two parameters, the $conn it was
980 registered against, and the reason for the close event. The reason
981 value will be one of the "CLOSE REASON CONSTANTS" listed later in
982 this document.
983
984 $conn->unregister_close_callback();
985 Remove the previously registered close callback.
986
987 my $xml = $con->baseline_cpu(\@xml, $flags=0)
988 Given an array ref whose elements are XML documents describing host
989 CPUs, compute the baseline CPU model that is operable across all
990 hosts. The XML for the baseline CPU model is returned. The optional
991 $flags parameter can take one of
992
993 Sys::Virt::BASELINE_CPU_EXPAND_FEATURES
994 Expand the CPU definition to list all feature flags, even those
995 implied by the model name.
996
997 Sys::Virt::BASELINE_CPU_MIGRATABLE
998 Only include features which can be live migrated.
999
1000 my $xml = $con->baseline_hypervisor_cpu($emulator, $arch, $machine,
1001 $virttype, \@xml, $flags=0)
1002 Given an array ref whose elements are XML documents describing host
1003 CPUs, compute the baseline CPU model that is operable across all
1004 hosts. The XML for the baseline CPU model is returned. Either
1005 $emulator or $arch must be a valid string referring to an emulator
1006 binary or an architecture name respectively. The $machine parameter
1007 is an optional name of a guest machine, and $virttype is an
1008 optional name of the virtualization type. The optional $flags
1009 parameter accepts the same values as "baseline_cpu".
1010
1011 @names = $con->get_cpu_model_names($arch, $flags=0)
1012 Get a list of valid CPU models names for the architecture given by
1013 $arch. The $arch value should be one of the architectures listed in
1014 the capabilities XML document. The $flags parameter is currently
1015 unused and defaults to 0.
1016
1017 my $info = $con->get_node_security_model()
1018 Returns a hash reference summarising the security model of the host
1019 node. There are two keys in the hash, "model" specifying the name
1020 of the security model (eg 'selinux') and "doi" specifying the
1021 'domain of interpretation' for security labels.
1022
1023 my $xml = $con->get_capabilities();
1024 Returns an XML document describing the hypervisor capabilities
1025
1026 my $xml = $con->get_domain_capabilities($emulator, $arch, $machine,
1027 $virttype, flags=0);
1028 Returns an XML document describing the capabilities of the
1029 requested guest configuration. Either $emulator or $arch must be a
1030 valid string referring to an emulator binary or an architecture
1031 name respectively. The $machine parameter is an optional name of a
1032 guest machine, and $virttype is an optional name of the
1033 virtualization type. $flags is unused and defaults to zero.
1034
1035 my $xml = $con->get_storage_pool_capabilities($flags=0);
1036 Returns an XML document describing the storage pool driver
1037 capabilities (e.g. which storage pool types are supported and so
1038 on). $flags is currently unused and defaults to zero.
1039
1040 my $result = $con->compare_cpu($xml, $flags=0);
1041 Checks whether the CPU definition in $xml is compatible with the
1042 current hypervisor connection. This can be used to determine
1043 whether it is safe to migrate a guest to this host. The returned
1044 result is one of the constants listed later The optional $flags
1045 parameter can take one of the following constants
1046
1047 Sys::Virt::COMPARE_CPU_FAIL_INCOMPATIBLE
1048 Raise a fatal error if the CPUs are not compatible, instead of
1049 just returning a special error code.
1050
1051 Sys::Virt::COMPARE_CPU_VALIDATE_XML
1052 Validate input XML document against the RNG schema.
1053
1054 my $result = $con->compare_hypervisor_cpu($emulator, $arch, $machine,
1055 $virttype, $xml, $flags=0);
1056 Checks whether the CPU definition in $xml is compatible with the
1057 current hypervisor connection. This can be used to determine
1058 whether it is safe to migrate a guest to this host. Either
1059 $emulator or $arch must be a valid string referring to an emulator
1060 binary or an architecture name respectively. The $machine parameter
1061 is an optional name of a guest machine, and $virttype is an
1062 optional name of the virtualization type. The returned result is
1063 one of the constants listed later The optional $flags parameter can
1064 take the same values as the "compare_cpu" method.
1065
1066 $mem = $con->get_node_free_memory();
1067 Returns the current free memory on the host
1068
1069 @mem = $con->get_node_cells_free_memory($start, $end);
1070 Returns the free memory on each NUMA cell between $start and $end.
1071
1072 @pages = $con->get_node_free_pages(\@pagesizes, $start, $end);
1073 Returns information about the number of pages free on each NUMA
1074 cell between $start and $end inclusive. The @pagesizes parameter
1075 should be an arrayref specifying which pages sizes information
1076 should be returned for. Information about supported page sizes is
1077 available in the capabilities XML. The returned array has an
1078 element for each NUMA cell requested. The elements are hash
1079 references with two keys, 'cell' specifies the NUMA cell number and
1080 'pages' specifies the free page information for that cell. The
1081 'pages' value is another hash reference where the keys are the page
1082 sizes and the values are the free count for that size.
1083
1084 $con->node_alloc_pages(\@pages, $start, $end, $flags=0)
1085 Allocate further huge pages for the reserved dev. The <\@pages>
1086 parameter is an array reference with one entry per page size to
1087 allocate for. Each entry is a further array reference where the
1088 first element is the page size and the second element is the page
1089 count. The same number of pages will be allocated on each NUMA node
1090 in the range $start to $end inclusive. The $flags parameter accepts
1091 two contants
1092
1093 Sys::Virt::NODE_ALLOC_PAGES_ADD
1094 The requested number of pages will be added to the existing
1095 huge page reservation.
1096
1097 Sys::Virt::NODE_ALLOC_PAGES_SET
1098 The huge page reservation will be set to exactly the requested
1099 number
1100
1102 The following sets of constants are useful when dealing with APIs in
1103 this package
1104
1105 CONNECTION
1106 When opening a connection the following constants can be used:
1107
1108 Sys::Virt::CONNECT_RO
1109 Request a read-only connection
1110
1111 Sys::Virt::CONNECT_NO_ALIASES
1112 Prevent the resolution of URI aliases
1113
1114 CREDENTIAL TYPES
1115 When providing authentication callbacks, the following constants
1116 indicate the type of credential being requested
1117
1118 Sys::Virt::CRED_AUTHNAME
1119 Identity to act as
1120
1121 Sys::Virt::CRED_USERNAME
1122 Identity to authorize as
1123
1124 Sys::Virt::CRED_CNONCE
1125 Client supplies a nonce
1126
1127 Sys::Virt::CRED_REALM
1128 Authentication realm
1129
1130 Sys::Virt::CRED_ECHOPROMPT
1131 Challenge response non-secret
1132
1133 Sys::Virt::CRED_NOECHOPROMPT
1134 Challenge response secret
1135
1136 Sys::Virt::CRED_PASSPHRASE
1137 Passphrase secret
1138
1139 Sys::Virt::CRED_LANGUAGE
1140 RFC 1766 language code
1141
1142 Sys::Virt::CRED_EXTERNAL
1143 Externally provided credential
1144
1145 IDENTITY CONSTANTS
1146 The following constants are useful to change the connection identity
1147
1148 Sys::Virt::IDENTITY_USER_NAME
1149 The process user name
1150
1151 Sys::Virt::IDENTITY_UNIX_USER_ID
1152 The process UNIX user ID
1153
1154 Sys::Virt::IDENTITY_GROUP_NAME
1155 The process group name
1156
1157 Sys::Virt::IDENTITY_UNIX_GROUP_ID
1158 The process UNIX group ID
1159
1160 Sys::Virt::IDENTITY_PROCESS_ID
1161 The process ID.
1162
1163 Sys::Virt::IDENTITY_PROCESS_TIME
1164 The process start time.
1165
1166 Sys::Virt::IDENTITY_SASL_USER_NAME
1167 The SASL authenticated user name
1168
1169 Sys::Virt::IDENTITY_X509_DISTINGUISHED_NAME
1170 The X509 certificate distinguished name for the TLS connection
1171
1172 Sys::Virt::IDENTITY_SELINUX_CONTEXT
1173 The SELinux process context
1174
1175 CPU COMPARISON CONSTANTS
1176 Sys::Virt::CPU_COMPARE_INCOMPATIBLE
1177 This host is missing one or more CPU features in the CPU
1178 description
1179
1180 Sys::Virt::CPU_COMPARE_IDENTICAL
1181 The host has an identical CPU description
1182
1183 Sys::Virt::CPU_COMPARE_SUPERSET
1184 The host offers a superset of the CPU descriptoon
1185
1186 NODE SUSPEND CONSTANTS
1187 Sys::Virt::NODE_SUSPEND_TARGET_MEM
1188 Suspends to memory (equivalent of S3 on x86 architectures)
1189
1190 Sys::Virt::NODE_SUSPEND_TARGET_DISK
1191 Suspends to disk (equivalent of S5 on x86 architectures)
1192
1193 Sys::Virt::NODE_SUSPEND_TARGET_HYBRID
1194 Suspends to memory and disk (equivalent of S3+S5 on x86
1195 architectures)
1196
1197 NODE VCPU CONSTANTS
1198 Sys::Virt::NODE_CPU_STATS_ALL_CPUS
1199 Request statistics for all CPUs
1200
1201 NODE MEMORY CONSTANTS
1202 Sys::Virt::NODE_MEMORY_STATS_ALL_CELLS
1203 Request statistics for all memory cells
1204
1205 MEMORY PARAMETERS
1206 The following constants are used to name memory parameters of the node
1207
1208 Sys::Virt::NODE_MEMORY_SHARED_FULL_SCANS
1209 How many times all mergeable areas have been scanned.
1210
1211 Sys::Virt::NODE_MEMORY_SHARED_PAGES_SHARED
1212 How many the shared memory pages are being used.
1213
1214 Sys::Virt::NODE_MEMORY_SHARED_PAGES_SHARING
1215 How many sites are sharing the pages
1216
1217 Sys::Virt::NODE_MEMORY_SHARED_PAGES_TO_SCAN
1218 How many present pages to scan before the shared memory service
1219 goes to sleep
1220
1221 Sys::Virt::NODE_MEMORY_SHARED_PAGES_UNSHARED
1222 How many pages unique but repeatedly checked for merging.
1223
1224 Sys::Virt::NODE_MEMORY_SHARED_PAGES_VOLATILE
1225 How many pages changing too fast to be placed in a tree.
1226
1227 Sys::Virt::NODE_MEMORY_SHARED_SLEEP_MILLISECS
1228 How many milliseconds the shared memory service should sleep before
1229 next scan.
1230
1231 Sys::Virt::NODE_MEMORY_SHARED_MERGE_ACROSS_NODES
1232 Whether pages can be merged across NUMA nodes
1233
1234 CLOSE REASON CONSTANTS
1235 The following constants related to the connection close callback,
1236 describe the reason for the closing of the connection.
1237
1238 Sys::Virt::CLOSE_REASON_CLIENT
1239 The client application requested the connection be closed
1240
1241 Sys::Virt::CLOSE_REASON_EOF
1242 End-of-file was encountered reading data from the connection
1243
1244 Sys::Virt::CLOSE_REASON_ERROR
1245 An I/O error was encountered reading/writing data from/to the
1246 connection
1247
1248 Sys::Virt::CLOSE_REASON_KEEPALIVE
1249 The connection keepalive timer triggered due to lack of response
1250 from the server
1251
1252 CPU STATS CONSTANTS
1253 The following constants provide the names of known CPU stats fields
1254
1255 Sys::Virt::NODE_CPU_STATS_IDLE
1256 Time spent idle
1257
1258 Sys::Virt::NODE_CPU_STATS_IOWAIT
1259 Time spent waiting for I/O to complete
1260
1261 Sys::Virt::NODE_CPU_STATS_KERNEL
1262 Time spent executing kernel code
1263
1264 Sys::Virt::NODE_CPU_STATS_USER
1265 Time spent executing user code
1266
1267 Sys::Virt::NODE_CPU_STATS_INTR
1268 Time spent processing interrupts
1269
1270 Sys::Virt::NODE_CPU_STATS_UTILIZATION
1271 Percentage utilization of the CPU.
1272
1273 MEMORY STAS CONSTANTS
1274 The following constants provide the names of known memory stats fields
1275
1276 Sys::Virt::NODE_MEMORY_STATS_BUFFERS
1277 The amount of memory consumed by I/O buffers
1278
1279 Sys::Virt::NODE_MEMORY_STATS_CACHED
1280 The amount of memory consumed by disk cache
1281
1282 Sys::Virt::NODE_MEMORY_STATS_FREE
1283 The amount of free memory
1284
1285 Sys::Virt::NODE_MEMORY_STATS_TOTAL
1286 The total amount of memory
1287
1288 IP address constants
1289 The following constants are used to interpret IP address types
1290
1291 Sys::Virt::IP_ADDR_TYPE_IPV4
1292 An IPv4 address type
1293
1294 Sys::Virt::IP_ADDR_TYPE_IPV6
1295 An IPv6 address type
1296
1298 Hopefully none, but the XS code needs to be audited to ensure it is not
1299 leaking memory.
1300
1302 Daniel P. Berrange <berrange@redhat.com>
1303
1305 Copyright (C) 2006-2009 Red Hat Copyright (C) 2006-2009 Daniel P.
1306 Berrange
1307
1309 This program is free software; you can redistribute it and/or modify it
1310 under the terms of either the GNU General Public License as published
1311 by the Free Software Foundation (either version 2 of the License, or at
1312 your option any later version), or, the Artistic License, as specified
1313 in the Perl README file.
1314
1316 Sys::Virt::Domain, Sys::Virt::Network, Sys::Virt::StoragePool,
1317 Sys::Virt::StorageVol, Sys::Virt::Error, "http://libvirt.org"
1318
1319
1320
1321perl v5.34.0 2022-01-21 Sys::Virt(3)