-Try to honor the now prefered nicmodel/storagemodel columns in vm

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@7231 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2010-08-25 15:42:36 +00:00
parent 4991afc70a
commit 0395679e36
3 changed files with 20 additions and 3 deletions

View File

@ -25,7 +25,7 @@ sub grab_table_data{ #grab table data relevent to VM guest nodes
if ($vpdtab) {
$cfghash->{vpd} = $vpdtab->getNodesAttribs($noderange,['uuid']);
}
$cfghash->{vm} = $vmtab->getNodesAttribs($noderange,['node','host','migrationdest','cfgstore','storage','memory','cpus','nics','bootorder','virtflags']);
$cfghash->{vm} = $vmtab->getNodesAttribs($noderange,['node','host','migrationdest','cfgstore','storage','storagemodel','memory','cpus','nics','nicmodel','bootorder','virtflags']);
my $mactab = xCAT::Table->new("mac",-create=>1);
my $nrtab= xCAT::Table->new("noderes",-create=>1);
$cfghash->{mac} = $mactab->getAllNodeAttribs(['mac'],1);

View File

@ -1955,6 +1955,8 @@ sub create_storage_devs {
my %disktocont;
my $dev;
my @storelocs = split /,/,$tablecfg{vm}->{$node}->[0]->{storage};
my $globaldisktype = $tablecfg{vm}->{$node}->[0]->{storagemodel};
unless ($globaldisktype) { $globaldisktype='ide'; }
#number of devices is the larger of the specified sizes (TODO: masters) or storage pools to span
my $numdevs = (scalar @storelocs > scalar @sizes ? scalar @storelocs : scalar @sizes);
while ($numdevs-- > 0) {
@ -1963,7 +1965,7 @@ sub create_storage_devs {
my $disksize = shift @sizes;
unless (scalar @sizes) { @sizes = ($disksize); } #if we emptied the array, stick the last entry back on to allow it to specify all remaining disks
$disksize = getUnits($disksize,'G',1024);
$disktype = 'ide';
$disktype = $globaldisktype;
if ($storeloc =~ /=/) {
($storeloc,$disktype) = split /=/,$storeloc;
}

View File

@ -283,7 +283,11 @@ sub build_diskstruct {
my $diskhash;
$disk =~ s/=(.*)//;
my $model = $1;
unless ($model) { $model = 'ide'; }
unless ($model) {
#if not defined, model will stay undefined like above
$model = $confdata->{vm}->{$node}->[0]->{storagemodel}
unless ($model) { $model = 'ide'; } #if still not defined, ide
}
my $prefix='hd';
if ($model eq 'virtio') {
$prefix='vd';
@ -427,6 +431,9 @@ sub build_nicstruct {
}
$nic =~ s/.*://; #the detail of how the bridge was built is of no
#interest to this segment of code
if ($confdata->{vm}->{$node}->[0]->{nicmodel}) {
$type = $confdata->{vm}->{$node}->[0]->{nicmodel};
}
if ($nic =~ /=/) {
($nic,$type) = split /=/,$nic,2;
}
@ -822,6 +829,10 @@ sub createstorage {
}
$filename=~s/=(.*)//;
my $model=$1;
unless ($model) {
#if not defined, model will stay undefined like above
$model = $cfginfo->{storagemodel};
}
my $prefix='hd';
if ($model eq 'scsi') {
$prefix='sd';
@ -883,6 +894,10 @@ sub chvm {
$location =~ s/,.*//; #no comma specified parameters are valid
$location =~ s/=(.*)//; #store model if specified here
my $model = $1;
unless ($model) {
#if not defined, model will stay undefined like above
$model = $confdata->{vm}->{$node}->[0]->{storagemodel}
}
my $prefix='hd';
if ($model eq 'scsi') {
$prefix='sd';