File Coverage

blib/lib/Protocol/Sys/Virt.pm
Criterion Covered Total %
statement 5 5 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 7 7 100.0


line stmt bran cond sub pod time code
1              
2 1     1   213751 use v5.14;
  1         3  
3 1     1   5 use warnings;
  1         2  
  1         84  
4              
5             package Protocol::Sys::Virt v12.1.0;
6              
7             1;
8              
9             =head1 NAME
10              
11             Protocol::Sys::Virt - Abstract LibVirt protocol implementation
12              
13             =head1 VERSION
14              
15             v12.1.0
16              
17             Based on LibVirt tag v12.1.0
18              
19             =head2 Version numbering
20              
21             The first two numbers follow the L release
22             numbering (and thus API version); the last digit indicates the sequence number
23             of releases of this library.
24              
25             =head1 SYNOPSIS
26              
27             =head1 DESCRIPTION
28              
29             This distribution implements the mechanics of the L
30             protocol. With it, client and server components can be built, although it's
31             unlikely anyone would want to build a LibVirt compatible server.
32              
33             Rationale behind the creation of this distribution is that it allows for the
34             imlpementation of a truely asynchronous interface to LibVirt; a property
35             L doesn't have, even when using its event loop integration. After
36             having implemented L, the invocations to the methods in
37             C turned out to be blocking regardless. The LibVirt
38             development team explained this is by design. The solution in e.g. Python is
39             to use threading (the same solution as used with Python): the underlying
40             protocol and handling on the server is asynchronous, but the API calls are not.
41             Unfortunately, in Perl, threading isn't a viable option: first of all because
42             using Perl threads is highly discouraged, but more so because each thread
43             creates its own Perl interpreter with its own copies of all variables -- a
44             clear difference with Python, where a single interpreter is used for all
45             threads, sharing variables and values.
46              
47             =head1 API Guarantees
48              
49             The LibVirt project describes the stability guarantees of the protocol
50             at L.
51              
52             =head1 TODO
53              
54             =over 8
55              
56             =item * Write documentation
57              
58             =back
59              
60             =head1 AUTHOR
61              
62             =over 8
63              
64             =item * Erik Huelsmann C<< >>
65              
66             =back
67              
68             =head1 SEE ALSO
69              
70             L, L
71              
72             =head1 LICENSE AND COPYRIGHT
73              
74             See the LICENSE file in this distribution.
75              
76             =head1 DISCLAIMER OF WARRANTY
77              
78             BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
79             THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
80             STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
81             SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
82             INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
83             FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
84             PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE,
85             YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
86              
87             IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY
88             COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
89             SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES,
90             INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
91             OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO
92             LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
93             THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE),
94             EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
95             DAMAGES.
96