mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	defect 3369: to add the flag -g for genimage command like for sles that make rh could handle the case that the kernel version is different with the name of kernel rpm when using -k to specify a new kernel version.
This commit is contained in:
		| @@ -132,7 +132,7 @@ in the install image. | ||||
|  | ||||
| =item B<-g> I<krpmver> | ||||
|  | ||||
| This flag is for SLES only. Use this flag to specify the rpm version for kernel packages in the image. It must be present if -k flag is specified in the command for SLES. | ||||
| Use this flag to specify the rpm version for kernel packages in the image. It must be present if -k flag is specified in the command for SLES. Generally, the value of -g is the part after B<linux-> and before B<.rpm> in a kernel rpm name.  | ||||
|  | ||||
| =item B<-m> statelite | ||||
|  | ||||
|   | ||||
| @@ -270,14 +270,6 @@ sub process_request { | ||||
|        return 1; | ||||
|    } | ||||
|  | ||||
|    if ($krpmver) { | ||||
|        if ($osfamily ne "sles") { | ||||
| 	   $krpmver=""; | ||||
| 	   $callback->({error=>["-g flag is valid for Sles only."],errorcode=>[1]}); | ||||
| 	   return 1; | ||||
|        } | ||||
|    }    | ||||
|  | ||||
|    my $cmd="cd $profDir; ./genimage"; | ||||
|    if ($arch) { $cmd .= " -a $arch";} | ||||
|    if ($osver) { $cmd .= " -o $osver";} | ||||
|   | ||||
| @@ -48,6 +48,7 @@ my $tmplimit; | ||||
| my $installroot = "/install"; | ||||
| my $kerneldir; | ||||
| my $kernelver = ""; #`uname -r`; | ||||
| my $krpmver; | ||||
| my $basekernelver; # = $kernelver; | ||||
| my $customdir=$fullpath; | ||||
| $customdir =~ s/.*share\/xcat/$installroot\/custom/; | ||||
| @@ -80,6 +81,7 @@ GetOptions( | ||||
|    'l=s' => \$rootlimit, | ||||
|    't=s' => \$tmplimit, | ||||
|    'k=s' => \$kernelver, | ||||
|    'g=s' => \$krpmver, | ||||
|    'permission=s' => \$permission, | ||||
|    'kerneldir=s' => \$kerneldir,    | ||||
|    'tempfile=s' =>\$tempfile, #internal flag | ||||
| @@ -266,16 +268,19 @@ unless ($onlyinitrd) { | ||||
|             # replace the kernel package with the name has the specific version | ||||
|             foreach my $p (@$pa) { | ||||
|                 if ($p =~ /^kernel$/ && $kernelver) { | ||||
|                     my $kernelname = "kernel-".$kernelver; | ||||
|                     my $kernelname; | ||||
|                     if ($krpmver) { | ||||
|                         $kernelname = "kernel-".$krpmver; | ||||
|                     } else { | ||||
|                         $kernelname = "kernel-".$kernelver; | ||||
|                     } | ||||
|                     my $searchkern = $yumcmd . " list $kernelname -q"; | ||||
|                     my @kernpkgs = `$searchkern`; | ||||
|                     my $found = 0; | ||||
|                     foreach my $k (@kernpkgs) { | ||||
|                         if ($k =~ /\s*kernel[^\s]*\s+([\w\.-]+)/) { | ||||
|                             my $version = $1; | ||||
|                             my $relversion = $kernelver; | ||||
|                             $relversion =~ s/\.[^\.]+$//; | ||||
|                             if ($version == $relversion) { | ||||
|                             if ($kernelver =~ /$version/) { | ||||
|                                 $found++; | ||||
|                             } | ||||
|                         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user