Add script to make table definitions for z/VM.
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@4283 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
31d979a273
commit
10fe928cf4
125
xCAT-server/share/xcat/tools/mkzvmnodes
Normal file
125
xCAT-server/share/xcat/tools/mkzvmnodes
Normal file
@ -0,0 +1,125 @@
|
||||
#!/usr/bin/perl
|
||||
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||||
#-------------------------------------------------------
|
||||
|
||||
=head1 mkzvmnodes
|
||||
|
||||
Description : This is a script to make definitions for z/VM nodes
|
||||
Arguments : mkzvmnodes < Node range >
|
||||
userid=< UserID range >
|
||||
ip= <IP address range >
|
||||
hcp=< Hardware control point >
|
||||
groups=< Group >
|
||||
Returns : Nothing
|
||||
Example : mkzvmnodes gpok140+9 userid=LINUX140+9 ip=9.60.18.140+9 hcp=gpok456.endicott.ibm.com groups=all
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
#-------------------------------------------------------
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
# This script makes the following commands for each node in the range:
|
||||
# mkdef -t node -o gpok123 userid=linux123 ip=9.60.18.123 hcp=gpok456.endicott.ibm.com mgt=zvm groups=all
|
||||
|
||||
# Get node range
|
||||
my $nodeRange = $ARGV[0];
|
||||
|
||||
# Get inputs
|
||||
# Hash array containing arguments
|
||||
my %args;
|
||||
my @parms;
|
||||
my $i;
|
||||
foreach $i ( 1 .. $#ARGV ) {
|
||||
@parms = split( "=", $ARGV[$i] );
|
||||
$args{ $parms[0] } = $parms[1];
|
||||
}
|
||||
|
||||
# --- Generate nodes ---
|
||||
my @nodes;
|
||||
@parms = split( /\+/, $nodeRange );
|
||||
my $topNo = $parms[1];
|
||||
|
||||
# Get non digits from string
|
||||
$parms[0] =~ m/(\D+)/;
|
||||
my $baseStr = $1;
|
||||
|
||||
# Get digits from string
|
||||
$parms[0] =~ m/(\d+)/;
|
||||
my $baseNo = $1;
|
||||
|
||||
my $no;
|
||||
my $node;
|
||||
foreach $i ( 0 .. $topNo ) {
|
||||
|
||||
# Node + 1
|
||||
$no = $baseNo + $i;
|
||||
$node = $baseStr . $no;
|
||||
push( @nodes, $node );
|
||||
}
|
||||
|
||||
# --- Generate user IDs ---
|
||||
my @userIDs;
|
||||
@parms = split( /\+/, $args{"userid"} );
|
||||
$topNo = $parms[1];
|
||||
|
||||
# Get non digits from string
|
||||
$parms[0] =~ m/(\D+)/;
|
||||
$baseStr = $1;
|
||||
|
||||
# Get digits from string
|
||||
$parms[0] =~ m/(\d+)/;
|
||||
$baseNo = $1;
|
||||
|
||||
my $userID;
|
||||
foreach $i ( 0 .. $topNo ) {
|
||||
|
||||
# UserID + 1
|
||||
$no = $baseNo + $i;
|
||||
$userID = $baseStr . $no;
|
||||
push( @userIDs, $userID );
|
||||
}
|
||||
|
||||
# --- Generate IP addresses ---
|
||||
# Only IPv4 supported
|
||||
my @ips;
|
||||
@parms = split( /\+/, $args{"ip"} );
|
||||
$topNo = $parms[1];
|
||||
|
||||
# Get non digits from string
|
||||
@parms = split( /\./, $parms[0] );
|
||||
$baseStr = $parms[0] . "." . $parms[1] . "." . $parms[2] . ".";
|
||||
|
||||
# Get digits from string
|
||||
$baseNo = $parms[3];
|
||||
|
||||
my $ip;
|
||||
foreach $i ( 0 .. $topNo ) {
|
||||
|
||||
# IP address + 1
|
||||
$no = $baseNo + $i;
|
||||
$ip = $baseStr . $no;
|
||||
push( @ips, $ip );
|
||||
}
|
||||
|
||||
# Check if # of nodes = # of user IDs
|
||||
if ( @nodes != @userIDs || @nodes != @ips ) {
|
||||
print "Error: Number of nodes != Number of user IDs or Number of IP addresses\n";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
# --- Generate and execute command ---
|
||||
$i = 0;
|
||||
my $cmd;
|
||||
my @cmds;
|
||||
my $out;
|
||||
|
||||
foreach (@nodes) {
|
||||
$cmd = "mkdef -t node -o $_ userid=$userIDs[$i] ip=$ips[$i] hcp=$args{'hcp'} mgt=zvm groups=$args{'groups'}";
|
||||
$out = `$cmd`;
|
||||
print "$_: Done\n";
|
||||
$i++;
|
||||
push( @cmds, $cmd );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user