File Coverage

blib/lib/FusionInventory/Agent/Task/Deploy/ActionProcessor.pm
Criterion Covered Total %
statement 27 50 54.0
branch 0 16 0.0
condition 0 3 0.0
subroutine 9 11 81.8
pod 0 2 0.0
total 36 82 43.9


line stmt bran cond sub pod time code
1             package FusionInventory::Agent::Task::Deploy::ActionProcessor;
2              
3 2     2   29623786 use strict;
  2         7  
  2         100  
4 2     2   9 use warnings;
  2         7  
  2         82  
5              
6 2     2   9 use Cwd;
  2         34  
  2         203  
7 2     2   9 use English qw(-no_match_vars);
  2         2  
  2         27  
8              
9 2     2   1811 use FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Move;
  2         4  
  2         26  
10 2     2   969 use FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Copy;
  2         4  
  2         21  
11 2     2   795 use FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Mkdir;
  2         3  
  2         20  
12 2     2   801 use FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Delete;
  2         3  
  2         21  
13 2     2   810 use FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Cmd;
  2         3  
  2         29  
14              
15             sub new {
16 0     0 0   my ($class, %params) = @_;
17              
18 0 0         die "no workdir parameter" unless $params{workdir};
19              
20 0           my $self = {
21             workdir => $params{workdir}
22             };
23              
24 0           bless $self, $class;
25              
26 0           return $self;
27             }
28              
29             sub process {
30 0     0 0   my ( $self, $actionName, $params, $logger ) = @_;
31              
32 0           my $workdir = $self->{workdir};
33              
34 0 0 0       if ( ( $OSNAME ne 'MSWin32' ) && ( $actionName eq 'messageBox' ) ) {
35             return {
36 0           status => 1,
37             msg => ["not Windows: action `$actionName' ignored"]
38             };
39             }
40              
41 0           my $ret;
42 0           my $cwd = getcwd();
43 0           chdir( $workdir->{path} );
44 0 0         if ( $actionName eq 'checks' ) {
    0          
    0          
    0          
    0          
    0          
45             # not an action
46             } elsif ( $actionName eq 'move' ) {
47 0           $ret =
48             FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Move::do(
49             $params, $logger);
50             } elsif ( $actionName eq 'copy' ) {
51 0           $ret =
52             FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Copy::do(
53             $params, $logger);
54             } elsif ( $actionName eq 'mkdir' ) {
55 0           $ret =
56             FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Mkdir::do(
57             $params, $logger);
58             } elsif ( $actionName eq 'delete' ) {
59 0           $ret =
60             FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Delete::do(
61             $params, $logger);
62             } elsif ( $actionName eq 'cmd' ) {
63 0           $ret =
64             FusionInventory::Agent::Task::Deploy::ActionProcessor::Action::Cmd::do(
65             $params, $logger);
66             } else {
67 0           $logger->debug("Unknown action type: `$actionName'");
68 0           chdir($cwd);
69             return {
70 0           status => 0,
71             msg => ["unknown action `$actionName'"]
72             };
73             }
74 0           chdir($cwd);
75              
76 0           return $ret;
77             }
78              
79             1;