diff --git a/perl-xCAT/xCAT/DSHCLI.pm b/perl-xCAT/xCAT/DSHCLI.pm index 0ab10d35f..091f7e050 100644 --- a/perl-xCAT/xCAT/DSHCLI.pm +++ b/perl-xCAT/xCAT/DSHCLI.pm @@ -1034,6 +1034,28 @@ sub fork_fanout_dsh if ($$options{'environment'}) { + # if we are on a servicenode need to get the environment file + # from the SNsyncfiledir, not local + if (xCAT::Utils->isServiceNode()) { + my $newenvfile; + my $synfiledir = "/var/xcat/syncfiles"; #default + + # get the directory on the servicenode to and add to filepath + my @syndir= xCAT::TableUtils->get_site_attribute("SNsyncfiledir"); + if ($syndir[0]) + { + $synfiledir = $syndir[0]; + } + $newenvfile = $synfiledir; + $newenvfile .= $$options{'environment'}; + $$options{'environment'} = $newenvfile; + } + if (!(-e $$options{'environment'})) + { + my $rsp={}; + $rsp->{error}->[0] = "File $$options{'environment'} does not exist"; + xCAT::MsgUtils->message("E", $rsp, $::CALLBACK); + } push @dsh_command, "$$options{'pre-command'} . $$options{'environment'} ; $$options{'command'}$$options{'post-command'}"; } @@ -1163,13 +1185,13 @@ sub fork_fanout_dsh if ($$options{'execute'}) { # first build the scp command to copy the file to execute - # down to the node into /tmp/*.dsh + # down to the node into /tmp/*.dsh my $rsp = {}; $rsp->{data}->[0] = "TRACE: Execute option specified."; $dsh_trace && (xCAT::MsgUtils->message("I", $rsp, $::CALLBACK)); my %exe_rcp_config = (); - $tmp_cmd_file = POSIX::tmpnam . ".dsh"; + $tmp_cmd_file = POSIX::tmpnam . ".dsh"; my ($exe_cmd, @args) = @{$$options{'execute'}}; my $chmod_cmd = ""; diff --git a/perl-xCAT/xCAT/Usage.pm b/perl-xCAT/xCAT/Usage.pm index 4597f15ad..b43e3f1a3 100644 --- a/perl-xCAT/xCAT/Usage.pm +++ b/perl-xCAT/xCAT/Usage.pm @@ -327,7 +327,7 @@ my %usage = ( or updatenode [-V|--verbose] [-k|--security] [-s|--sn] or - updatenode [-V|--verbose] [-F|--sync | -f|--snsync] [-l|--user[username]] [-S|--sw] + updatenode [-V|--verbose] [-F|--sync | -f|--snsync] [-l|--user[username]] [--fanout=[fanout value]] [-S|--sw] [-P|--scripts [script1,script2,...]] [-s|--sn] [-A|--updateallsw] [-c|--cmdlineonly] [-d alt_source_dir] [attr=val [attr=val...]] @@ -342,8 +342,12 @@ Options: [-F|--sync] Perform File Syncing. + [--fanout] Allows you to assign the fanout value for the command. + See xdsh/xdcp fanout parameter in the man page. + [-f|--snsync] Performs File Syncing to the service nodes that service the nodes in the noderange. + [-l|--user] User name to run the updatenode command. It overrides the current user which is the default.