From a83217bfe8a90ab59bda7e6dd713bd54e6c965cb Mon Sep 17 00:00:00 2001 From: jjhua Date: Wed, 19 Dec 2012 03:19:15 +0000 Subject: [PATCH] support mutiple ospkgdir path in rhels genimage git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14680 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-server/share/xcat/netboot/rh/genimage | 30 ++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/xCAT-server/share/xcat/netboot/rh/genimage b/xCAT-server/share/xcat/netboot/rh/genimage index 52528291e..a0d16277a 100755 --- a/xCAT-server/share/xcat/netboot/rh/genimage +++ b/xCAT-server/share/xcat/netboot/rh/genimage @@ -16,7 +16,7 @@ use File::Find; use Getopt::Long; use Cwd qw(realpath); use File::Temp qw/mkdtemp/; - +use xCAT::Table; use FindBin; use lib "$FindBin::Bin/../imgutils"; use imgutils; @@ -194,12 +194,34 @@ foreach (@ndrivers) { unless ($onlyinitrd) { @yumdirs=(); - find(\&isyumdir, <$installroot/$osver/$arch/>); + + if( $imagename ) { + my $linuximagetab = xCAT::Table->new('linuximage'); + unless ($linuximagetab){ + print "Unable to open linuximage table"; + exit 1; + } + + my $ent = $linuximagetab->getAttribs({'imagename' => "$imagename"}, ['pkgdir']); + my $pkgdir = $ent->{'pkgdir'}; + my @pkgdirs = split(",", $pkgdir); + my $dir; + foreach $dir (@pkgdirs) { + find(\&isyumdir, <$dir/>); + if (!grep /$dir/, @yumdirs) { + print "The repository for $dir should be created before running the genimge. Try to run [createrepo $dir].\n"; + } + } + + } else { + find(\&isyumdir, <$installroot/$osver/$arch/>); + } + # Add the dir for kernel rpm to be installed if ($kernelver) { find(\&isyumdir, <$kerneldir/>); if (!grep /$kerneldir/, @yumdirs) { - print "The repository for $kerneldir should be created before running the geniamge. Try to run [createrepo $kerneldir].\n"; + print "The repository for $kerneldir should be created before running the genimge. Try to run [createrepo $kerneldir].\n"; } } unless (scalar(@yumdirs)) { @@ -218,8 +240,6 @@ unless ($onlyinitrd) { close($yumconfig); mkpath "$rootimg_dir/etc"; - - my $fd; open($fd,">>","$rootimg_dir/etc/fstab"); print $fd "#Dummy fstab for rpm postscripts to see\n";