More Service Node support routines

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@1291 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
lissav 2008-05-06 17:22:15 +00:00
parent f17e5447db
commit e5fffdd13d

View File

@ -1524,7 +1524,6 @@ sub readSNInfo
return $rc;
}
#-----------------------------------------------------------------------------
=head3 isServiceReq
@ -1588,11 +1587,11 @@ sub isServiceReq
{
my $value = $node->{$service};
$value =~ tr/a-z/A-Z/; # convert to upper
# value 1 or yes or blank then we setup the service
# value 1 or yes or blank then we setup the service
if (($value == 1) || ($value eq "YES") || ($value eq ""))
{
$servicenodetab->close;
return 1; # found service required for the node
return 1; # found service required for the node
}
}
}
@ -1741,29 +1740,31 @@ sub create_postscripts_tar
return $::RUNCMD_RC;
}
# for AIX add an entry to the /etc/tftpaccess.ctrl file so
# we can tftp the tar file from the node
if (xCAT::Utils->isAIX())
{
my $tftpctlfile = "/etc/tftpaccess.ctl";
my $entry = "allow:/install/autoinst/xcatpost.tar.gz";
# for AIX add an entry to the /etc/tftpaccess.ctrl file so
# we can tftp the tar file from the node
if (xCAT::Utils->isAIX()) {
my $tftpctlfile = "/etc/tftpaccess.ctl";
my $entry = "allow:/install/autoinst/xcatpost.tar.gz";
# see if there is already an entry
my $cmd = "cat $tftpctlfile | grep xcatpost";
my @result = xCAT::Utils->runcmd("$cmd", -1);
if ($::RUNCMD_RC != 0)
{
# see if there is already an entry
my $cmd = "cat $tftpctlfile | grep xcatpost";
my @result = xCAT::Utils->runcmd("$cmd", -1);
if ($::RUNCMD_RC != 0)
{
# not found so add it
unless (open(TFTPFILE, ">>$tftpctlfile")) {
xCAT::MsgUtils->message("S", "Could not open $tftpctlfile.\n");
return $::RUNCMD_RC;
}
# not found so add it
unless (open(TFTPFILE, ">>$tftpctlfile"))
{
xCAT::MsgUtils->message("S", "Could not open $tftpctlfile.\n");
return $::RUNCMD_RC;
}
print TFTPFILE $entry;
print TFTPFILE $entry;
close (TFTPFILE);
}
}
close(TFTPFILE);
}
}
return 0;
}
@ -2046,7 +2047,6 @@ sub toIP
return ([0, inet_ntoa($packed_ip)]);
}
#-----------------------------------------------------------------------------
=head3 isSN
@ -2185,4 +2185,69 @@ sub getSNandNodes
$sn = xCAT::Utils->get_ServiceNode(\@nodes, "xcat", "MN");
return $sn;
}
#-----------------------------------------------------------------------------
=head3 getSNList
Reads the servicenode table. Will return all the enalbed Service Nodes
that will setup the input Service ( e.g tftpserver,nameserver,etc)
If service is blank, then will return the list of all enabled Service
Nodes.
Arguments:
Servicename ( xcat,tftpserver,dhcpserver,conserver,etc)
Returns:
Array of service node names
Globals:
none
Error:
1 - error
Example:
$sn= xCAT::Utils->getSNList($servicename) { blah; }
$sn= xCAT::Utils->getSNList() { blah; }
Comments:
none
=cut
#-----------------------------------------------------------------------------
sub getSNList
{
my ($class, $service) = @_;
# reads all nodes from the service node table
my @servicenodes;
my $servicenodetab = xCAT::Table->new('servicenode');
unless ($servicenodetab) # no servicenode table
{
xCAT::MsgUtils->message('I', "Unable to open servicenode table.\n");
return 0;
}
my @attribs = ("node",$service);
@nodes = $servicenodetab->getAllAttribs(@attribs);
$servicenodetab->close;
foreach my $node (@nodes)
{
if ($service eq "") # want all the service nodes
{
push @servicenodes, $node->{node};
}
else
{ # looking for a particular service
my $value = $node->{$service};
$value =~ tr/a-z/A-Z/; # convert to upper
# value 1 or yes or blank then we setup the service
if (($value == 1) || ($value eq "YES") || ($value eq ""))
{
push @servicenodes, $node->{node};
}
}
}
return @servicenodes;
}
1;