mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-03 21:02:34 +00:00 
			
		
		
		
	Allow multiple WWPNs to be specified in zFCP pool.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15063 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		@@ -2116,4 +2116,34 @@ sub querySSI {
 | 
			
		||||
    $ssi =~ s/^\s*//;
 | 
			
		||||
    
 | 
			
		||||
    return $ssi;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#-------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
=head3   rExecute
 | 
			
		||||
 | 
			
		||||
    Description : Execute a remote command
 | 
			
		||||
    Arguments   :   User (root or non-root)
 | 
			
		||||
                    Node
 | 
			
		||||
    Returns     : Output returned from executing command
 | 
			
		||||
    Example     : my $out = xCAT::zvmUtils->rExecute($user, $node, $cmd);
 | 
			
		||||
    
 | 
			
		||||
=cut
 | 
			
		||||
 | 
			
		||||
#-------------------------------------------------------
 | 
			
		||||
sub rExecute {
 | 
			
		||||
	my ( $class, $user, $node, $cmd ) = @_;
 | 
			
		||||
	
 | 
			
		||||
	my $out;
 | 
			
		||||
	my $sudo = "sudo";
 | 
			
		||||
    if ($user eq "root") {
 | 
			
		||||
    	# Just execute the command if root        
 | 
			
		||||
        $out = `ssh $user\@$node "$cmd"`;
 | 
			
		||||
        return $out;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
	# Encapsulate command in single quotes
 | 
			
		||||
	$cmd = "'" . $cmd . "'";	
 | 
			
		||||
	$out = `ssh $user\@$node "$sudo sh -c $cmd"`;
 | 
			
		||||
	return $out;
 | 
			
		||||
}
 | 
			
		||||
@@ -1082,6 +1082,7 @@ sub changeVM {
 | 
			
		||||
        
 | 
			
		||||
        # If there are multiple paths, take the 1st one
 | 
			
		||||
        # Handle multi-pathing in postscript because autoyast/kickstart does not support it.
 | 
			
		||||
        my $origWwpn = $wwpn;
 | 
			
		||||
        if ($wwpn =~ m/;/i) {
 | 
			
		||||
            @tmp = split(';', $wwpn);
 | 
			
		||||
            $wwpn = xCAT::zvmUtils->trimStr($tmp[0]);
 | 
			
		||||
@@ -1233,12 +1234,12 @@ sub changeVM {
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            # Entry order: status,wwpn,lun,size,owner,channel,tag
 | 
			
		||||
            my $update = "used,$wwpn,$lun,$info[3],$info[4],$node,$device,$tag";
 | 
			
		||||
            my $update = "used,$info[1],$lun,$info[3],$info[4],$node,$device,$tag";
 | 
			
		||||
            my $expression = "'s#" . $select . "#" .$update . "#i'";
 | 
			
		||||
            $out = `ssh $::SUDOER\@$hcp "$::SUDO sed --in-place -e $expression $::ZFCPPOOL/$pool.conf"`;
 | 
			
		||||
        } else {
 | 
			
		||||
            # Insert device entry into file
 | 
			
		||||
            $out = `ssh $::SUDOER\@$hcp "$::SUDO echo \"used,$wwpn,$lun,$size,,$node,$device,$tag\" >> $::ZFCPPOOL/$pool.conf"`;
 | 
			
		||||
            $out = `ssh $::SUDOER\@$hcp "$::SUDO echo \"used,$origWwpn,$lun,$size,,$node,$device,$tag\" >> $::ZFCPPOOL/$pool.conf"`;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        xCAT::zvmUtils->printLn($callback, "$node: Adding FCP device... Done");
 | 
			
		||||
@@ -1538,13 +1539,13 @@ sub changeVM {
 | 
			
		||||
        my $mode  = $args->[3];
 | 
			
		||||
        
 | 
			
		||||
        # Dedicate device to directory entry
 | 
			
		||||
        $out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Dedicate_DM -T $userId -v $vaddr -r $raddr -o $mode"`;
 | 
			
		||||
        $out = `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 -o $mode"`;
 | 
			
		||||
            $out = `ssh $::SUDOER\@$hcp "$::SUDO $::DIR/smcli Image_Device_Dedicate -T $userId -v $vaddr -r $raddr -R $mode"`;
 | 
			
		||||
            xCAT::zvmUtils->printLn( $callback, "$node: $out" );
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user