File Coverage

lib/Rex/Virtualization/LibVirt/list.pm
Criterion Covered Total %
statement 14 33 42.4
branch 0 10 0.0
condition n/a
subroutine 5 6 83.3
pod 0 1 0.0
total 19 50 38.0


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4              
5             package Rex::Virtualization::LibVirt::list;
6              
7 1     1   15 use v5.12.5;
  1         4  
8 1     1   6 use warnings;
  1         3  
  1         42  
9              
10             our $VERSION = '1.14.2.3'; # TRIAL VERSION
11              
12 1     1   5 use Rex::Logger;
  1         3  
  1         6  
13 1     1   20 use Rex::Helper::Run;
  1         2  
  1         70  
14              
15 1     1   7 use Data::Dumper;
  1         2  
  1         347  
16              
17             sub execute {
18 0     0 0   my ( $class, $arg1, %opt ) = @_;
19 0           my $virt_settings = Rex::Config->get("virtualization");
20             chomp( my $uri =
21 0 0         ref($virt_settings) ? $virt_settings->{connect} : i_run "virsh uri" );
22              
23 0           my @domains;
24              
25 0 0         if ( $arg1 eq "all" ) {
    0          
26 0           @domains = i_run "virsh -c $uri list --all --name", fail_ok => 1;
27 0 0         if ( $? != 0 ) {
28 0           die("Error running virsh list --all --name");
29             }
30             }
31             elsif ( $arg1 eq "running" ) {
32 0           @domains = i_run "virsh -c $uri list --name", fail_ok => 1;
33 0 0         if ( $? != 0 ) {
34 0           die("Error running virsh list --name");
35             }
36             }
37             else {
38 0           return;
39             }
40              
41 0           my @ret = ();
42 0           for my $name (@domains) {
43 0           my %data = map { my ( $key, $val ) = split( /:\s*/, $_ ); ( $key, $val ); }
  0            
  0            
44             i_run "virsh -c $uri dominfo '$name'", fail_ok => 1;
45              
46             push(
47             @ret,
48             {
49             id => $data{Id},
50             name => $data{Name},
51             status => $data{State}
52             }
53 0           );
54             }
55              
56 0           return \@ret;
57              
58             }
59              
60             1;