- fixed xdsh -K again by making Client.pm always require xCAT::NodeRange
- removed many of the v options on the tar cmds to build are not as verbose - removed an extra fi in xcat.spec %post git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@984 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
fb37227ab5
commit
b754e3eced
@ -7,7 +7,7 @@ then
|
||||
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/xCAT-client-2.0.tar xCAT-client-2.0
|
||||
gzip /opt/freeware/src/packages/SOURCES/xCAT-client-2.0.tar
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/xCAT-client-2.0.tar
|
||||
cd ./xCAT-client-2.0
|
||||
rm -f /opt/freeware/src/packages/SRPMS/xCAT-client-2.0*rpm /opt/freeware/src/packages/RPMS/ppc/xCAT-client-2.0*rpm
|
||||
rpm -ba xCAT-client.spec
|
||||
|
@ -7,7 +7,7 @@ then
|
||||
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/perl-xCAT-2.0.tar perl-xCAT-2.0
|
||||
gzip /opt/freeware/src/packages/SOURCES/perl-xCAT-2.0.tar
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/perl-xCAT-2.0.tar
|
||||
cd ./perl-xCAT-2.0
|
||||
rm -f /opt/freeware/src/packages/SRPMS/perl-xCAT-2.0*rpm /opt/freeware/src/packages/RPMS/ppc/perl-xCAT-2.0*rpm
|
||||
rpm -ba perl-xCAT.spec
|
||||
|
@ -10,7 +10,7 @@ then
|
||||
rm -f /opt/freeware/src/packages/SRPMS/xCAT-rmc*rpm /opt/freeware/src/packages/RPMS/ppc/xCAT-rmc*rpm
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
tar -X /tmp/xcat-excludes -cf xCAT-rmc-$version.tar xCAT-rmc-$version
|
||||
gzip /opt/freeware/src/packages/SOURCES/xCAT-rmc-$version.tar
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/xCAT-rmc-$version.tar
|
||||
cd $source/xCAT-rmc
|
||||
rpm -ba xCAT-rmc.spec
|
||||
#rpm -Uvh /opt/freeware/src/packages/RPMS/ppc/xCAT-rmc*rpm
|
||||
|
@ -7,7 +7,7 @@ then
|
||||
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/xCAT-server-2.0.tar xCAT-server-2.0
|
||||
gzip /opt/freeware/src/packages/SOURCES/xCAT-server-2.0.tar
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/xCAT-server-2.0.tar
|
||||
cd ./xCAT-server-2.0
|
||||
rm -f /opt/freeware/src/packages/SRPMS/xCAT-server-2.0*rpm /opt/freeware/src/packages/RPMS/ppc/xCAT-server-2.0*rpm
|
||||
rpm -ba xCAT-server.spec
|
||||
|
@ -7,7 +7,7 @@ if [ "$OSNAME" = "AIX" ]
|
||||
then
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/xCAT-web.tar xCAT-web
|
||||
gzip /opt/freeware/src/packages/SOURCES/xCAT-web.tar
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/xCAT-web.tar
|
||||
cd ./xCAT-web
|
||||
rm -f /opt/freeware/src/packages/SRPMS/xCAT-web*rpm /opt/freeware/src/packages/RPMS/ppc/xCAT-web*rpm
|
||||
rpm -ba xCAT-web.spec
|
||||
|
@ -4,17 +4,11 @@ package xCAT::Client;
|
||||
BEGIN
|
||||
{
|
||||
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr';
|
||||
require lib;
|
||||
lib->import("$::XCATROOT/lib/perl");
|
||||
if ($ENV{XCATBYPASS}) {
|
||||
require xCAT::NodeRange;
|
||||
xCAT::NodeRange->import;
|
||||
require xCAT::Utils;
|
||||
xCAT::Utils->import;
|
||||
require xCAT::Table;
|
||||
xCAT::Table->import;
|
||||
}
|
||||
}
|
||||
use lib "$::XCATROOT/lib/perl";
|
||||
require xCAT::NodeRange;
|
||||
require xCAT::Utils;
|
||||
require xCAT::Table;
|
||||
|
||||
my $inet6support;
|
||||
use IO::Socket::SSL;
|
||||
@ -32,7 +26,7 @@ unless ($inet6support) {
|
||||
|
||||
use XML::Simple;
|
||||
$XML::Simple::PREFERRED_PARSER='XML::Parser';
|
||||
use Data::Dumper;
|
||||
require Data::Dumper;
|
||||
use Storable qw(dclone);
|
||||
my $xcathost='localhost:3001';
|
||||
my $plugins_dir;
|
||||
@ -219,10 +213,10 @@ sub plugin_command {
|
||||
if ($req->{node}) {
|
||||
@nodes = @{$req->{node}};
|
||||
} elsif ($req->{noderange}) {
|
||||
@nodes = noderange($req->{noderange}->[0]);
|
||||
if (nodesmissed) {
|
||||
# my $rsp = {errorcode=>1,error=>"Invalid nodes in noderange:".join(',',nodesmissed)};
|
||||
print "Invalid nodes in noderange:".join(',',nodesmissed)."\n";
|
||||
@nodes = xCAT::NodeRange::noderange($req->{noderange}->[0]);
|
||||
if (xCAT::NodeRange::nodesmissed()) {
|
||||
# my $rsp = {errorcode=>1,error=>"Invalid nodes in noderange:".join(',',xCAT::NodeRange::nodesmissed)};
|
||||
print "Invalid nodes in noderangex:".join(',',xCAT::NodeRange::nodesmissed())."\n";
|
||||
# if ($sock) {
|
||||
# print $sock XMLout($rsp,RootName=>'xcatresponse' ,NoAttr=>1);
|
||||
# }
|
||||
@ -372,10 +366,10 @@ sub do_request {
|
||||
if ($cmd_handlers{$req->{command}->[0]}) {
|
||||
return plugin_command($req,$sock,$rsphandler);
|
||||
} elsif ($req->{command}->[0] eq "noderange" and $req->{noderange}) {
|
||||
my @nodes = noderange($req->{noderange}->[0]);
|
||||
my @nodes = xCAT::NodeRange::noderange($req->{noderange}->[0]);
|
||||
my %resp;
|
||||
if (nodesmissed) {
|
||||
$resp{warning}="Invalid nodes in noderange:".join ',',nodesmissed ."\n";
|
||||
if (xCAT::NodeRange::nodesmissed()) {
|
||||
$resp{warning}="Invalid nodes in noderange:".join ',',xCAT::NodeRange::nodesmissed() ."\n";
|
||||
}
|
||||
$resp{serverdone} = {};
|
||||
@{$resp{node}}=@nodes;
|
||||
|
@ -1,7 +1,7 @@
|
||||
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
package xCAT::NodeRange;
|
||||
use xCAT::Table;
|
||||
use Data::Dumper;
|
||||
require xCAT::Table;
|
||||
require Data::Dumper;
|
||||
require Exporter;
|
||||
use strict;
|
||||
|
||||
|
@ -8,8 +8,8 @@ BEGIN
|
||||
use lib "$::XCATROOT/lib/perl";
|
||||
|
||||
use File::Basename qw(fileparse);
|
||||
use xCAT::Utils;
|
||||
use Data::Dumper;
|
||||
require xCAT::Utils;
|
||||
require Data::Dumper;
|
||||
|
||||
#%notif is a cache that holds the info from the "notification" table.
|
||||
#the format of it is:
|
||||
@ -33,13 +33,13 @@ $masterpid;
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
=head3 setup
|
||||
=head3 setup
|
||||
It is called by xcatd to get set the pid of the parent of all this object.
|
||||
Setup the signal to trap any changes in the notification table. It also
|
||||
initializes the cache with the current data in the notification table.
|
||||
table and store it into %notif variable.
|
||||
Arguments:
|
||||
pid -- the process id of the caller.
|
||||
pid -- the process id of the caller.
|
||||
Returns:
|
||||
none
|
||||
=cut
|
||||
@ -51,7 +51,7 @@ sub setup
|
||||
$masterpid=shift;
|
||||
}
|
||||
refreshNotification();
|
||||
|
||||
|
||||
$SIG{USR1}=\&handleNotifSignal;
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ sub notify {
|
||||
my ($modname, $path, $suffix) = fileparse($_, ".pm");
|
||||
# print "modname=$modname, path=$path, suffix=$suffix\n";
|
||||
if ($suffix =~ /.pm/) { #it is a perl module
|
||||
my $pid;
|
||||
my $pid;
|
||||
if ($pid=xCAT::Utils->xfork()) { }
|
||||
elsif (defined($pid)) {
|
||||
my $fname;
|
||||
@ -309,8 +309,8 @@ sub notify {
|
||||
$fname = $_;
|
||||
}
|
||||
eval {require($fname)};
|
||||
if ($@) {
|
||||
print "The file $fname cannot be located or has compiling errors.\n";
|
||||
if ($@) {
|
||||
print "The file $fname cannot be located or has compiling errors.\n";
|
||||
}
|
||||
else {
|
||||
${"xCAT_monitoring::".$modname."::"}{processTableChanges}->($action, $tablename, $old_data, $new_data);
|
||||
|
@ -288,9 +288,9 @@ osimage => {
|
||||
passwd => {
|
||||
cols => [qw(key username password comments disable)],
|
||||
keys => [qw(key)],
|
||||
table_desc => 'Contains default userids and passwords for xCAT to access cluster components. Userids/passwords for specific cluster components can be overidden in other tables, e.g. mpa, ipmi, ppchcp, etc.',
|
||||
table_desc => 'Contains default userids and passwords for xCAT to access cluster components. In most cases, xCAT will also actually set the userid/password in the relevant component when it is being configured or installed. Userids/passwords for specific cluster components can be overidden in other tables, e.g. mpa, ipmi, ppchcp, etc.',
|
||||
descriptions => {
|
||||
key => 'The type of component this user/pw is for. Valid values: blade (management module), ipmi (BMC), system (nodes??), omapi (DHCP), hmc, ivm, fsp.',
|
||||
key => 'The type of component this user/pw is for. Valid values: blade (management module), ipmi (BMC), system (nodes), omapi (DHCP), hmc, ivm, fsp.',
|
||||
username => 'The default userid for this type of component',
|
||||
password => 'The default password for this type of component',
|
||||
comments => 'Any user-written notes.',
|
||||
|
@ -17,12 +17,12 @@ use lib "$::XCATROOT/lib/perl";
|
||||
use DBI;
|
||||
|
||||
#use strict;
|
||||
use Data::Dumper;
|
||||
require Data::Dumper;
|
||||
use Scalar::Util qw/weaken/;
|
||||
use xCAT::Schema;
|
||||
use xCAT::NodeRange;
|
||||
require xCAT::Schema;
|
||||
require xCAT::NodeRange;
|
||||
use Text::Balanced qw(extract_bracketed);
|
||||
use xCAT::NotifHandler;
|
||||
require xCAT::NotifHandler;
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
|
||||
@ -963,7 +963,7 @@ sub getNodeAttribs
|
||||
$answval =~ s/$parts[0]/$retval/;
|
||||
$datum->{$attrib} = $answval; #$retval;
|
||||
|
||||
#print Dumper(extract_bracketed($parts[1],'()',qr/[^()]*/));
|
||||
#print Data::Dumper::Dumper(extract_bracketed($parts[1],'()',qr/[^()]*/));
|
||||
#use text::balanced extract_bracketed to parse earch atom, make sure nothing but arith operators, parans, and numbers are in it to guard against code execution
|
||||
}
|
||||
}
|
||||
@ -1244,7 +1244,7 @@ sub getAllNodeAttribs
|
||||
unless ($data->{node} =~ /^$/ || !defined($data->{node}))
|
||||
{ #ignore records without node attrib, not possible?
|
||||
my @nodes =
|
||||
noderange($data->{node})
|
||||
xCAT::NodeRange::noderange($data->{node})
|
||||
; #expand node entry, to make groups expand
|
||||
foreach (@nodes)
|
||||
{
|
||||
|
@ -1,13 +1,13 @@
|
||||
#!/usr/bin/env perl
|
||||
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
package xCAT::Utils;
|
||||
use xCAT::Table;
|
||||
require xCAT::Table;
|
||||
use POSIX qw(ceil);
|
||||
use Socket;
|
||||
use xCAT::Schema;
|
||||
use Data::Dumper;
|
||||
use xCAT::NodeRange;
|
||||
use DBI;
|
||||
require xCAT::Schema;
|
||||
require Data::Dumper;
|
||||
require xCAT::NodeRange;
|
||||
require DBI;
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
|
||||
@ -168,7 +168,7 @@ sub isLinux
|
||||
|
||||
=head3 make_node_list_file
|
||||
|
||||
Makes a node list file.
|
||||
Makes a node list file.
|
||||
|
||||
Arguments:
|
||||
(\@list_of_nodes) - reference to an arrary of nodes.
|
||||
@ -179,7 +179,7 @@ sub isLinux
|
||||
Error:
|
||||
None documented
|
||||
Example:
|
||||
xCAT::Utils->make_node_list_file(\@nodelist);
|
||||
xCAT::Utils->make_node_list_file(\@nodelist);
|
||||
|
||||
Comments:
|
||||
IMPORTANT:
|
||||
@ -245,13 +245,13 @@ for ($nI = 0 ; $nI < 8 ; $nI++)
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
close_delete_file.
|
||||
|
||||
Arguments:
|
||||
file handle,filename
|
||||
Returns:
|
||||
none
|
||||
none
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
@ -274,13 +274,13 @@ sub close_delete_file
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
list_all_nodes
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Returns:
|
||||
an array of all define nodes from the nodelist table
|
||||
an array of all define nodes from the nodelist table
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
@ -316,13 +316,13 @@ sub list_all_nodes
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
list_all_nodegroups
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Returns:
|
||||
an array of all define node groups from the nodelist table
|
||||
an array of all define node groups from the nodelist table
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
@ -369,13 +369,13 @@ sub list_all_node_groups
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
list_nodes_in_nodegroup
|
||||
|
||||
Arguments: nodegroup
|
||||
|
||||
|
||||
Returns:
|
||||
an array of all define nodes in the node group
|
||||
an array of all define nodes in the node group
|
||||
|
||||
Globals:
|
||||
none
|
||||
@ -393,19 +393,19 @@ sub list_nodes_in_nodegroups
|
||||
{
|
||||
my ($class, $group) = @_;
|
||||
$req->{noderange}->[0] = $group;
|
||||
my @nodes = noderange($req->{noderange}->[0]);
|
||||
my @nodes = xCAT::NodeRange::noderange($req->{noderange}->[0]);
|
||||
return @nodes;
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
get_site_attribute
|
||||
=head3
|
||||
get_site_attribute
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Returns:
|
||||
The value of the attribute requested from the site table
|
||||
The value of the attribute requested from the site table
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
@ -443,11 +443,11 @@ sub get_site_attribute
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
add_cron_job
|
||||
This function adds a new cron job.
|
||||
Arguments:
|
||||
job--- string in the crontab job format.
|
||||
job--- string in the crontab job format.
|
||||
Returns:
|
||||
(code, message)
|
||||
Globals:
|
||||
@ -501,12 +501,12 @@ sub add_cron_job
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
=head3
|
||||
=head3
|
||||
remove_cron_job
|
||||
This function removes a new cron job.
|
||||
Arguments:
|
||||
job--- a substring that is contained in a crontab entry.
|
||||
(use crontab -l to see all the job entries.)
|
||||
job--- a substring that is contained in a crontab entry.
|
||||
(use crontab -l to see all the job entries.)
|
||||
Returns:
|
||||
(code, message)
|
||||
Globals:
|
||||
@ -562,7 +562,7 @@ sub remove_cron_job
|
||||
|
||||
=head3 runcmd
|
||||
Run the given cmd and return the output in an array (already chopped).
|
||||
Alternately, if this function is used in a scalar context, the output
|
||||
Alternately, if this function is used in a scalar context, the output
|
||||
is joined into a single string with the newlines separating the lines.
|
||||
|
||||
Arguments:
|
||||
@ -570,7 +570,7 @@ sub remove_cron_job
|
||||
Returns:
|
||||
see below
|
||||
Globals:
|
||||
$::RUNCMD_RC , $::CALLBACK
|
||||
$::RUNCMD_RC , $::CALLBACK
|
||||
Error:
|
||||
Normally, if there is an error running the cmd,it will display the
|
||||
error and exit with the cmds exit code, unless exitcode
|
||||
@ -713,18 +713,18 @@ sub getHomeDir
|
||||
|
||||
#--------------------------------------------------------------------------------
|
||||
|
||||
=head3 setupSSH
|
||||
=head3 setupSSH
|
||||
|
||||
Transfers the ssh keys to setup ssh to the input nodes.
|
||||
|
||||
Arguments:
|
||||
Array of nodes
|
||||
Array of nodes
|
||||
Returns:
|
||||
|
||||
|
||||
Globals:
|
||||
$::XCATROOT , $::CALLBACK
|
||||
$::XCATROOT , $::CALLBACK
|
||||
Error:
|
||||
0=good, 1=error
|
||||
0=good, 1=error
|
||||
Example:
|
||||
xCAT::Utils->setupSSH(@target_nodes);
|
||||
Comments:
|
||||
@ -765,7 +765,7 @@ sub setupSSH
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{ # error
|
||||
my %rsp;
|
||||
$rsp->{data}->[0] = "remoteshell.expect failed generating keys.\n";
|
||||
$rsp->{data}->[0] = "remoteshell.expect failed generating keys.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
|
||||
}
|
||||
@ -793,7 +793,7 @@ umask(0077);
|
||||
if (! -d \"\$dest_dir\" ) {
|
||||
# create a local directory
|
||||
\$cmd = \"mkdir -p \$dest_dir\";
|
||||
system(\"\$cmd\");
|
||||
system(\"\$cmd\");
|
||||
chmod 0700, \$dest_dir;
|
||||
}
|
||||
`cat /tmp/.ssh/authorized_keys >> \$home/.ssh/authorized_keys 2>&1`;
|
||||
@ -821,7 +821,7 @@ rmdir(\"/tmp/.ssh\");";
|
||||
if ($rc)
|
||||
{
|
||||
my %rsp;
|
||||
$rsp->{data}->[0] = "remoteshell.expect failed sending keys.\n";
|
||||
$rsp->{data}->[0] = "remoteshell.expect failed sending keys.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
|
||||
}
|
||||
@ -847,14 +847,14 @@ rmdir(\"/tmp/.ssh\");";
|
||||
my $nstring = join ',', @badnodes;
|
||||
my %rsp;
|
||||
$rsp->{data}->[0] =
|
||||
"SSH setup failed for the following nodes: $nstring.\n";
|
||||
"SSH setup failed for the following nodes: $nstring.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $::CALLBACK);
|
||||
return @badnodes;
|
||||
}
|
||||
else
|
||||
{
|
||||
my %rsp;
|
||||
$rsp->{data}->[0] = "$::REMOTE_SHELL setup is complete.\n";
|
||||
$rsp->{data}->[0] = "$::REMOTE_SHELL setup is complete.";
|
||||
xCAT::MsgUtils->message("I", $rsp, $::CALLBACK);
|
||||
return 0;
|
||||
}
|
||||
@ -868,11 +868,11 @@ rmdir(\"/tmp/.ssh\");";
|
||||
/install/postscripts/.ssh.
|
||||
|
||||
Arguments:
|
||||
directory path
|
||||
directory path
|
||||
Returns:
|
||||
|
||||
|
||||
Globals:
|
||||
$::CALLBACK
|
||||
$::CALLBACK
|
||||
Error:
|
||||
|
||||
Example:
|
||||
@ -975,20 +975,20 @@ sub cpSSHFiles
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 isServiceNode
|
||||
checks for the /etc/xCATSN file
|
||||
|
||||
checks for the /etc/xCATSN file
|
||||
|
||||
Arguments:
|
||||
none
|
||||
Returns:
|
||||
1 - localHost is ServiceNode
|
||||
0 - localHost is not ServiceNode
|
||||
1 - localHost is ServiceNode
|
||||
0 - localHost is not ServiceNode
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
none
|
||||
Example:
|
||||
%::XCATMasterPort defined in the caller.
|
||||
$return=(xCAT::Utils->isServiceNode())
|
||||
$return=(xCAT::Utils->isServiceNode())
|
||||
Comments:
|
||||
none
|
||||
=cut
|
||||
@ -1011,18 +1011,18 @@ sub isServiceNode
|
||||
|
||||
=head3 isMN
|
||||
checks for the /etc/xCATMN file , if it exists it is a Management Server
|
||||
|
||||
|
||||
Arguments:
|
||||
none
|
||||
Returns:
|
||||
1 - localHost is ServiceNode
|
||||
0 - localHost is not ServiceNode
|
||||
1 - localHost is ServiceNode
|
||||
0 - localHost is not ServiceNode
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
none
|
||||
Example:
|
||||
$return=(xCAT::Utils->isMN())
|
||||
$return=(xCAT::Utils->isMN())
|
||||
Comments:
|
||||
none
|
||||
=cut
|
||||
@ -1044,7 +1044,7 @@ sub isMN
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 classful_networks_for_net_and_mask
|
||||
|
||||
|
||||
Arguments:
|
||||
network and mask
|
||||
Returns:
|
||||
@ -1106,8 +1106,8 @@ sub classful_networks_for_net_and_mask
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 my_hexnets
|
||||
|
||||
=head3 my_hexnets
|
||||
|
||||
Arguments:
|
||||
none
|
||||
Returns:
|
||||
@ -1196,8 +1196,8 @@ sub my_if_netmap
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 my_ip_facing
|
||||
|
||||
=head3 my_ip_facing
|
||||
|
||||
Arguments:
|
||||
none
|
||||
Returns:
|
||||
@ -1240,9 +1240,9 @@ sub my_ip_facing
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 nodeonmynet - checks to see if node is on the network
|
||||
=head3 nodeonmynet - checks to see if node is on the network
|
||||
Arguments:
|
||||
Node name
|
||||
Node name
|
||||
Returns: 1 if node is on the network
|
||||
Globals:
|
||||
none
|
||||
@ -1293,10 +1293,10 @@ sub nodeonmynet
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 thishostisnot
|
||||
=head3 thishostisnot
|
||||
returns 0 if host is not the same
|
||||
Arguments:
|
||||
hostname
|
||||
hostname
|
||||
Returns:
|
||||
Globals:
|
||||
none
|
||||
@ -1339,18 +1339,18 @@ sub thishostisnot
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 GetMasterNodeName
|
||||
=head3 GetMasterNodeName
|
||||
Reads the database for the Master node name for the input node
|
||||
Arguments:
|
||||
Node
|
||||
Returns:
|
||||
MasterHostName
|
||||
MasterHostName
|
||||
Globals:
|
||||
none
|
||||
Error:
|
||||
none
|
||||
Example:
|
||||
$master=(xCAT::Utils->GetMasterNodeName($node))
|
||||
$master=(xCAT::Utils->GetMasterNodeName($node))
|
||||
Comments:
|
||||
none
|
||||
=cut
|
||||
@ -1390,7 +1390,7 @@ sub GetMasterNodeName
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 GetNodeOSARCH
|
||||
=head3 GetNodeOSARCH
|
||||
Reads the database for the OS and Arch of the input Node
|
||||
Arguments:
|
||||
Node
|
||||
@ -1402,7 +1402,7 @@ sub GetMasterNodeName
|
||||
Error:
|
||||
none
|
||||
Example:
|
||||
$master=(xCAT::Utils->GetNodeOSARCH($node))
|
||||
$master=(xCAT::Utils->GetNodeOSARCH($node))
|
||||
Comments:
|
||||
none
|
||||
=cut
|
||||
@ -1433,8 +1433,8 @@ sub GetNodeOSARCH
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 exportDBConfig
|
||||
|
||||
=head3 exportDBConfig
|
||||
|
||||
Reads the /etc/sysconfig/xcat file for the DB configuration and exports it
|
||||
in $XCATCFG
|
||||
=cut
|
||||
@ -1478,8 +1478,8 @@ sub exportDBConfig
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 readSNInfo
|
||||
|
||||
=head3 readSNInfo
|
||||
|
||||
Read resource, NFS server, Master node, OS an ARCH from the database
|
||||
for the service node
|
||||
|
||||
@ -1526,7 +1526,7 @@ sub readSNInfo
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 isServiceReq
|
||||
=head3 isServiceReq
|
||||
|
||||
|
||||
Checks to see if the input service is already setup on the node by
|
||||
@ -1535,16 +1535,16 @@ sub readSNInfo
|
||||
It then:
|
||||
Checks the database to see if the input Service should be setup on the
|
||||
input service node
|
||||
Checks the noderes to see if this service node is a service node for any
|
||||
Checks the noderes to see if this service node is a service node for any
|
||||
node in the table. Any node that matches, it checks the service attribute
|
||||
to see if this service node is the server, or if the attribute is blank, then
|
||||
this service node is the server.
|
||||
|
||||
|
||||
Input: service nodename, service,ipaddres(s) of service node
|
||||
Output:
|
||||
0 - no service required
|
||||
1 - setup service
|
||||
2 - service is setup, just start the daemon
|
||||
Output:
|
||||
0 - no service required
|
||||
1 - setup service
|
||||
2 - service is setup, just start the daemon
|
||||
-1 - error
|
||||
Globals:
|
||||
none
|
||||
@ -1672,11 +1672,11 @@ sub isServiceReq
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 determinehostname and ip address(s)
|
||||
|
||||
|
||||
Used on the service node to figure out what hostname and ip address(s)
|
||||
the service node is in the database
|
||||
Input: None
|
||||
Output: ipaddress(s),nodename
|
||||
Input: None
|
||||
Output: ipaddress(s),nodename
|
||||
=cut
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -1706,7 +1706,7 @@ sub determinehostname
|
||||
=head3 update_xCATSN
|
||||
Will add the input service string to /etc/xCATSN to indicate that
|
||||
the service has been setup by the service node
|
||||
Input: service (e.g. tftp, nfs,etc)
|
||||
Input: service (e.g. tftp, nfs,etc)
|
||||
Output: 0 = added, 1= already there
|
||||
|
||||
=cut
|
||||
@ -1732,11 +1732,11 @@ sub update_xCATSN
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 gethost_ips
|
||||
Will use ifconfig to determine all possible ip addresses for the
|
||||
=head3 gethost_ips
|
||||
Will use ifconfig to determine all possible ip addresses for the
|
||||
host it is running on
|
||||
|
||||
input:
|
||||
input:
|
||||
output: array of ipaddress(s)
|
||||
example: @ips=xCAT::gethost_ips();
|
||||
|
||||
@ -1768,12 +1768,12 @@ sub gethost_ips
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 create_postscripts_tar
|
||||
|
||||
|
||||
This routine will tar and compress the /install/postscripts directory
|
||||
and place in /install/autoinst/xcat_postscripts.Z
|
||||
|
||||
input: none
|
||||
output:
|
||||
input: none
|
||||
output:
|
||||
example: $rc=xCAT::create_postscripts_tar();
|
||||
|
||||
=cut
|
||||
@ -1802,7 +1802,7 @@ sub create_postscripts_tar
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 get_site_Master
|
||||
=head3 get_site_Master
|
||||
|
||||
Reads the site table for the Master attribute and returns it.
|
||||
input: none
|
||||
@ -1832,13 +1832,13 @@ sub get_site_Master
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
=head3 get_ServiceNode
|
||||
=head3 get_ServiceNode
|
||||
|
||||
Will get the Service node ( name or ipaddress) as known by the Management
|
||||
Server or NOde for the input nodename or ipadress of the node
|
||||
|
||||
input: list of nodenames and/or node ipaddresses
|
||||
service name
|
||||
service name
|
||||
"MN" or "Node" determines if you want the Service node as known
|
||||
by the Management Node or by the node.
|
||||
|
||||
@ -1846,18 +1846,18 @@ sub get_site_Master
|
||||
nfsserver,conserver,monserver
|
||||
|
||||
service "xcat" is used by command like xdsh that need to know the
|
||||
service node that will process the command but are not tied to a
|
||||
service node that will process the command but are not tied to a
|
||||
specific service like tftp
|
||||
|
||||
Todo: Handle dhcpserver and nameserver from the networks table
|
||||
|
||||
output: A hash of arrays, the key is the service node pointing to
|
||||
an array of nodes that are serviced by that service node
|
||||
output: A hash of arrays, the key is the service node pointing to
|
||||
an array of nodes that are serviced by that service node
|
||||
|
||||
Globals:
|
||||
$::ERROR_RC
|
||||
$::ERROR_RC
|
||||
Error:
|
||||
$::ERROR_RC=0 no error $::ERROR_RC=1 error
|
||||
$::ERROR_RC=0 no error $::ERROR_RC=1 error
|
||||
|
||||
example: $sn =xCAT::Utils->get_ServiceNode(@nodes,$service,"MN");
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env perl
|
||||
#!/usr/bin/perl
|
||||
# !/usr/bin/env perl
|
||||
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
BEGIN
|
||||
{
|
||||
@ -8,9 +9,9 @@ use lib "$::XCATROOT/lib/perl";
|
||||
use File::Basename;
|
||||
#use Data::Dumper;
|
||||
use Getopt::Long;
|
||||
use xCAT::MsgUtils;
|
||||
use xCAT::DSHCLI;
|
||||
use xCAT::Client;
|
||||
require xCAT::MsgUtils;
|
||||
require xCAT::DSHCLI;
|
||||
require xCAT::Client;
|
||||
my $bname = basename($0);
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -42,25 +43,19 @@ This program is the client interface for xdsh/xdcp.
|
||||
|
||||
my $cmdref;
|
||||
my $arg;
|
||||
my @SaveARGV = @ARGV;
|
||||
$cmdref->{command}->[0] = $bname; # save my command name
|
||||
my $arg = shift(@SaveARGV);
|
||||
|
||||
if ($arg =~ /^-/) # no noderange
|
||||
{
|
||||
push @{$cmdref->{arg}}, $arg;
|
||||
foreach (@SAVEARGV)
|
||||
{
|
||||
push(@{$cmdref->{arg}}, $_);
|
||||
}
|
||||
@ARGV = @{$cmdref->{arg}}; # save just the argument to parse
|
||||
}
|
||||
else
|
||||
{
|
||||
$cmdref->{noderange}->[0] = $arg; # save noderange
|
||||
@ARGV = @SaveARGV; # noderange removed for parsing
|
||||
# Pull out the 1st non-hyphen arg as the noderange
|
||||
for (my $i=0; $i<scalar(@ARGV); $i++) {
|
||||
if ($ARGV[$i] !~ /^-/) { # found the noderange
|
||||
$cmdref->{noderange}->[0] = splice(@ARGV, $i, 1); # removes and returns the noderange
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
# Put all the rest of the args in the structure
|
||||
push (@{$cmdref->{arg}}, @ARGV);
|
||||
|
||||
# check for help, bypass, other client flags
|
||||
if ($bname eq "xdsh")
|
||||
{
|
||||
@ -71,11 +66,6 @@ else
|
||||
&parse_args_xdcp;
|
||||
}
|
||||
|
||||
foreach (@SaveARGV)
|
||||
{
|
||||
push(@{$cmdref->{arg}}, $_);
|
||||
}
|
||||
|
||||
# add environment variables, if they have not already been assigned with
|
||||
# command line flags
|
||||
if (!($::NODE_RSH))
|
||||
|
16
xCAT/mkrpm
16
xCAT/mkrpm
@ -8,11 +8,11 @@ then
|
||||
cd `dirname $0`
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
|
||||
tar -X /tmp/xcat-excludes -cvf /opt/freeware/src/packages/SOURCES/postscripts.tar postscripts LICENSE.html
|
||||
gzip /opt/freeware/src/packages/SOURCES/postscripts.tar
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/postscripts.tar postscripts LICENSE.html
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/postscripts.tar
|
||||
|
||||
tar -X /tmp/xcat-excludes -cvf /opt/freeware/src/packages/SOURCES/templates.tar templates
|
||||
gzip /opt/freeware/src/packages/SOURCES/templates.tar
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/templates.tar templates
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/templates.tar
|
||||
|
||||
cp xcat.conf /opt/freeware/src/packages/SOURCES
|
||||
|
||||
@ -34,14 +34,14 @@ else
|
||||
fi
|
||||
|
||||
cd `dirname $0`
|
||||
tar --exclude .svn -czvf /usr/src/$pkg/SOURCES/postscripts.tar.gz postscripts LICENSE.html
|
||||
tar --exclude .svn -czvf /usr/src/$pkg/SOURCES/templates.tar.gz templates
|
||||
tar --exclude .svn -czf /usr/src/$pkg/SOURCES/postscripts.tar.gz postscripts LICENSE.html
|
||||
tar --exclude .svn -czf /usr/src/$pkg/SOURCES/templates.tar.gz templates
|
||||
cp xcat.conf /usr/src/$pkg/SOURCES
|
||||
rm -f /usr/src/$pkg/SRPMS/xCAT-2.0*rpm /usr/src/$pkg/RPMS/*/xCAT-2.0*rpm
|
||||
if [ ! -z "$1" ]; then
|
||||
rpmbuild -ba xCAT.spec --target $1
|
||||
else
|
||||
rpmbuild -ba xCAT.spec
|
||||
else
|
||||
rpmbuild -ba xCAT.spec
|
||||
fi
|
||||
cd -
|
||||
fi
|
||||
|
@ -15,7 +15,7 @@ Source2: postscripts.tar.gz
|
||||
Source3: templates.tar.gz
|
||||
|
||||
Provides: xCAT = %{version}
|
||||
Requires: xCAT-server xCAT-client perl-DBD-SQLite
|
||||
Requires: xCAT-server xCAT-client perl-DBD-SQLite
|
||||
|
||||
%ifos linux
|
||||
Requires: atftp dhcp httpd nfs-utils expect conserver fping bind perl-XML-Parser
|
||||
@ -32,12 +32,12 @@ hardware management and software management.
|
||||
|
||||
%prep
|
||||
%ifos linux
|
||||
tar zxvf %{SOURCE2}
|
||||
tar zxf %{SOURCE2}
|
||||
%else
|
||||
rm -rf postscripts
|
||||
cp %{SOURCE2} /opt/freeware/src/packages/BUILD
|
||||
gunzip postscripts.tar.gz
|
||||
tar -xvf postscripts.tar
|
||||
gunzip -f postscripts.tar.gz
|
||||
tar -xf postscripts.tar
|
||||
%endif
|
||||
|
||||
%build
|
||||
@ -49,11 +49,11 @@ mkdir -p $RPM_BUILD_ROOT/%{prefix}/share/xcat/
|
||||
cd $RPM_BUILD_ROOT/%{prefix}/share/xcat/
|
||||
|
||||
%ifos linux
|
||||
tar zxvf %{SOURCE3}
|
||||
tar zxf %{SOURCE3}
|
||||
%else
|
||||
cp %{SOURCE3} $RPM_BUILD_ROOT/%{prefix}/share/xcat
|
||||
gunzip templates.tar.gz
|
||||
tar -xvf templates.tar
|
||||
gunzip -f templates.tar.gz
|
||||
tar -xf templates.tar
|
||||
rm templates.tar
|
||||
%endif
|
||||
|
||||
@ -61,11 +61,11 @@ cd -
|
||||
cd $RPM_BUILD_ROOT/install
|
||||
|
||||
%ifos linux
|
||||
tar zxvf %{SOURCE2}
|
||||
tar zxf %{SOURCE2}
|
||||
%else
|
||||
cp %{SOURCE2} $RPM_BUILD_ROOT/install
|
||||
gunzip postscripts.tar.gz
|
||||
tar -xvf postscripts.tar
|
||||
gunzip -f postscripts.tar.gz
|
||||
tar -xf postscripts.tar
|
||||
rm postscripts.tar
|
||||
%endif
|
||||
|
||||
@ -84,7 +84,7 @@ $RPM_INSTALL_PREFIX0/sbin/xcatconfig
|
||||
%else
|
||||
. /etc/profile.d/xcat.sh
|
||||
|
||||
if [ ! -f /install/postscripts/hostkeys/ssh_host_key ]; then
|
||||
if [ ! -f /install/postscripts/hostkeys/ssh_host_key ]; then
|
||||
echo Generating SSH1 RSA Key...
|
||||
/usr/bin/ssh-keygen -t rsa1 -f /install/postscripts/hostkeys/ssh_host_key -C '' -N ''
|
||||
echo Generating SSH2 RSA Key...
|
||||
@ -114,7 +114,7 @@ if [ "$1" = "1" ]; then #Only if installing for the fist time..
|
||||
/etc/rc.d/init.d/nfs stop
|
||||
/etc/rc.d/init.d/nfs start
|
||||
exportfs -a
|
||||
if [ ! -r /etc/xcat/site.sqlite ]; then
|
||||
if [ ! -r /etc/xcat/site.sqlite ]; then
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab key=xcatdport site.value=3001
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab key=xcatiport site.value=3002
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab key=tftpdir site.value=/tftpboot
|
||||
@ -123,19 +123,19 @@ if [ "$1" = "1" ]; then #Only if installing for the fist time..
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab key=installdir site.value=/install
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab key=timezone site.value=`grep ^ZONE /etc/sysconfig/clock|cut -d= -f 2|sed -e 's/"//g'`
|
||||
fi
|
||||
if [ ! -r /etc/xcat/policy.sqlite ]; then
|
||||
if [ ! -r /etc/xcat/policy.sqlite ]; then
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab priority=1 policy.name=root policy.rule=allow
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab priority=2 policy.commands=getbmcconfig policy.rule=allow
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab priority=3 policy.commands=nextdestiny policy.rule=allow
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 $RPM_INSTALL_PREFIX0/sbin/chtab priority=4 policy.commands=getdestiny policy.rule=allow
|
||||
fi
|
||||
|
||||
if [ ! -d /etc/xcat/ca ]; then
|
||||
|
||||
if [ ! -d /etc/xcat/ca ]; then
|
||||
yes | $RPM_INSTALL_PREFIX0/share/xcat/scripts/setup-xcat-ca.sh "xCAT CA"
|
||||
fi
|
||||
mkdir -p /install/postscripts/ca
|
||||
cp -r /etc/xcat/ca/* /install/postscripts/ca
|
||||
if [ ! -d /etc/xcat/cert ]; then
|
||||
if [ ! -d /etc/xcat/cert ]; then
|
||||
yes | $RPM_INSTALL_PREFIX0/share/xcat/scripts/setup-server-cert.sh `hostname`
|
||||
fi
|
||||
mkdir -p /install/postscripts/cert
|
||||
@ -150,11 +150,11 @@ if [ "$1" = "1" ]; then #Only if installing for the fist time..
|
||||
then
|
||||
rm /tftpboot/pxelinux.cfg/default
|
||||
fi
|
||||
# make Management Node
|
||||
# make Management Node
|
||||
touch /etc/xCATMN
|
||||
# setup syslog
|
||||
/install/postscripts/syslog
|
||||
fi
|
||||
#fi
|
||||
|
||||
XCATROOT=$RPM_INSTALL_PREFIX0 /etc/init.d/xcatd start
|
||||
if [ -x $RPM_INSTALL_PREFIX0/sbin/mknb ]; then
|
||||
|
@ -7,8 +7,8 @@ then
|
||||
cd `dirname $0`
|
||||
echo '.svn' > /tmp/xcat-excludes
|
||||
|
||||
tar -X /tmp/xcat-excludes -cvf /opt/freeware/src/packages/SOURCES/license.tar LICENSE.html
|
||||
gzip /opt/freeware/src/packages/SOURCES/license.tar
|
||||
tar -X /tmp/xcat-excludes -cf /opt/freeware/src/packages/SOURCES/license.tar LICENSE.html
|
||||
gzip -f /opt/freeware/src/packages/SOURCES/license.tar
|
||||
|
||||
cp xcat.conf /opt/freeware/src/packages/SOURCES
|
||||
rm -f /opt/freeware/src/packages/SRPMS/xCATsn-2.0*rpm /opt/freeware/src/packages/RPMS/ppc/xCATsn-2.0*rpm
|
||||
@ -29,7 +29,7 @@ else
|
||||
fi
|
||||
|
||||
cd `dirname $0`
|
||||
tar --exclude .svn -czvf /usr/src/$pkg/SOURCES/license.tar.gz LICENSE.html
|
||||
tar --exclude .svn -czf /usr/src/$pkg/SOURCES/license.tar.gz LICENSE.html
|
||||
cp xcat.conf /usr/src/$pkg/SOURCES
|
||||
rm -f /usr/src/$pkg/SRPMS/xCATsn-2.0*rpm /usr/src/$pkg/RPMS/*/xCATsn-2.0*rpm
|
||||
rpmbuild -ba xCATsn.spec
|
||||
|
Loading…
Reference in New Issue
Block a user