my ($node_ref,$error_ref)=get_node();
my @nodes=@$node_ref;
my @errorlist=@$error_ref;
####
return(\@serverlist, \@errorlist);
##
##
sub main {
my $path = 'E:/scripts/OutageNodes/';
require $path.'omwNodeDetails.pm';
open_log($path.'maintenanceMode_');
my $mode=get_mode();
my ($node_ref,$error_ref)=get_node();
my @nodes=@$node_ref;
my @errorlist=@$error_ref;
if( $mode eq 'enable'){
enable_unplanned_outage(@nodes);
}
elsif($mode eq 'disable'){
disable_unplanned_outage(@nodes);
}
else {
printLog("Error invalid Mode $mode");
}
printLog("There were ".scalar @errorlist." failed servers out of ".scalar @nodes." in serverlist");
# clear serverlist
printLog ("Truncating serverlist");
open( SRV,'>',$path.'serverlist.txt')
or die "Can't open SRV '$path.serverlist': $!";
close SRV;
close_log();
}
##
##
sub get_node {
my @errorlist=();
my $sPath='e:/scripts/OutageNodes/';
my $sInFile=$sPath.'serverlist.txt';
my @sContent=();
my $sText;
##checks if the file exists and pulls the info out
if (-e $sInFile){
open INFILE, '<', $sInFile or die "Could not open $sInFile : $!";
while (){
chomp;
$sText="$_";
push @sContent,$sText;
}
close INFILE;
}
else {
printLog("ERROR Cannot open $sInFile");
}
# check serverlist had entries
if (@sContent == 0){
printLog("ERROR No nodes found in serverlist.txt");
close_log();
exit;
}
#get FQDN************
my $hostname;
my $fqdn;
my @serverlist;
for my $NODE (@sContent){
($hostname) = split /\./, $NODE;
$fqdn = getNodeAttributes($hostname,'PrimaryNodeName');
if(length($fqdn) < 1)
{
printLog("No value returned from WMI, node ($NODE) doesn't exists in OMW.");
push @errorlist,$fqdn;
next;
}
else {
push(@serverlist,$fqdn);
}
}
return(\@serverlist, \@errorlist);
}