File Coverage

lib/Rex/Service/SunOS/svcadm.pm
Criterion Covered Total %
statement 17 43 39.5
branch 0 8 0.0
condition 0 6 0.0
subroutine 6 10 60.0
pod 0 4 0.0
total 23 71 32.3


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4              
5             package Rex::Service::SunOS::svcadm;
6              
7 1     1   16 use v5.12.5;
  1         4  
8 1     1   5 use warnings;
  1         3  
  1         56  
9              
10             our $VERSION = '1.14.2.2'; # TRIAL VERSION
11              
12 1     1   7 use Rex::Helper::Run;
  1         3  
  1         59  
13 1     1   17 use Rex::Logger;
  1         3  
  1         13  
14 1     1   36 use Rex::Commands::Fs;
  1         7  
  1         7  
15              
16 1     1   8 use base qw(Rex::Service::Base);
  1         3  
  1         509  
17              
18             sub new {
19 0     0 0   my $that = shift;
20 0   0       my $proto = ref($that) || $that;
21 0           my $self = $proto->SUPER::new(@_);
22              
23 0           bless( $self, $proto );
24              
25             $self->{commands} = {
26 0           start => 'svcadm enable %s >/dev/null',
27             restart => 'svcadm restart %s >/dev/null',
28             stop => 'svcadm disable %s >/dev/null',
29             reload => 'svcadm refresh %s >/dev/null',
30             };
31              
32 0           return $self;
33             }
34              
35             sub status {
36 0     0 0   my ( $self, $service, $options ) = @_;
37              
38 0           my ($state) = map { /state\s+([a-z]+)/ } eval { i_run "svcs -l $service"; };
  0            
  0            
39              
40 0 0         if ( $state eq "online" ) {
41 0           return 1;
42             }
43              
44 0           return 0;
45             }
46              
47             sub ensure {
48 0     0 0   my ( $self, $service, $options ) = @_;
49              
50 0           my $what = $options->{ensure};
51              
52 0 0 0       if ( $what =~ /^stop/ ) {
    0          
53 0           $self->stop( $service, $options );
54             }
55             elsif ( $what =~ /^start/ || $what =~ m/^run/ ) {
56 0           $self->start( $service, $options );
57             }
58              
59 0           return 1;
60             }
61              
62             sub action {
63 0     0 0   my ( $self, $service, $action ) = @_;
64              
65 0           my $ret_val;
66             eval {
67 0           i_run "svcadm $action $service >/dev/null", nohup => 1;
68 0           $ret_val = 1;
69 0 0         } or do {
70 0           $ret_val = 0;
71             };
72              
73 0           return $ret_val;
74             }
75              
76             1;