diff --git a/xCAT-server/lib/xcat/plugins/kit.pm b/xCAT-server/lib/xcat/plugins/kit.pm index b20cf4602..25667850b 100644 --- a/xCAT-server/lib/xcat/plugins/kit.pm +++ b/xCAT-server/lib/xcat/plugins/kit.pm @@ -397,7 +397,7 @@ sub assign_to_osimage my $tabs = shift; (my $kitcomptable) = $tabs->{kitcomponent}->getAttribs({kitcompname=> $kitcomp}, 'kitname', 'kitreponame', 'basename', 'kitcompdeps', 'kitpkgdeps', 'prerequisite', 'exlist', 'genimage_postinstall','postbootscripts', 'driverpacks'); - (my $osimagetable) = $tabs->{osimage}->getAttribs({imagename=> $osimage}, 'provmethod', 'osarch', 'postbootscripts', 'kitcomponents'); + (my $osimagetable) = $tabs->{osimage}->getAttribs({imagename=> $osimage}, 'provmethod', 'osarch', 'postbootscripts', 'kitcomponents', 'osvers'); (my $linuximagetable) = $tabs->{linuximage}->getAttribs({imagename=> $osimage}, 'rootimgdir', 'exlist', 'postinstall', 'otherpkglist', 'otherpkgdir', 'driverupdatesrc'); # Reading installdir. @@ -616,7 +616,25 @@ sub assign_to_osimage unless ( -d "$otherpkgdir" ) { mkpath("$otherpkgdir"); } - if ( $debianflag ) + # Consider the mixed environment + my $imagerhelflag = 0; + if ( $osimagetable and $osimagetable->{osvers} ) { + if ($osimagetable->{osvers} =~ /rhel/){ + $imagerhelflag = 1; + } + } + + + if ( $debianflag && $imagerhelflag) + { + unless ( -d "$otherpkgdir/$kitcomptable->{kitreponame}" ) + { + system("ln -sf $kitrepodir $otherpkgdir/$kitcomptable->{kitreponame} "); + } + } + + + elsif ( $debianflag ) { unless ( -d "$otherpkgdir/$kitcomptable->{kitreponame}" ) {