File Coverage

blib/lib/Xpriori/XMS/ServerUtil.pm
Criterion Covered Total %
statement 9 45 20.0
branch 0 14 0.0
condition n/a
subroutine 3 8 37.5
pod 4 4 100.0
total 16 71 22.5


line stmt bran cond sub pod time code
1 1     1   1109 use strict;
  1         2  
  1         47  
2             package Xpriori::XMS::ServerUtil;
3 1     1   6 use Xpriori::XMS::Config;
  1         2  
  1         17  
4 1     1   5 use Cwd;
  1         2  
  1         565  
5              
6             #---------------------------------------------------------------------
7             # new : constructor
8             #---------------------------------------------------------------------
9             sub new($;$)
10             {
11 0     0 1   my($sClass,%hPrmW) = @_;
12 0           my %hConf = %Xpriori::XMS::Config::_svrCnf;
13 0           while(my($sKey, $sVal) = each(%hPrmW))
14             {
15 0           $hConf{$sKey} = $sVal;
16             }
17 0           $hConf{_OSMODULE} = _getOsModule($hConf{'OSMODULE'});
18 0           return bless \%hConf, $sClass;
19             }
20             #---------------------------------------------------------------------
21             # LOAD OS-depend module
22             #---------------------------------------------------------------------
23             sub _getOsModule($)
24             {
25 0     0     my($sMod) = @_;
26 0 0         if($sMod)
27             {
28 0           require("Xpriori/XMS/ServerUtil/${sMod}.pm");
29 0           my $oMod;
30 0           eval('$oMod = new Xpriori::XMS::ServerUtil::' . $sMod . ';');
31 0 0         return $oMod if($oMod);
32 0           die('Cannot load Module for ' . $sMod);
33             }
34             else
35             {
36 0           die('Cannot get Module for ' . $sMod);
37             }
38             }
39             #---------------------------------------------------------------------
40             # Start Server
41             #---------------------------------------------------------------------
42             sub startServer
43             {
44 0     0 1   my($oSelf) = @_;
45 0           my $oMod = $oSelf->{_OSMODULE};
46 0           my $iSts = $oMod->getStatus();
47 0 0         return -1 if($iSts); #if running
48 0           return $oMod->startServer();
49             }
50             #---------------------------------------------------------------------
51             # Stop Server
52             #---------------------------------------------------------------------
53             sub stopServer
54             {
55 0     0 1   my($oSelf) = @_;
56 0           my $oMod = $oSelf->{_OSMODULE};
57 0           my $iSts = $oMod->getStatus();
58 0 0         return -1 unless($iSts); #if not running
59 0           return $oMod->stopServer();
60             }
61             #---------------------------------------------------------------------
62             # Create DB
63             #---------------------------------------------------------------------
64             sub createDb
65             {
66 0     0 1   my($oSelf) = @_;
67 0           my $oMod = $oSelf->{_OSMODULE};
68              
69             #1. Stop
70 0           $oMod->stopServer();
71 0           sleep 5;
72             #2. DELETE old files
73             #delete Files $NEOHOME/log/*.log, $NEOHOME/db/*
74 0           my $sNeoHome = $oSelf->{NEOHOME};
75 0           my $currDir = getcwd();
76 0 0         chdir $sNeoHome || die "Cannot cd to $sNeoHome: $!\n";
77 0           foreach my $sFile ()
78             {
79 0 0         unlink($sFile) || die("Cannot delete $sFile: $!");
80             }
81 0 0         chdir $currDir || die "Cannot cd to $currDir: $!";
82             #3. Create Database
83 0           $oMod->createDb($sNeoHome, $oSelf->{PASSWORD});
84             #4. Start Server
85 0           return $oMod->startServer();
86             }
87             1;
88             __END__