File Coverage

blib/lib/Podman/System.pm
Criterion Covered Total %
statement 31 34 91.1
branch 5 10 50.0
condition n/a
subroutine 6 7 85.7
pod 4 4 100.0
total 46 55 83.6


line stmt bran cond sub pod time code
1             package Podman::System;
2              
3 2     2   548124 use Mojo::Base 'Podman::Client';
  2         15  
  2         11  
4              
5 2     2   180 use List::Util qw(sum);
  2         3  
  2         105  
6 2     2   10 use Scalar::Util qw(blessed);
  2         3  
  2         893  
7              
8             sub disk_usage {
9 1     1 1 2517 my $self = shift;
10              
11 1 50       6 $self = __PACKAGE__->new unless blessed($self);
12              
13 1         5 my $data = $self->get('system/df')->json;
14              
15 1         536 my %disk_usage;
16 1         3 for my $type (qw(Volumes Containers Images)) {
17 3         5 my @data = @{$data->{$type}};
  3         6  
18             my %entry = (
19             Total => scalar @data,
20 4 100       13 Active => sum(map { $_->{Containers} ? 1 : 0 } @data),
21 3         7 Size => sum(map { $_->{Size} } @data),
  4         10  
22             );
23 3         7 $disk_usage{$type} = \%entry;
24             }
25              
26 1         9 return \%disk_usage;
27             }
28              
29             sub info {
30 1     1 1 1582 my $self = shift;
31              
32 1 50       6 $self = __PACKAGE__->new unless blessed($self);
33              
34 1         5 return $self->get('info')->json;
35             }
36              
37             sub version {
38 1     1 1 25611 my $self = shift;
39              
40 1 50       41 $self = __PACKAGE__->new unless blessed($self);
41              
42 1         67 my $data = $self->get('info')->json;
43              
44 1         568 my $version = $data->{version};
45 1         9 delete $version->{GitCommit};
46 1         2 delete $version->{Built};
47              
48 1         6 return $version;
49             }
50              
51             sub prune {
52 0     0 1   my $self = shift;
53              
54 0 0         $self = __PACKAGE__->new unless blessed($self);
55              
56 0           return $self->post('system/prune')->json;
57             }
58              
59             1;
60              
61             __END__