1. do not call kitnodeupdate, 2. enhance calling runxcmd syntax
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14250 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -4,6 +4,7 @@ package xCAT_plugin::00kitnodebase; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Data::Dumper; | ||||
| require xCAT::Utils; | ||||
| require xCAT::Table; | ||||
| require xCAT::ProfiledNodeUtils; | ||||
| @@ -47,7 +48,6 @@ sub handled_commands { | ||||
|         kitnoderemove => '00kitnodebase', | ||||
|         kitnodeupdate => '00kitnodebase', | ||||
|         kitnoderefresh => '00kitnodebase', | ||||
|         kitnodefinished => '00kitnodebase', | ||||
|     }; | ||||
|  | ||||
| } | ||||
| @@ -75,19 +75,19 @@ sub process_request { | ||||
|     if($command eq 'kitnodeadd') | ||||
|     { | ||||
|         setrsp_progress("Updating hosts entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Updating DNS entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update DHCP entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update known hosts"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         my $firstnode = (@$nodelist)[0]; | ||||
| @@ -95,82 +95,92 @@ sub process_request { | ||||
|         my %profilehash = %$profileref; | ||||
|         if (exists $profilehash{$firstnode}{"ImageProfile"}){ | ||||
|             setrsp_progress("Update nodes' boot settings"); | ||||
|             $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['osimage='.$profilehash{$firstnode}{"ImageProfile"}]}, $request_command, 0, 1); | ||||
|             $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['osimage='.$profilehash{$firstnode}{"ImageProfile"}]}, $request_command, 0, 2); | ||||
|             log_cmd_return($retref); | ||||
|         } | ||||
|  | ||||
|         setrsp_progress("Updating conserver configuration files"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeconservercf"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|     } | ||||
|     elsif ($command eq 'kitnoderemove'){ | ||||
|         setrsp_progress("Updating conserver configuration files"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeconservercf"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update nodes' boot settings"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['offline']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['offline']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update known hosts"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist, arg=>['-r']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist, arg=>['-r']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update DHCP entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Updating DNS entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Updating hosts entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|     } | ||||
|     elsif ($command eq 'kitnodeupdate'){ | ||||
|         setrsp_progress("Updating hosts entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Updating DNS entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update DHCP entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist, arg=>['-d']}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|         # we should restart dhcp so that the node's records in /var/lib/dhcpd/dhcpd.lease can be clean up and re-generate. | ||||
|         system("/etc/init.d/dhcpd restart"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update known hosts"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|         my $firstnode = (@$nodelist)[0]; | ||||
|         my $profileref = xCAT::ProfiledNodeUtils->get_nodes_profiles([$firstnode]); | ||||
|         my %profilehash = %$profileref; | ||||
|         if (exists $profilehash{$firstnode}{"ImageProfile"}){ | ||||
|             setrsp_progress("Update nodes' boot settings"); | ||||
|             $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['osimage='.$profilehash{$firstnode}{"ImageProfile"}]}, $request_command, 0, 1); | ||||
|             $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['osimage='.$profilehash{$firstnode}{"ImageProfile"}]}, $request_command, 0, 2); | ||||
|             log_cmd_return($retref); | ||||
|         } | ||||
|  | ||||
|         setrsp_progress("Updating conserver configuration files"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeconservercf"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|     } | ||||
|     elsif ($command eq 'kitnoderefresh'){ | ||||
|         setrsp_progress("Updating hosts entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Updating DNS entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedns"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update DHCP entries"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makedhcp"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|  | ||||
|         setrsp_progress("Update known hosts"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeknownhosts"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|     } | ||||
|     elsif ($command eq 'kitnodefinished') | ||||
|     { | ||||
|  | ||||
|         setrsp_progress("Updating conserver configuration files"); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeconservercf"]}, $request_command, 0, 1); | ||||
|         $retref = xCAT::Utils->runxcmd({command=>["makeconservercf"], node=>$nodelist}, $request_command, 0, 2); | ||||
|         log_cmd_return($retref); | ||||
|     } | ||||
|     else | ||||
| @@ -207,15 +217,15 @@ sub setrsp_progress | ||||
| sub log_cmd_return | ||||
| { | ||||
|     my $return = shift; | ||||
|     my $returnmsg = (); | ||||
|     if ($return){ | ||||
|         foreach (@$return){ | ||||
|             $returnmsg .= "$_\n"; | ||||
|         if ($return->{error}){ | ||||
|             my $errarrayref = $return->{error}; | ||||
|             xCAT::MsgUtils->message('S', "Command error message:".Dumper($errarrayref)); | ||||
|         } | ||||
|         if ($return->{data}){ | ||||
|             my $dataarrayref = $return->{data}; | ||||
|             xCAT::MsgUtils->message('S', "Command output message:".Dumper($dataarrayref)); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     if($returnmsg){ | ||||
|         xCAT::MsgUtils->message('S', "$returnmsg"); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ package xCAT_plugin::profilednodes; | ||||
| use strict; | ||||
| use warnings; | ||||
| use Getopt::Long qw(:config no_ignore_case); | ||||
| use Data::Dumper; | ||||
| require xCAT::Table; | ||||
| require xCAT::DBobjUtils; | ||||
| require xCAT::Utils; | ||||
| @@ -356,29 +357,26 @@ Usage: | ||||
|     setrsp_progress("Import nodes started."); | ||||
|     setrsp_progress("call mkdef to create nodes."); | ||||
|     my $warnstr = ""; | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["mkdef"], stdin=>[$retstr_gen], arg=>['-z']}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running mkdef: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["mkdef"], stdin=>[$retstr_gen], arg=>['-z']}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     # runxcmd failed. | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to import some nodes into db.");  | ||||
|         $warnstr = "Warning: failed to import some nodes into db while running mkdef. details: $retstr"; | ||||
|         $warnstr = "Warning: failed to import some nodes into db while running mkdef."; | ||||
|         setrsp_progress($warnstr);  | ||||
|         if ($retstrref->[1]) { | ||||
|             $warnstr .= "Details: $retstrref->[1]"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     my @nodelist = keys %hostinfo_dict; | ||||
|     setrsp_progress("call nodemgmt plugins."); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodeadd"], node=>\@nodelist}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodeadd: $retstr"); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodeadd"], node=>\@nodelist}, $request_command, 0, 2); | ||||
|     $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         $warnstr .= "Warning: failed to run command kitnodeadd. details: $retstr"; | ||||
|     } | ||||
|  | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>\@nodelist}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         $warnstr .= "Warning: failed to run command kitnodefinished. details: $retstr"; | ||||
|         $warnstr .= "Warning: failed to run command kitnodeadd."; | ||||
|         if ($retstrref->[1]) { | ||||
|             $warnstr .= "Details: $retstrref->[1]"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     setrsp_progress("Import nodes success."); | ||||
| @@ -414,28 +412,26 @@ Usage: | ||||
|     } | ||||
|  | ||||
|     my $warnstr = ""; | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnoderemove"], node=>$nodes}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnoderemove: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnoderemove"], node=>$nodes}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     # runxcmd failed. | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands."); | ||||
|         $warnstr = "Warning: failed to call command kitnoderemove. details: $retstr"; | ||||
|     } | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>$nodes}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands."); | ||||
|         $warnstr = "Warning: failed to call command kitnodefinished. details: $retstr"; | ||||
|         setrsp_progress("Warning: failed to call command kitnoderemove."); | ||||
|         $warnstr .= "Warning: failed to call command kitnoderemove."; | ||||
|         if ($retstrref->[1]) { | ||||
|             $warnstr .= "Details: $retstrref->[1]"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     setrsp_progress("Call noderm to remove nodes."); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["noderm"], node=>$nodes}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running noderm: $retstr"); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["noderm"], node=>$nodes}, $request_command, 0, 2); | ||||
|     $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call noderm to remove some nodes."); | ||||
|         $warnstr = "Warning: failed to call command noderm to remove some nodes. details: $retstr"; | ||||
|         setrsp_progress("Warning: failed to call command noderm to remove some nodes."); | ||||
|         $warnstr .= "Warning: failed to call command noderm to remove some nodes."; | ||||
|         if ($retstrref->[1]) { | ||||
|             $warnstr .= "Details: $retstrref->[1]"; | ||||
|         } | ||||
|     } | ||||
|     setrsp_progress("Purge nodes success."); | ||||
|     setrsp_success($nodes, $warnstr); | ||||
| @@ -465,18 +461,11 @@ Usage: | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnoderefresh"], node=>$nodes}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnoderefresh: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnoderefresh"], node=>$nodes}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     # runxcmd failed. | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands. Details: $retstr"); | ||||
|     } | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>$nodes}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands. Details: $retstr"); | ||||
|         setrsp_progress("Warning: failed to call some kit commands."); | ||||
|     } | ||||
|     setrsp_success($nodes); | ||||
| } | ||||
| @@ -548,19 +537,12 @@ Usage: | ||||
|      | ||||
|     # call plugins | ||||
|     setrsp_progress("Call nodemgmt plugins."); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnodeupdate"], node=>$nodes}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodeupdate: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnodeupdate"], node=>$nodes}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands. Details: $retstr"); | ||||
|         setrsp_progress("Warning: failed to call some kit commands."); | ||||
|     } | ||||
|  | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>$nodes}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call some kit commands. Details: $retstr"); | ||||
|     } | ||||
|     setrsp_progress("Update node's profile success"); | ||||
|     setrsp_success($nodes); | ||||
| } | ||||
| @@ -627,18 +609,16 @@ Usage: | ||||
|     } | ||||
|  | ||||
|     # run nodeadd to create node records. | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["nodeadd"], arg=>[$args_dict{"hostname"}, "groups=__Unmanaged", "hosts.ip=$args_dict{'ip'}"]}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running nodeadd: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["nodeadd"], arg=>[$args_dict{"hostname"}, "groups=__Unmanaged", "hosts.ip=$args_dict{'ip'}"]}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_errormsg("Failed to call nodeadd to create node. Details: $retstr"); | ||||
|         setrsp_errormsg("Failed to call nodeadd to create node."); | ||||
|         return; | ||||
|     } | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>[$args_dict{"hostname"}]}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running makehosts: $retstr"); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["makehosts"], node=>[$args_dict{"hostname"}]}, $request_command, 0, 2); | ||||
|     $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call makehosts. Details: $retstr"); | ||||
|         setrsp_progress("Warning: failed to call makehosts."); | ||||
|     } | ||||
|  | ||||
|     setrsp_infostr("Create unmanaged node success"); | ||||
| @@ -699,19 +679,12 @@ Usage: | ||||
|  | ||||
|     # Call Plugins. | ||||
|     setrsp_progress("Calling kit plugins"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnodeupdate"], node=>[$hostname]}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodeupdate: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["kitnodeupdate"], node=>[$hostname]}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call kit commands. Details: $retstr"); | ||||
|         setrsp_progress("Warning: failed to call kit commands."); | ||||
|     } | ||||
|  | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>[$hostname]}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_progress("Warning: failed to call kit commands. Details: $retstr"); | ||||
|     } | ||||
|     setrsp_progress("Change node's mac success"); | ||||
| } | ||||
|  | ||||
| @@ -894,7 +867,7 @@ Usage: | ||||
|     my @nodes = xCAT::NodeRange::noderange('__PCMDiscover'); | ||||
|     if (@nodes){ | ||||
|         # There are some nodes discvoered. | ||||
|         my $retref = xCAT::Utils->runxcmd({command=>["rmdef"], arg=>["-t", "group", "-o", "__PCMDiscover"]}, $request_command, 0, 1); | ||||
|         my $retref = xCAT::Utils->runxcmd({command=>["rmdef"], arg=>["-t", "group", "-o", "__PCMDiscover"]}, $request_command, 0, 2); | ||||
|     } | ||||
|     setrsp_infostr("Profiled node's discover stopped"); | ||||
| } | ||||
| @@ -1116,9 +1089,8 @@ sub findme{ | ||||
|  | ||||
|     # call mkdef to create hosts and then call nodemgmt for node management plugins. | ||||
|     xCAT::MsgUtils->message('S', "Call mkdef to create nodes.\n"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["mkdef"], stdin=>[$retstr_gen], arg=>['-z']}, $request_command, 0, 1); | ||||
|     my $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running mkdef: $retstr"); | ||||
|     my $retref = xCAT::Utils->runxcmd({command=>["mkdef"], stdin=>[$retstr_gen], arg=>['-z']}, $request_command, 0, 2); | ||||
|     my $retstrref = parse_runxcmd_ret($retref); | ||||
|     # runxcmd failed. | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         setrsp_errormsg($retstr_gen); | ||||
| @@ -1131,22 +1103,12 @@ sub findme{ | ||||
|     xCAT::MsgUtils->message('S', "Call discovered request.\n"); | ||||
|     $request->{"command"} = ["discovered"]; | ||||
|     $request->{"node"} = \@nodelist; | ||||
|     $retref = xCAT::Utils->runxcmd($request, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running discovered: $retstr"); | ||||
|     # runxcmd failed. | ||||
|     if ($::RUNCMD_RC != 0){ | ||||
|         xCAT::MsgUtils->message('S', "Warning: Failed to run command discovered for mac $mac. Details: $retstr"); | ||||
|     } | ||||
|     $retref = xCAT::Utils->runxcmd($request, $request_command, 0, 2); | ||||
|     $retstrref = parse_runxcmd_ret($retref); | ||||
|  | ||||
|     xCAT::MsgUtils->message('S', "Call nodemgmt plugins.\n"); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodeadd"], node=>\@nodelist}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodeadd: $retstr"); | ||||
|  | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodefinished"], node=>\@nodelist}, $request_command, 0, 1); | ||||
|     $retstr = get_cmd_return($retref); | ||||
|     xCAT::MsgUtils->message('S', "The return message of running kitnodefinished: $retstr"); | ||||
|     $retref = xCAT::Utils->runxcmd({command=>["kitnodeadd"], node=>\@nodelist}, $request_command, 0, 2); | ||||
|     $retstrref = parse_runxcmd_ret($retref); | ||||
|  | ||||
|     # Set discovered flag. | ||||
|     my $nodegroupstr = $hostinfo_dict{$nodelist[0]}{"groups"}; | ||||
| @@ -1648,24 +1610,35 @@ sub setrsp_success | ||||
| } | ||||
|  | ||||
| #----------------------------------------------------- | ||||
| =head3  get_cmd_return | ||||
| =head3  parse_runxcmd_ret | ||||
|  | ||||
|     Description : Get return of runxcmd and compose a string. | ||||
|     Description : Get return of runxcmd and convert it into strings. | ||||
|     Arguments   : The return reference of runxcmd | ||||
|     Return:     : [$outstr, $errstr], A reference of list, placing standard output and standard error message. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| #----------------------------------------------------- | ||||
| sub get_cmd_return | ||||
| sub parse_runxcmd_ret | ||||
| { | ||||
|     my $return = shift; | ||||
|     my $returnmsg = (); | ||||
|     if ($return){ | ||||
|         foreach (@$return){ | ||||
|             $returnmsg .= "$_\n"; | ||||
|     my $retref = shift; | ||||
|      | ||||
|     my $msglistref; | ||||
|     my $outstr = ""; | ||||
|     my $errstr = ""; | ||||
|     if ($retref){ | ||||
|         if($retref->{data}){ | ||||
|             $msglistref = $retref->{data}; | ||||
|             $outstr = Dumper(@$msglistref); | ||||
|             xCAT::MsgUtils->message('S',"Command standard output: $outstr"); | ||||
|         } | ||||
|         if($retref->{error}){ | ||||
|             $msglistref = $retref->{error}; | ||||
|             $errstr =  Dumper(@$msglistref); | ||||
|             xCAT::MsgUtils->message('S',"Command error output: $errstr"); | ||||
|         } | ||||
|     } | ||||
|     return $returnmsg; | ||||
|     return [$outstr, $errstr]; | ||||
| } | ||||
|  | ||||
| 1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user