Fixed cloning issue where code was looking for a case-sensitive NIC address and not modifying the network configuration correctly. Added logging of smcli calls into syslog to improve debugging. Add loop to find the correct partition with file -s /dev/dasd*. This fixes a cloning issue where flashcopy is not instantaneous and flashed copy volumes do not appear immediately when linked.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15470 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
phamt 2013-03-12 23:10:58 +00:00
parent 4de0a47920
commit 50445cdc26
3 changed files with 171 additions and 69 deletions

View File

@ -468,6 +468,7 @@ sub grantVSwitch {
# Use SMAPI EXEC
my $out = `ssh $user\@$hcp "$sudo $dir/smcli Virtual_Network_Vswitch_Set -T SYSTEM -n $vswitchId -I $userId"`;
xCAT::zvmUtils->printSyslog("grantVSwitch- ssh $user\@$hcp $sudo $dir/smcli Virtual_Network_Vswitch_Set -T SYSTEM -n $vswitchId -I $userId");
$out = xCAT::zvmUtils->trimStr($out);
# If return string contains 'Done' - Operation was successful
@ -564,6 +565,7 @@ sub smapiFlashCopy {
# Use SMAPI EXEC to flash copy
my $cmd = '\"' . "CMD=FLASHCOPY $srcId $srcAddr 0 END $tgtId $tgtAddr 0 END" . '\"';
my $out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $hcpUserId -c $cmd"`;
xCAT::zvmUtils->printSyslog("smapiFlashCopy- ssh $user\@$hcp $sudo $dir/smcli xCAT_Commands_IUO -T $hcpUserId -c $cmd");
$out = xCAT::zvmUtils->trimStr($out);
@ -661,9 +663,11 @@ sub purgeReader {
# Use SMAPI EXEC to purge reader
my $cmd = '\"' . "CMD=PURGE $userId RDR ALL" . '\"';
$out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd"`;
xCAT::zvmUtils->printSyslog("purgeReader- ssh $user\@$hcp $sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd");
} else {
# Purge reader using CP
$out = `ssh -o ConnectTimeout=5 $user\@$hcp "$sudo /sbin/vmcp purge $userId rdr all"`;
xCAT::zvmUtils->printSyslog("purgeReader- ssh -o ConnectTimeout=5 $user\@$hcp $sudo /sbin/vmcp purge $userId rdr all");
}
$out = xCAT::zvmUtils->trimStr($out);
@ -700,9 +704,11 @@ sub sendCPCmd {
# Use SMAPI EXEC to send command
$cmd = '\"' . "CMD=SEND CP $userId " . uc($cmd) . '\"';
$out = `ssh $user\@$hcp "$sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd"`;
xCAT::zvmUtils->printSyslog("sendCPCmd- ssh $user\@$hcp $sudo $dir/smcli xCAT_Commands_IUO -T $userId -c $cmd");
} else {
# Send CP command to given user
$out = `ssh $user\@$hcp "$sudo /sbin/vmcp send cp $userId $cmd"`;
xCAT::zvmUtils->printSyslog("sendCPCmd- ssh $user\@$hcp $sudo /sbin/vmcp send cp $userId $cmd");
}
$out = xCAT::zvmUtils->trimStr($out);

View File

@ -286,8 +286,14 @@ sub printLn {
# Print string
my $rsp;
my $type = "I";
if ($str =~ m/error/i) { # Set to print error if the string contains error
$type = "E";
}
$rsp->{data}->[0] = "$str";
xCAT::MsgUtils->message( "I", $rsp, $callback );
xCAT::MsgUtils->message( $type, $rsp, $callback );
# xCAT::MsgUtils->message( "S", $str ); # Print to syslog
return;
}

View File

@ -663,9 +663,11 @@ sub removeVM {
# Power off user ID
my $out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED"`;
xCAT::zvmUtils->printSyslog("removeVM- ssh $::SUDOER\@$hcp$::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED");
# Delete user entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Delete_DM -T $userId -e 1"`;
xCAT::zvmUtils->printSyslog("removeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Delete_DM -T $userId -e 1");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Check for errors
@ -706,6 +708,7 @@ sub removeVM {
# Remove node from 'zvm', 'nodelist', 'nodetype', 'noderes', and 'nodehm' tables
# Save node entry in 'mac' table
xCAT::zvmUtils->delTabEntry( 'zvm', 'node', $node );
xCAT::zvmUtils->delTabEntry( 'hosts', 'node', $node );
xCAT::zvmUtils->delTabEntry( 'nodelist', 'node', $node );
xCAT::zvmUtils->delTabEntry( 'nodetype', 'node', $node );
xCAT::zvmUtils->delTabEntry( 'noderes', 'node', $node );
@ -819,11 +822,13 @@ sub changeVM {
# Add to directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create_DM -T $userId -v $addr -t 3390 -a AUTOG -r $pool -u 1 -z $cyl -m $mode -f 1 -R $readPw -W $writePw -M $multiPw"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Create_DM -T $userId -v $addr -t 3390 -a AUTOG -r $pool -u 1 -z $cyl -m $mode -f 1 -R $readPw -W $writePw -M $multiPw");
# Add to active configuration
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode");
}
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -834,6 +839,7 @@ sub changeVM {
my $mode = $args->[2];
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -885,11 +891,13 @@ sub changeVM {
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create_DM -T $userId -v $addr -t 9336 -a AUTOG -r $pool -u 2 -z $blks -m $mode -f 1 -R $readPw -W $writePw -M $multiPw"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Create_DM -T $userId -v $addr -t 9336 -a AUTOG -r $pool -u 2 -z $blks -m $mode -f 1 -R $readPw -W $writePw -M $multiPw");
# Add to active configuration
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Create -T $userId -v $addr -m $mode");
}
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -927,6 +935,7 @@ sub changeVM {
# Add to directory entry
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Create_DM -T $userId -v $addr -a $type -n $devcount"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Create_DM -T $userId -v $addr -a $type -n $devcount");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -945,6 +954,7 @@ sub changeVM {
# Add a full volume page or spool disk to the system
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Page_or_Spool_Volume_Add -T $userId $argStr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Page_or_Spool_Volume_Add -T $userId $argStr");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -953,6 +963,7 @@ sub changeVM {
my $addr = $args->[1];
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_CPU_Define_DM -T $userId -v $addr -b 0 -d 1 -y 0"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_CPU_Define_DM -T $userId -v $addr -b 0 -d 1 -y 0");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1118,6 +1129,7 @@ sub changeVM {
# Find a free FCP device channel
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId" | egrep -i "FCP device number|Status"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId | egrep -i FCP device number|Status");
my @devices = split( "\n", $out );
my $status;
my $found = 0;
@ -1180,6 +1192,7 @@ sub changeVM {
# Get user directory entry
my $userEntry = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $userId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Query_DM -T $userId | sed '\$d'");
# Find DEDICATE statement in the entry (dedicate one if one does not exist)
my $dedicate = `echo "$userEntry" | egrep -i "DEDICATE $device"`;
@ -1313,9 +1326,11 @@ sub changeVM {
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_LAN -T $userId -v $addr -l $lan -o $owner"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_LAN -T $userId -v $addr -l $lan -o $owner");
}
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_LAN_DM -T $userId -v $addr -n $lan -o $owner"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_LAN_DM -T $userId -v $addr -n $lan -o $owner");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1330,11 +1345,13 @@ sub changeVM {
# Connect to VSwitch in directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_Vswitch_DM -T $userId -v $addr -n $vswitch"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_Vswitch_DM -T $userId -v $addr -n $vswitch");
# Connect to VSwitch in active configuration
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_Vswitch -T $userId -v $addr -n $vswitch"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Connect_Vswitch -T $userId -v $addr -n $vswitch");
}
$out = xCAT::zvmUtils->appendHostname( $node, $out );
@ -1594,12 +1611,14 @@ sub changeVM {
# Dedicate device to directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Dedicate_DM -T $userId -v $vaddr -r $raddr -R $mode"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Device_Dedicate_DM -T $userId -v $vaddr -r $raddr -R $mode");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Dedicate device to active configuration
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Dedicate -T $userId -v $vaddr -r $raddr -R $mode"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Device_Dedicate -T $userId -v $vaddr -r $raddr -R $mode");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -1609,6 +1628,7 @@ sub changeVM {
# deleteipl
elsif ( $args->[0] eq "--deleteipl" ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_IPL_Delete_DM -T $userId"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_IPL_Delete_DM -T $userId");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1722,6 +1742,7 @@ sub changeVM {
my $addr = $args->[1];
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Disconnect_DM -T $userId -v $addr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Disconnect_DM -T $userId -v $addr");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1757,6 +1778,7 @@ sub changeVM {
# Remove from user directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Delete_DM -T $userId -v $addr -e 0"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Delete_DM -T $userId -v $addr -e 0");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1772,6 +1794,7 @@ sub changeVM {
# Remove from user directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Adapter_Delete_DM -T $userId -v $addr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Adapter_Delete_DM -T $userId -v $addr");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1781,6 +1804,7 @@ sub changeVM {
# Remove from user directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_CPU_Delete_DM -T $userId -v $addr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_CPU_Delete_DM -T $userId -v $addr");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -1799,6 +1823,7 @@ sub changeVM {
my $updateEntry = 0;
my $userEntryFile = "/tmp/$node.txt";
my $userEntry = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $userId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Query_DM -T $userId | sed '\$d'");
chomp($userEntry);
if (!$wwpn && !$lun) {
# If no WWPN or LUN is provided, delete all LOADDEV statements
@ -1939,12 +1964,15 @@ sub changeVM {
# Lock image
`ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Lock_DM -T $userId"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Lock_DM -T $userId");
# Replace user directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Replace_DM -T $userId -f $file"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Replace_DM -T $userId -f $file");
# Unlock image
`ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Unlock_DM -T $userId"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Unlock_DM -T $userId");
# Delete file on xCAT and zHCP
`rm -rf $file`;
@ -1972,12 +2000,15 @@ sub changeVM {
# Lock image
`ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Lock_DM -T $userId"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Lock_DM -T $userId");
# Replace user directory entry
$out = `ssh $::SUDOER\@$hcp "cat $file | $::SUDO $::DIR/smcli Image_Replace_DM -T $userId -s"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp cat $file | $::SUDO $::DIR/smcli Image_Replace_DM -T $userId -s");
# Unlock image
`ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Unlock_DM -T $userId"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Unlock_DM -T $userId");
# Delete created file on zHCP
`ssh $::SUDOER\@$hcp "rm -rf $file"`;
@ -2011,6 +2042,7 @@ sub changeVM {
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_IPL_Set_DM -T $userId -s $trgt -l $loadparms -p $parms"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_IPL_Set_DM -T $userId -s $trgt -l $loadparms -p $parms");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -2019,6 +2051,7 @@ sub changeVM {
my $pw = $args->[1];
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Password_Set_DM -T $userId -p $pw"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Password_Set_DM -T $userId -p $pw");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -2040,6 +2073,7 @@ sub changeVM {
# Get user directory entry
my $userEntry = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $userId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Query_DM -T $userId | sed '\$d'");
# Delete old directory entry file
my $userEntryFile = "/tmp/$node.txt";
@ -2100,12 +2134,14 @@ sub changeVM {
# Undedicate device in directory entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Undedicate_DM -T $userId -v $vaddr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Device_Undedicate_DM -T $userId -v $vaddr");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Undedicate device in active configuration
my $ping = `pping $node`;
if (!($ping =~ m/noping/i)) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Undedicate -T $userId -v $vaddr"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Device_Undedicate -T $userId -v $vaddr");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -2119,6 +2155,7 @@ sub changeVM {
# Add disk to running system
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Share -T $userId -k img_vol_addr=$volAddr -k share_enable=$share"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Share -T $userId -k img_vol_addr=$volAddr -k share_enable=$share");
$out = xCAT::zvmUtils->appendHostname( $node, $out );
}
@ -2136,6 +2173,7 @@ sub changeVM {
# Get current CPU count and address
my $proc = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Definition_Query_DM -T $userId -k CPU" | grep CPU=`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Definition_Query_DM -T $userId -k CPU | grep CPU=");
while ( index( $proc, "CPUADDR" ) != -1) {
my $position = index($proc, "CPUADDR");
my $address = substr($proc, $position + 8, 2);
@ -2150,14 +2188,17 @@ sub changeVM {
# Add new CPUs
if ( $cpuCount > @allCpu ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k CPU_MAXIMUM=COUNT=$cpuCount -k TYPE=ESA"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k CPU_MAXIMUM=COUNT=$cpuCount -k TYPE=ESA");
while ( $count < $cpuCount - @allCpu ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k CPU=CPUADDR=$addrLeft[$count]"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k CPU=CPUADDR=$addrLeft[$count]");
$count++;
}
# Remove CPUs
} else {
while ( $count <= @allCpu - $cpuCount ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_CPU_Delete_DM -T $userId -v $allCpu[@allCpu-$count]"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_CPU_Delete_DM -T $userId -v $allCpu[@allCpu-$count]");
$count++;
}
}
@ -2178,9 +2219,11 @@ sub changeVM {
# Set initial memory to 1M first, make this function able to increase/descrease the storage
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k STORAGE_INITIAL=1M"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k STORAGE_INITIAL=1M");
# Set both initial memory and maximum memory to be the same
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k STORAGE_INITIAL=$size -k STORAGE_MAXIMUM=$size"`;
xCAT::zvmUtils->printSyslog("changeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Definition_Update_DM -T $userId -k STORAGE_INITIAL=$size -k STORAGE_MAXIMUM=$size");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
$out = "";
@ -2242,12 +2285,14 @@ sub powerVM {
# Power on virtual server
if ( $args->[0] eq 'on' ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Activate -T $userId"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Activate -T $userId");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
# Power off virtual server
elsif ( $args->[0] eq 'off' ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -2257,6 +2302,7 @@ sub powerVM {
sleep(90); # Wait 1.5 minutes before logging user off
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -2278,6 +2324,7 @@ sub powerVM {
elsif ( $args->[0] eq 'reset' ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Deactivate -T $userId -f IMMED");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Wait for output
@ -2286,6 +2333,7 @@ sub powerVM {
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Activate -T $userId"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Activate -T $userId");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -2327,12 +2375,14 @@ sub powerVM {
# Pause a virtual server
elsif ( $args->[0] eq 'pause' ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Pause -T $userId -k PAUSE=YES"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Pause -T $userId -k PAUSE=YES");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
# Unpause a virtual server
elsif ( $args->[0] eq 'unpause' ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Pause -T $userId -k PAUSE=NO"`;
xCAT::zvmUtils->printSyslog("powerVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Pause -T $userId -k PAUSE=NO");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
}
@ -2763,6 +2813,7 @@ sub listVM {
my $vdasd = $args->[1];
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Query -T $userId -k $vdasd"`;
xCAT::zvmUtils->printSyslog("listVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Disk_Query -T $userId -k $vdasd");
}
# Get zFCP disk pool configuration
@ -2780,6 +2831,7 @@ sub listVM {
# Get user entry
elsif ( !$args->[0] ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $userId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("listVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Query_DM -T $userId | sed '\$d'");
} else {
$out = "$node: (Error) Option not supported";
}
@ -3057,6 +3109,7 @@ sub makeVM {
# Create virtual server
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Create_DM -T $userId -f $userEntry"`;
xCAT::zvmUtils->printSyslog("makeVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Create_DM -T $userId -f $userEntry");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Check output
@ -3129,6 +3182,7 @@ sub makeVM {
# Create virtual server
$out = `ssh $::SUDOER\@$hcp "cat $file | $::SUDO $::DIR/smcli Image_Create_DM -T $userId -s"`;
xCAT::zvmUtils->printSyslog("makeVM- ssh $::SUDOER\@$hcp cat $file | $::SUDO $::DIR/smcli Image_Create_DM -T $userId -s");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Check output
@ -3230,7 +3284,7 @@ sub cloneVM {
}
}
xCAT::zvmUtils->printSyslog("cloneVM() srcHcp:$srcHcp sourceId:$sourceId srcOs:$srcOs srcNetwork:$srcNetwork srcMask:$srcMask");
xCAT::zvmUtils->printSyslog("cloneVM- srcHcp:$srcHcp sourceId:$sourceId srcOs:$srcOs srcNetwork:$srcNetwork srcMask:$srcMask");
foreach (@nodes) {
xCAT::zvmUtils->printLn( $callback, "$_: Cloning $sourceNode" );
@ -3321,7 +3375,7 @@ sub cloneVM {
$out = xCAT::zvmUtils->generateMacId($::SUDOER, $tgtHcp);
}
xCAT::zvmUtils->printSyslog("cloneVM() tgtHcp:$tgtHcp tgtId:$tgtId targetMac:$targetMac macId:$macId");
xCAT::zvmUtils->printSyslog("cloneVM- tgtHcp:$tgtHcp tgtId:$tgtId targetMac:$targetMac macId:$macId");
}
#*** Link source disks ***
@ -3346,8 +3400,8 @@ sub cloneVM {
# Output is similar to:
# MDISK=VDEV=0100 DEVTYPE=3390 START=0001 COUNT=10016 VOLID=EMC2C4 MODE=MR
$out = `ssh $::SUDOER\@$srcHcp "$::SUDO $::DIR/smcli Image_Definition_Query_DM -T $sourceId -k MDISK"`;
xCAT::zvmUtils->printSyslog("cloneVM() smcli Image_Definition_Query_DM -T $sourceId -k MDISK");
xCAT::zvmUtils->printSyslog("cloneVM() $out");
xCAT::zvmUtils->printSyslog("cloneVM- smcli Image_Definition_Query_DM -T $sourceId -k MDISK");
xCAT::zvmUtils->printSyslog("cloneVM- $out");
my $srcDiskDet = xCAT::zvmUtils->trimStr($out);
foreach (@srcDisks) {
@ -3378,7 +3432,7 @@ sub cloneVM {
my $srcDiskAddr = $words[0];
$srcDiskSize{$srcDiskAddr} = $words[3];
xCAT::zvmUtils->printSyslog("cloneVM() addr:$addr type:$type srcDiskAddr:$srcDiskAddr srcDiskSize:$words[3]");
xCAT::zvmUtils->printSyslog("cloneVM- addr:$addr type:$type srcDiskAddr:$srcDiskAddr srcDiskSize:$words[3]");
}
}
@ -3447,8 +3501,8 @@ sub cloneVM {
# Find the NIC address
xCAT::zvmCPUtils->loadVmcp($::SUDOER, $sourceNode);
$out = `ssh $::SUDOER\@$srcHcp "$::SUDO $::DIR/smcli Image_Definition_Query_DM -T $sourceId -k NICDEF"`;
xCAT::zvmUtils->printSyslog("cloneVM() smcli Image_Definition_Query_DM -T $sourceId -k NICDEF");
xCAT::zvmUtils->printSyslog("cloneVM() $out");
xCAT::zvmUtils->printSyslog("cloneVM- smcli Image_Definition_Query_DM -T $sourceId -k NICDEF");
xCAT::zvmUtils->printSyslog("cloneVM- $out");
# Output is similar to:
# NICDEF_PROFILE=VDEV=0800 TYPE=QDIO LAN=SYSTEM SWITCHNAME=VSW2
# NICDEF=VDEV=0900 TYPE=QDIO DEVICES=3 LAN=SYSTEM SWITCHNAME=GLAN1
@ -3472,7 +3526,7 @@ sub cloneVM {
# Extract NIC address
@words = ($lines[$i] =~ m/=(\S+)/g);
$srcNicAddr = $words[0];
xCAT::zvmUtils->printSyslog("cloneVM() hcpNetName:$hcpNetName srcNicAddr:$srcNicAddr");
xCAT::zvmUtils->printSyslog("cloneVM- hcpNetName:$hcpNetName srcNicAddr:$srcNicAddr");
# Grab only the 1st match
last;
@ -3537,8 +3591,8 @@ sub cloneVM {
}
$out = `ssh $::SUDOER\@$srcHcp "$::SUDO $::DIR/smcli Image_Deactivate -T $sourceId -f IMMED"`;
xCAT::zvmUtils->printSyslog("cloneVM() smcli Image_Deactivate -T $sourceId -f IMMED");
xCAT::zvmUtils->printSyslog("cloneVM() $out");
xCAT::zvmUtils->printSyslog("cloneVM- smcli Image_Deactivate -T $sourceId -f IMMED");
xCAT::zvmUtils->printSyslog("cloneVM- $out");
#*** Clone source node ***
# Remove flashcopy lock (if any)
@ -3709,7 +3763,7 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: (Solution) Verify that the node's IP address is specified in the hosts table and then run makehosts" );
return;
}
xCAT::zvmUtils->printSyslog("clone() hcp:$hcp tgtUserId:$tgtUserId targetIp:$targetIp");
xCAT::zvmUtils->printSyslog("clone- hcp:$hcp tgtUserId:$tgtUserId targetIp:$targetIp");
my $out;
my @lines;
@ -3735,7 +3789,7 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: (Error) Missing disk pool. Please specify one." );
return;
}
xCAT::zvmUtils->printSyslog("clone() pool:$pool");
xCAT::zvmUtils->printSyslog("clone- pool:$pool");
# Get multi password
# It is Ok not have a password
@ -3826,11 +3880,13 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Trying again ($try) to create user directory entry" );
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Create_DM -T $tgtUserId -f $userEntry"`;
xCAT::zvmUtils->printSyslog("clone() smcli Image_Create_DM -T $tgtUserId -f $userEntry");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- smcli Image_Create_DM -T $tgtUserId -f $userEntry");
xCAT::zvmUtils->printSyslog("clone- $out");
# Check if user entry is created
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $tgtUserId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("clone- smcli Image_Query_DM -T $tgtUserId | sed '\$d'");
xCAT::zvmUtils->printSyslog("clone- $out");
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
if ( $rc == -1 ) {
@ -3910,8 +3966,8 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Trying again ($try) to add minidisk ($addr)" );
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 3390 -a AUTOG -r $pool -u 1 -z $cyl -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw"`;
xCAT::zvmUtils->printSyslog("clone() smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 3390 -a AUTOG -r $pool -u 1 -z $cyl -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 3390 -a AUTOG -r $pool -u 1 -z $cyl -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw");
xCAT::zvmUtils->printSyslog("clone- $out");
# Check output
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
@ -3953,8 +4009,8 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Trying again ($try) to add minidisk ($addr)" );
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 9336 -a AUTOG -r $pool -u 1 -z $blks -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw"`;
xCAT::zvmUtils->printSyslog("clone() smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 9336 -a AUTOG -r $pool -u 1 -z $blks -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- smcli Image_Disk_Create_DM -T $tgtUserId -v $addr -t 9336 -a AUTOG -r $pool -u 1 -z $blks -m $mode -f 1 -R $tgtPw -W $tgtPw -M $tgtPw");
xCAT::zvmUtils->printSyslog("clone- $out");
# Check output
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
@ -3988,8 +4044,8 @@ sub clone {
# Get disks within user entry
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $tgtUserId" | sed '\$d' | grep "MDISK"`;
xCAT::zvmUtils->printSyslog("clone() smcli Image_Query_DM -T $tgtUserId | grep MDISK");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- smcli Image_Query_DM -T $tgtUserId | grep MDISK");
xCAT::zvmUtils->printSyslog("clone- $out");
@disks = split( '\n', $out );
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Disks added (" . @tgtDisks . "). Disks in user entry (" . @disks . ")" );
@ -4049,7 +4105,7 @@ sub clone {
$out = `ssh -o ConnectTimeout=5 $::SUDOER\@$hcp "$::SUDO /sbin/vmcp link $tgtUserId $_ $tgtAddr MR $tgtPw"`;
# If link fails
if ( $out =~ m/not linked/i ) {
if ( $out =~ m/not linked/i || $out =~ m/not write-enabled/i ) {
# Wait before trying again
sleep(5);
@ -4083,7 +4139,7 @@ sub clone {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Copying source disk ($srcAddr) to target disk ($tgtAddr) using FLASHCOPY" );
if (xCAT::zvmUtils->smapi4xcat($::SUDOER, $hcp)) {
$out = xCAT::zvmCPUtils->smapiFlashCopy($::SUDOER, $hcp, $sourceId, $srcAddr, $tgtUserId, $tgtAddr);
xCAT::zvmUtils->printSyslog("clone() smapiFlashCopy:$out");
xCAT::zvmUtils->printSyslog("clone- smapiFlashCopy:$out");
# Exit if flashcopy completed successfully
# Otherwsie, try CP FLASHCOPY
@ -4119,7 +4175,7 @@ sub clone {
# Flashcopy source disk
$out = xCAT::zvmCPUtils->flashCopy( $::SUDOER, $hcp, $srcAddr, $tgtAddr );
xCAT::zvmUtils->printSyslog("clone() flashCopy:$out");
xCAT::zvmUtils->printSyslog("clone- flashCopy:$out");
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
if ( $rc == -1 ) {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: $out" );
@ -4159,7 +4215,7 @@ sub clone {
if ($tgtDiskType eq '3390') {
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Formating target disk ($tgtAddr)" );
$out = `ssh $::SUDOER\@$hcp "$::SUDO /sbin/dasdfmt -b 4096 -y -f /dev/$tgtDevNode"`;
xCAT::zvmUtils->printSyslog("clone() dasdfmt -b 4096 -y -f /dev/$tgtDevNode");
xCAT::zvmUtils->printSyslog("clone- dasdfmt -b 4096 -y -f /dev/$tgtDevNode");
# Check for errors
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
@ -4184,8 +4240,8 @@ sub clone {
$out = "(Error) Failed to copy /dev/$srcDevNode";
}
xCAT::zvmUtils->printSyslog("clone() dd if=/dev/$srcDevNode of=/dev/$tgtDevNode bs=4096 oflag=sync");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- dd if=/dev/$srcDevNode of=/dev/$tgtDevNode bs=4096 oflag=sync");
xCAT::zvmUtils->printSyslog("clone- $out");
} else {
# Copy source disk to target disk
# Block size = 512
@ -4197,8 +4253,8 @@ sub clone {
$out = "(Error) Failed to copy /dev/$srcDevNode";
}
xCAT::zvmUtils->printSyslog("clone() dd if=/dev/$srcDevNode of=/dev/$tgtDevNode bs=512 oflag=sync");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- dd if=/dev/$srcDevNode of=/dev/$tgtDevNode bs=512 oflag=sync");
xCAT::zvmUtils->printSyslog("clone- $out");
# Force Linux to re-read partition table
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Forcing Linux to re-read partition table" );
@ -4227,14 +4283,6 @@ EOM"`;
sleep(2);
}
# Re-scan partition table
$out = `ssh $::SUDOER\@$hcp "$::SUDO /usr/sbin/partprobe /dev/$tgtDevNode"`; # SLES
xCAT::zvmUtils->printSyslog("clone() /usr/sbin/partprobe /dev/$tgtDevNode");
xCAT::zvmUtils->printSyslog("clone() $out");
$out = `ssh $::SUDOER\@$hcp "$::SUDO /sbin/partprobe /dev/$tgtDevNode"`; # RHEL
xCAT::zvmUtils->printSyslog("clone() /sbin/partprobe /dev/$tgtDevNode");
xCAT::zvmUtils->printSyslog("clone() $out");
# Disable and enable target disk
$out = xCAT::zvmUtils->disableEnableDisk( $::SUDOER, $hcp, "-d", $tgtAddr );
$out = xCAT::zvmUtils->disableEnableDisk( $::SUDOER, $hcp, "-e", $tgtAddr );
@ -4250,12 +4298,21 @@ EOM"`;
# Disk can contain more than 1 partition. Find the right one (not swap)
$out = `ssh $::SUDOER\@$hcp "$::SUDO /usr/bin/file -s /dev/$tgtDevNode*"`;
xCAT::zvmUtils->printSyslog("clone() file -s /dev/$tgtDevNode*");
xCAT::zvmUtils->printSyslog("clone() $out");
xCAT::zvmUtils->printSyslog("clone- file -s /dev/$tgtDevNode*");
xCAT::zvmUtils->printSyslog("clone- $out");
$out = `ssh $::SUDOER\@$hcp "$::SUDO /usr/bin/file -s /dev/$tgtDevNode*" | grep -v swap | grep -o "$tgtDevNode\[0-9\]"`;
xCAT::zvmUtils->printSyslog("clone() file -s /dev/$tgtDevNode* | grep -v swap | grep -o $tgtDevNode\[0-9\]");
xCAT::zvmUtils->printSyslog("clone() $out");
$out = "";
$try = 5;
while (!$out && $try > 0) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO /usr/bin/file -s /dev/$tgtDevNode*" | grep -v swap | grep -o "$tgtDevNode\[1-9\]"`;
$out = xCAT::zvmUtils->trimStr($out);
xCAT::zvmUtils->printSyslog("clone- file -s /dev/$tgtDevNode* | grep -v swap | grep -o $tgtDevNode\[0-9\]");
xCAT::zvmUtils->printSyslog("clone- $out");
# Wait before trying again
sleep(5);
$try = $try - 1;
}
my @tgtDevNodes = split( "\n", $out );
my $iTgtDevNode = 0;
@ -4268,7 +4325,7 @@ EOM"`;
while ( !(`ssh $::SUDOER\@$hcp "$::SUDO ls $cloneMntPt"`) && $try > 0 ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO mkdir -p $cloneMntPt"`;
$out = `ssh $::SUDOER\@$hcp "$::SUDO mount /dev/$tgtDevNode $cloneMntPt"`;
xCAT::zvmUtils->printSyslog("clone() mount /dev/$tgtDevNode $cloneMntPt");
xCAT::zvmUtils->printSyslog("clone- mount /dev/$tgtDevNode $cloneMntPt");
# If more than 1 partition, try other partitions
if (@tgtDevNodes > 1 && $iTgtDevNode < @tgtDevNodes) {
@ -4291,17 +4348,17 @@ EOM"`;
# Set hostname
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Setting network configuration" );
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$sourceNode/$tgtNode/i\" $cloneMntPt/etc/HOSTNAME"`;
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$sourceNode/$tgtNode/i $cloneMntPt/etc/HOSTNAME");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$sourceNode/$tgtNode/i $cloneMntPt/etc/HOSTNAME");
# If Red Hat - Set hostname in /etc/sysconfig/network
if ( $srcOs =~ m/rhel/i ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$sourceNode/$tgtNode/i\" $cloneMntPt/etc/sysconfig/network"`;
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$sourceNode/$tgtNode/i $cloneMntPt/etc/sysconfig/network");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$sourceNode/$tgtNode/i $cloneMntPt/etc/sysconfig/network");
}
# Get network layer
my $layer = xCAT::zvmCPUtils->getNetworkLayer( $::SUDOER, $hcp, $hcpNetName );
xCAT::zvmUtils->printSyslog("clone() hcp:$hcp hcpNetName:$hcpNetName layer:$layer");
xCAT::zvmUtils->printSyslog("clone- hcp:$hcp hcpNetName:$hcpNetName layer:$layer");
# Get network configuration file
# Location of this file depends on the OS
@ -4310,9 +4367,9 @@ EOM"`;
# If it is Red Hat - ifcfg-qeth file is in /etc/sysconfig/network-scripts
my @files;
if ( $srcOs =~ m/rhel/i ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network-scripts"`;
xCAT::zvmUtils->printSyslog("clone() grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network-scripts");
xCAT::zvmUtils->printSyslog("clone() $out");
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network-scripts"`;
xCAT::zvmUtils->printSyslog("clone- grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network-scripts");
xCAT::zvmUtils->printSyslog("clone- $out");
@files = split('\n', $out);
@words = split( ':', $files[0] );
$srcIfcfg = $words[0];
@ -4320,9 +4377,9 @@ EOM"`;
# If it is SLES 10 - ifcfg-qeth file is in /etc/sysconfig/network
elsif ( $srcOs =~ m/sles10/i ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-qeth*"`;
xCAT::zvmUtils->printSyslog("clone() grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-qeth*");
xCAT::zvmUtils->printSyslog("clone() $out");
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-qeth*"`;
xCAT::zvmUtils->printSyslog("clone- grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-qeth*");
xCAT::zvmUtils->printSyslog("clone- $out");
@files = split('\n', $out);
@words = split( ':', $files[0] );
$srcIfcfg = $words[0];
@ -4330,9 +4387,9 @@ EOM"`;
# If it is SLES 11 - ifcfg-qeth file is in /etc/sysconfig/network
elsif ( $srcOs =~ m/sles11/i ) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-eth*"`;
xCAT::zvmUtils->printSyslog("clone() grep -H -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-eth*");
xCAT::zvmUtils->printSyslog("clone() $out");
$out = `ssh $::SUDOER\@$hcp "$::SUDO grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-eth*"`;
xCAT::zvmUtils->printSyslog("clone- grep -H -i -r $srcNicAddr $cloneMntPt/etc/sysconfig/network/ifcfg-eth*");
xCAT::zvmUtils->printSyslog("clone- $out");
@files = split('\n', $out);
@words = split( ':', $files[0] );
$srcIfcfg = $words[0];
@ -4362,12 +4419,12 @@ EOM"`;
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$sourceNode/$tgtNode/i\" \ -e \"s/$sourceIp/$targetIp/i\" $cloneMntPt/etc/hosts"`;
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$sourceIp/$targetIp/i\" \ -e \"s/$sourceNode/$tgtNode/i\" $ifcfgPath"`;
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$sourceNode/$tgtNode/i \ -e s/$sourceIp/$targetIp/i $cloneMntPt/etc/hosts");
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$sourceIp/$targetIp/i \ -e s/$sourceNode/$tgtNode/i $ifcfgPath");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$sourceNode/$tgtNode/i \ -e s/$sourceIp/$targetIp/i $cloneMntPt/etc/hosts");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$sourceIp/$targetIp/i \ -e s/$sourceNode/$tgtNode/i $ifcfgPath");
if ($tgtNetwork && $tgtMask) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$srcNetwork/$tgtNetwork/i\" \ -e \"s/$srcMask/$tgtMask/i\" $ifcfgPath"`;
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$srcNetwork/$tgtNetwork/i \ -e s/$srcMask/$tgtMask/i $ifcfgPath");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$srcNetwork/$tgtNetwork/i \ -e s/$srcMask/$tgtMask/i $ifcfgPath");
}
# Set MAC address
@ -4389,7 +4446,7 @@ EOM"`;
$config .= "UNIQUE=''\n";
}
}
xCAT::zvmUtils->printSyslog("clone() $config");
xCAT::zvmUtils->printSyslog("clone- $config");
# Write network configuration
# You cannot SCP file over to mount point as sudo, so you have to copy file to zHCP
@ -4407,14 +4464,14 @@ EOM"`;
# Set MAC address
$out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e \"s/$srcMac/$targetMac/i\" $ifcfgPath"`;
xCAT::zvmUtils->printSyslog("clone() sed --in-place -e s/$srcMac/$targetMac/i $ifcfgPath");
xCAT::zvmUtils->printSyslog("clone- sed --in-place -e s/$srcMac/$targetMac/i $ifcfgPath");
} else {
#*** SuSE Linux ***
# Get hardware configuration
# hwcfg-qeth file is in /etc/sysconfig/hardware
my $hwcfgPath = $cloneMntPt . "/etc/sysconfig/hardware/hwcfg-qeth-bus-ccw-0.0.$srcNicAddr";
xCAT::zvmUtils->printSyslog("clone() hwcfgPath=$hwcfgPath");
xCAT::zvmUtils->printSyslog("clone- hwcfgPath=$hwcfgPath");
my $hardwareFile = $tgtNode . "HardwareConfig";
$out = `ssh $::SUDOER\@$hcp "$::SUDO cat $hwcfgPath" | grep -v "QETH_LAYER2_SUPPORT" > /tmp/$hardwareFile`;
$out = `echo "QETH_LAYER2_SUPPORT='1'" >> /tmp/$hardwareFile`;
@ -4456,6 +4513,7 @@ EOM"`;
# Power on target virtual server
xCAT::zvmUtils->printLn( $callback, "$tgtNode: Powering on" );
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Activate -T $tgtUserId"`;
xCAT::zvmUtils->printSyslog("clone- smcli Image_Activate -T $tgtUserId");
# Check for error
$rc = xCAT::zvmUtils->checkOutput( $callback, $out );
@ -4670,6 +4728,7 @@ sub nodeSet {
# Search directory entry for network name
my $userEntry = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Query_DM -T $userId" | sed '\$d'`;
xCAT::zvmUtils->printSyslog("nodeSet- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Query_DM -T $userId | sed '\$d'");
$out = `echo "$userEntry" | grep "NICDEF"`;
my @lines = split( '\n', $out );
@ -5749,10 +5808,14 @@ sub netBoot {
# Boot node
my $out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Activate -T $userId"`;
xCAT::zvmUtils->printSyslog("netBoot- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Activate -T $userId");
xCAT::zvmUtils->printSyslog("netBoot- $out");
# IPL when virtual server is online
sleep(5);
$out = xCAT::zvmCPUtils->sendCPCmd( $::SUDOER, $hcp, $userId, "IPL $ipl[1]" );
xCAT::zvmUtils->printSyslog("netBoot- IPL $ipl[1]");
xCAT::zvmUtils->printSyslog("netBoot- $out");
xCAT::zvmUtils->printLn( $callback, "$node: Booting from $ipl[1]... Done" );
return;
@ -6207,12 +6270,14 @@ sub changeHypervisor {
$volume = $args->[3];
$group = $args->[4];
$tmp = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Space_Define_DM -T $hcpUserId -f $funct -g $_ -v $volume -p $group -y 0"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Space_Define_DM -T $hcpUserId -f $funct -g $_ -v $volume -p $group -y 0");
}
# Add existing region to group
elsif($funct eq "5") {
$group = $args->[3];
$tmp = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Space_Define_DM -T $hcpUserId -f $funct -g $_ -p $group -y 0"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Space_Define_DM -T $hcpUserId -f $funct -g $_ -p $group -y 0");
}
$out .= $tmp;
@ -6231,6 +6296,7 @@ sub changeHypervisor {
# Add an ECKD disk to a running z/VM system
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_Disk_Add -T $hcpUserId -k $devNo"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_Disk_Add -T $hcpUserId -k $devNo");
}
# addscsi [dev_no] [dev_path] [option] [persist]
@ -6280,8 +6346,8 @@ sub changeHypervisor {
my $persist = "persist=" . $args->[4];
# Add disk to running system
# $out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_SCSI_Disk_Add -T $hcpUserId -k $devNo -k $devPath -k $option -k $persist"`;
xCAT::zvmUtils->printLn( $callback, "$node: smcli System_SCSI_Disk_Add -T $hcpUserId -k $devNo -k $devPath -k $option -k $persist" );
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_SCSI_Disk_Add -T $hcpUserId -k $devNo -k $devPath -k $option -k $persist"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_SCSI_Disk_Add -T $hcpUserId -k $devNo -k $devPath -k $option -k $persist");
}
# addvlan [name] [owner] [type] [transport]
@ -6298,6 +6364,7 @@ sub changeHypervisor {
}
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_LAN_Create -T $hcpUserId -n $name -o $owner -t $type -p $transport"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_LAN_Create -T $hcpUserId -n $name -o $owner -t $type -p $transport");
}
# addvswitch [name] [osa_dev_addr] [port_name] [controller] [connect (0, 1, or 2)] [memory_queue] [router] [transport] [vlan_id] [port_type] [update] [gvrp] [native_vlan]
@ -6320,6 +6387,7 @@ sub changeHypervisor {
}
$out .= `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Vswitch_Create -T $hcpUserId $argStr"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Vswitch_Create -T $hcpUserId $argStr");
}
# addzfcp2pool [pool] [status] [wwpn] [lun] [size] [range] [owner (optional)]
@ -6415,11 +6483,13 @@ sub changeHypervisor {
if ($funct eq "2" || $funct eq "7") {
$group = $args->[3];
$tmp = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Space_Remove_DM -T $hcpUserId -f $funct -r $_ -g $group"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Space_Remove_DM -T $hcpUserId -f $funct -r $_ -g $group");
}
# Remove region | Remove region from all groups
elsif ($funct eq "1" || $funct eq "3") {
$tmp = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Space_Remove_DM -T $hcpUserId -f $funct -r $_"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Space_Remove_DM -T $hcpUserId -f $funct -r $_");
}
$out .= $tmp;
@ -6439,6 +6509,7 @@ sub changeHypervisor {
# Delete a real SCSI disk
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_SCSI_Disk_Delete -T $hcpUserId -k $devNo -k $persist"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_SCSI_Disk_Delete -T $hcpUserId -k $devNo -k $persist");
}
# removevlan [name] [owner]
@ -6448,6 +6519,7 @@ sub changeHypervisor {
# Delete a virtual network
$out = `ssh $hcp "$::DIR/smcli Virtual_Network_LAN_Delete -T $hcpUserId -n $name -o $owner"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $hcp $::DIR/smcli Virtual_Network_LAN_Delete -T $hcpUserId -n $name -o $owner");
}
# removevswitch [name]
@ -6456,6 +6528,7 @@ sub changeHypervisor {
# Delete a VSWITCH
$out = `ssh $hcp "$::DIR/smcli Virtual_Network_Vswitch_Delete -T $hcpUserId -n $name"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $hcp $::DIR/smcli Virtual_Network_Vswitch_Delete -T $hcpUserId -n $name");
}
# removezfcpfrompool [pool] [lun] [wwpn (optional)]
@ -6554,6 +6627,7 @@ sub changeHypervisor {
# Pass arguments directly to smcli
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli $str"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli $str");
}
# Otherwise, print out error
@ -6698,6 +6772,7 @@ sub inventoryHypervisor {
# Check whether disk pool is a valid pool
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Volume_Space_Query_DM -q 1 -e 3 -n $pool -T $hcpUserId" | grep "Failed"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Image_Volume_Space_Query_DM -q 1 -e 3 -n $pool -T $hcpUserId");
if ($out) {
xCAT::zvmUtils->printLn( $callback, "$node: Disk pool $pool does not exist" );
return;
@ -6792,6 +6867,7 @@ sub inventoryHypervisor {
if ($space eq "active" || $space eq "free" || $space eq "offline") {
if ($details) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId");
@devices = split( "\n", $out );
for ($i = 0; $i < @devices; $i++) {
@ -6818,7 +6894,8 @@ sub inventoryHypervisor {
}
} else {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId" | egrep -i "FCP device number|Status"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_WWPN_Query -T $hcpUserId | egrep -i FCP device number|Status");
@devices = split( "\n", $out );
for ($i = 0; $i < @devices; $i++) {
# Extract the device number and status
@ -6855,7 +6932,8 @@ sub inventoryHypervisor {
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k fcp_dev=$fcp" | egrep -i "FCP device number:|World wide port number:|Logical unit number:|Number of bytes residing on the logical unit:"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k fcp_dev=$fcp | egrep -i FCP device number:|World wide port number:|Logical unit number:|Number of bytes residing on the logical unit:");
my @wwpns = split( "\n", $out );
my %map;
@ -6922,6 +7000,7 @@ sub inventoryHypervisor {
# This has not be completed!
my $failedId = $args->[1];
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Response_Recovery -T $hcpUserId -k $failedId"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Response_Recovery -T $hcpUserId -k $failedId");
}
# freefcp [fcp_dev]
@ -6935,6 +7014,7 @@ sub inventoryHypervisor {
my $fcp = "fcp_dev=" . $args->[1];
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k $fcp"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k $fcp");
}
# scsidisk [dev_no]
@ -6948,16 +7028,19 @@ sub inventoryHypervisor {
my $devNo = "dev_num=" . $args->[1];
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_SCSI_Disk_Query -T $hcpUserId -k $devNo"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_SCSI_Disk_Query -T $hcpUserId -k $devNo");
}
# ssi
elsif ( $args->[0] eq "--ssi" ) {
elsif ( $args->[0] eq "--ssi" ) {
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli SSI_Query"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli SSI_Query");
}
# smapilevel
elsif ( $args->[0] eq "--smapilevel" ) {
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Query_API_Functional_Level -T $hcpUserId"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Query_API_Functional_Level -T $hcpUserId");
}
# systemdisk [dev_no]
@ -6971,6 +7054,7 @@ sub inventoryHypervisor {
my $devNo = "dev_num=" . $args->[1];
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_Disk_Query -T $hcpUserId -k $devNo"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_Disk_Query -T $hcpUserId -k $devNo");
}
# systemdiskaccessibility [dev_no]
@ -6984,6 +7068,7 @@ sub inventoryHypervisor {
my $devNo = "dev_num=" . $args->[1];
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_Disk_Accessibility -T $hcpUserId -k $devNo"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_Disk_Accessibility -T $hcpUserId -k $devNo");
}
# vlanstats [vlan_id] [user_id] [device] [version]
@ -7006,6 +7091,7 @@ sub inventoryHypervisor {
}
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_VLAN_Query_Stats -T $hcpUserId $argStr"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_VLAN_Query_Stats -T $hcpUserId $argStr");
}
# vswitchstats [name] [version]
@ -7025,6 +7111,7 @@ sub inventoryHypervisor {
}
$str = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Virtual_Network_Vswitch_Query_Stats -T $hcpUserId $argStr"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli Virtual_Network_Vswitch_Query_Stats -T $hcpUserId $argStr");
}
# wwpn [fcp_device] (supported only on z/VM 6.2)
@ -7037,7 +7124,8 @@ sub inventoryHypervisor {
}
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k fcp_dev=$fcp" | egrep -i "World wide port number:"`;
xCAT::zvmUtils->printSyslog("changeHypervisor- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli System_FCP_Free_Query -T $hcpUserId -k fcp_dev=$fcp | egrep -i World wide port number:");
my @wwpns = split( "\n", $out );
my %uniqueWwpns;
foreach (@wwpns) {
@ -7217,6 +7305,7 @@ sub migrateVM {
# Begin migration
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli $migrateCmd"`;
xCAT::zvmUtils->printSyslog("migrateVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli $migrateCmd");
xCAT::zvmUtils->printLn( $callback, "$node: $out" );
# Check for errors on migration only
@ -7228,6 +7317,7 @@ sub migrateVM {
my $isMigrated = 0;
while ($check > 0) {
$out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli VMRELOCATE_Status -T $hcpUserId" -k status_target=$userId`;
xCAT::zvmUtils->printSyslog("migrateVM- ssh $::SUDOER\@$hcp $::SUDO $::DIR/smcli VMRELOCATE_Status -T $hcpUserId -k status_target=$userId");
if ( $out =~ m/No active relocations found/i ) {
$isMigrated = 1;
last;