break out file sync into its own routine
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14031 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
8a15138e4e
commit
96a259ca81
@ -1015,98 +1015,8 @@ sub updatenode
|
||||
#
|
||||
# handle file synchronization
|
||||
#
|
||||
|
||||
if (($request->{FileSyncing} && $request->{FileSyncing}->[0] eq "yes")
|
||||
|| (
|
||||
( $request->{SNFileSyncing}
|
||||
&& $request->{SNFileSyncing}->[0] eq "yes")))
|
||||
{
|
||||
my %syncfile_node = ();
|
||||
my %syncfile_rootimage = ();
|
||||
my $node_syncfile = xCAT::SvrUtils->getsynclistfile($nodes);
|
||||
foreach my $node (@$nodes)
|
||||
{
|
||||
my $synclist = $$node_syncfile{$node};
|
||||
|
||||
if ($synclist)
|
||||
{
|
||||
# this can be a comma separated list of multiple
|
||||
# syncfiles
|
||||
my @sl = split(',',$synclist);
|
||||
foreach my $s (@sl){
|
||||
push @{$syncfile_node{$s}}, $node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Check the existence of the synclist file
|
||||
if (%syncfile_node)
|
||||
{ # there are files to sync defined
|
||||
foreach my $synclist (keys %syncfile_node)
|
||||
{
|
||||
if (!(-r $synclist))
|
||||
{
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] =
|
||||
"The Synclist file $synclist which specified for certain node does NOT existed.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Sync files to the target nodes
|
||||
foreach my $synclist (keys %syncfile_node)
|
||||
{
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
my $rsp = {};
|
||||
if ($request->{FileSyncing}->[0] eq "yes")
|
||||
{ # sync nodes
|
||||
$rsp->{data}->[0] =
|
||||
" $localhostname: Internal call command: xdcp -F $synclist";
|
||||
}
|
||||
else
|
||||
{ # sync SN
|
||||
$rsp->{data}->[0] =
|
||||
" $localhostname: Internal call command: xdcp -s -F $synclist";
|
||||
}
|
||||
$callback->($rsp);
|
||||
}
|
||||
my $args;
|
||||
my $env;
|
||||
if ($request->{FileSyncing}->[0] eq "yes")
|
||||
{ # sync nodes
|
||||
$args = ["-F", "$synclist"];
|
||||
$env = ["DSH_RSYNC_FILE=$synclist"];
|
||||
}
|
||||
else
|
||||
{ # sync SN only
|
||||
$args = ["-s", "-F", "$synclist"];
|
||||
$env = ["DSH_RSYNC_FILE=$synclist", "RSYNCSNONLY=1"];
|
||||
}
|
||||
$subreq->(
|
||||
{
|
||||
command => ['xdcp'],
|
||||
node => $syncfile_node{$synclist},
|
||||
arg => $args,
|
||||
env => $env
|
||||
},
|
||||
$callback
|
||||
);
|
||||
}
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] = "File synchronization has completed.";
|
||||
$callback->($rsp);
|
||||
}
|
||||
else
|
||||
{ # no syncfiles defined
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] =
|
||||
"There were no syncfiles defined to process. File synchronization has completed.";
|
||||
$callback->($rsp);
|
||||
|
||||
}
|
||||
}
|
||||
&updatenodesyncfiles($request,$subreq,$callback);
|
||||
|
||||
|
||||
if (scalar(@$AIXnodes))
|
||||
{
|
||||
@ -1535,6 +1445,122 @@ sub updatenode
|
||||
#}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
=head3 updatenodesyncfiles
|
||||
|
||||
Arguments: request
|
||||
Returns:
|
||||
0 - for success.
|
||||
1 - for error.
|
||||
|
||||
=cut
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
sub updatenodesyncfiles
|
||||
{
|
||||
my $request = shift;
|
||||
my $subreq = shift;
|
||||
my $callback = shift;
|
||||
my $nodes = $request->{node};
|
||||
my $localhostname = hostname();
|
||||
if (($request->{FileSyncing} && $request->{FileSyncing}->[0] eq "yes")
|
||||
|| (
|
||||
( $request->{SNFileSyncing}
|
||||
&& $request->{SNFileSyncing}->[0] eq "yes")))
|
||||
{
|
||||
my %syncfile_node = ();
|
||||
my %syncfile_rootimage = ();
|
||||
my $node_syncfile = xCAT::SvrUtils->getsynclistfile($nodes);
|
||||
foreach my $node (@$nodes)
|
||||
{
|
||||
my $synclist = $$node_syncfile{$node};
|
||||
|
||||
if ($synclist)
|
||||
{
|
||||
# this can be a comma separated list of multiple
|
||||
# syncfiles
|
||||
my @sl = split(',',$synclist);
|
||||
foreach my $s (@sl){
|
||||
push @{$syncfile_node{$s}}, $node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Check the existence of the synclist file
|
||||
if (%syncfile_node)
|
||||
{ # there are files to sync defined
|
||||
foreach my $synclist (keys %syncfile_node)
|
||||
{
|
||||
if (!(-r $synclist))
|
||||
{
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] =
|
||||
"The Synclist file $synclist which specified for certain node does NOT existed.";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
# Sync files to the target nodes
|
||||
foreach my $synclist (keys %syncfile_node)
|
||||
{
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
my $rsp = {};
|
||||
if ($request->{FileSyncing}->[0] eq "yes")
|
||||
{ # sync nodes
|
||||
$rsp->{data}->[0] =
|
||||
" $localhostname: Internal call command: xdcp -F $synclist";
|
||||
}
|
||||
else
|
||||
{ # sync SN
|
||||
$rsp->{data}->[0] =
|
||||
" $localhostname: Internal call command: xdcp -s -F $synclist";
|
||||
}
|
||||
$callback->($rsp);
|
||||
}
|
||||
my $args;
|
||||
my $env;
|
||||
if ($request->{FileSyncing}->[0] eq "yes")
|
||||
{ # sync nodes
|
||||
$args = ["-F", "$synclist"];
|
||||
$env = ["DSH_RSYNC_FILE=$synclist"];
|
||||
}
|
||||
else
|
||||
{ # sync SN only
|
||||
$args = ["-s", "-F", "$synclist"];
|
||||
$env = ["DSH_RSYNC_FILE=$synclist", "RSYNCSNONLY=1"];
|
||||
}
|
||||
$subreq->(
|
||||
{
|
||||
command => ['xdcp'],
|
||||
node => $syncfile_node{$synclist},
|
||||
arg => $args,
|
||||
env => $env
|
||||
},
|
||||
$callback
|
||||
);
|
||||
}
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] = "File synchronization has completed.";
|
||||
$callback->($rsp);
|
||||
}
|
||||
else
|
||||
{ # no syncfiles defined
|
||||
my $rsp = {};
|
||||
$rsp->{data}->[0] =
|
||||
"There were no syncfiles defined to process. File synchronization has completed.";
|
||||
$callback->($rsp);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#
|
||||
# Handles the return from running xcatdsklspost
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user