mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			204 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env perl
 | |
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| use Getopt::Long;
 | |
| use Data::Dumper; 
 | |
| use Term::ANSIColor;
 | |
| use Time::Local;
 | |
| BEGIN
 | |
| {
 | |
|     $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr';
 | |
| }
 | |
| use lib "$::XCATROOT/lib/perl";
 | |
| my $osver;
 | |
| my $log="/tmp/pkg.log";
 | |
| my $needhelp  = 0;
 | |
| my $setupenv = 0;
 | |
| my $clearenv = 0;
 | |
| my $setupenvinclude = 0;
 | |
| my $removerpm = 0;
 | |
| my $ospkg = 0;
 | |
| my $osimg;
 | |
| my $attr;
 | |
| my $int;
 | |
| if (
 | |
|     !GetOptions("h|?"  => \$needhelp,
 | |
|                 "s" => \$setupenv,
 | |
|                 "c"=>\$clearenv,
 | |
|                 "i"=>\$setupenvinclude,
 | |
|                 "r"=>\$removerpm,
 | |
|                 "o"=>\$ospkg,
 | |
|                 "g=s"=>\$::OSIMG,
 | |
|                 "t=s"=>\$::ATTR,
 | |
|                 "v=s"=>\$::OSVERSION)
 | |
|   )
 | |
| {
 | |
|     &usage;
 | |
|     exit 1;
 | |
| }
 | |
| 
 | |
| sub usage
 | |
| {
 | |
|     print "Usage:pkgtest.pl - Run xcat pkg test cases.\n";
 | |
|     print "  pkgtest.pl [-?|-h]\n";
 | |
|     print "  pkgtest.pl [-s] [-g osimage] [-t attribute] [-v os] set up package test environment \n";
 | |
|     print "  pkgtest.pl [-i] [-g osimage] [-t attribute] [-v os] set up package test environment using include package list\n";
 | |
|     print "  pkgtest.pl [-r] [-g osimage] [-t attribute] [-v os] remove package \n";
 | |
|     print "  pkgtest.pl [-c] [-g osimage] [-t attribute] [-v os] clear package test environment \n";
 | |
|     print "  pkgtest.pl [-o] [-g osimage] [-t attribute] [-v os] other package test  \n";
 | |
|     print "\n";
 | |
|     return;
 | |
| }
 | |
| 
 | |
| sub getimgattr
 | |
| {
 | |
|     my @output = `lsdef -t osimage -o  $osimg -i $attr`;
 | |
|     my $pkglistvalue;
 | |
|     print " output is @output \n";   
 | |
|     if($?){
 | |
|         print "unkonw";
 | |
|         return "Unknown";
 | |
|        }
 | |
|     if($? == 0){
 | |
|         foreach my $output1 (@output){
 | |
|              if($output1 =~ /$attr=(.*)/){
 | |
|              print "output1 is $output1 ,attrs is  value is $1 \n";
 | |
|              $pkglistvalue = $1 ;
 | |
|              }
 | |
|     }    }
 | |
|     return $pkglistvalue;
 | |
| }
 | |
|  
 | |
| sub setupenv
 | |
| {  
 | |
|       my $int = shift;
 | |
|       if ($ospkg){
 | |
|       `mkdir -p $int`;
 | |
|       `cp -rf /xcat-core/* $int`;
 | |
|        }else{
 | |
|             `cat "$int" >> /tmp/pkgtest.bak`;
 | |
|             }
 | |
|        if (($osver =~ /ubuntu/)&&($ospkg ==0)){
 | |
|            `echo "rpm" >>/tmp/pkgtest.bak `;
 | |
|            }else{
 | |
|            `echo "xCAT-test" >>/tmp/pkgtest.bak `; 
 | |
|            }
 | |
| }
 | |
| sub clearenv
 | |
| {
 | |
|     my $int = shift; 
 | |
|     if ($ospkg ==0){
 | |
|     `rm -rf /tmp/pkgtest.* `;
 | |
|     `rm -rf /install/pkgtest`;
 | |
|      }else{
 | |
|      `rm -rf /tmp/pkgtest.* `;
 | |
|      `rm -rf $int`;
 | |
|      }
 | |
| }
 | |
|  
 | |
| sub setupenvinclude
 | |
| {
 | |
|     my $int = shift;
 | |
|     if ($ospkg){
 | |
|     `mkdir -p $int`;
 | |
|     `cp -rf /xcat-core/* $int`;
 | |
|      }else{
 | |
|          ` cat $int >> /tmp/pkgtest.bak`;
 | |
|           }
 | |
|     if (($osver =~ /ubuntu/)&&($ospkg ==0)){
 | |
|         `echo "rpm" >>/tmp/pkgtest.bak `;
 | |
|         }else{
 | |
|         `echo "xCAT-test" >> /tmp/pkgtest.includelist `;
 | |
|         }
 | |
|     `echo "#INCLUDE:/tmp/pkgtest.includelist#">>/tmp/pkgtest.bak `;
 | |
| }
 | |
| sub removerpm
 | |
| {
 | |
|     my $int = shift;
 | |
|     if ($ospkg){
 | |
|     `mkdir -p $int`;
 | |
|     `cp -rf /xcat-core/* $int`;
 | |
|         }else{
 | |
|      `cat "$int" >> /tmp/pkgtest.bak`;
 | |
|           }
 | |
|     if (($osver =~ /ubuntu/)&&($ospkg ==0)){
 | |
|     `echo "-rpm" >>/tmp/pkgtest.bak `;
 | |
|     }elsif(($osver =~ /ubuntu/)&&($ospkg !=0)){
 | |
|     `echo "-xcat-test">>/tmp/pkgtest.bak`;
 | |
|     }else{
 | |
|     `echo "-xCAT-test" >>/tmp/pkgtest.bak`;
 | |
|     }
 | |
| }
 | |
|  
 | |
| if  ($needhelp)
 | |
| {
 | |
|     &usage;
 | |
|     exit 0;
 | |
| }
 | |
| if($::OSIMG)
 | |
| {
 | |
|     $osimg = $::OSIMG;
 | |
| }
 | |
| if($::ATTR)
 | |
| {
 | |
|     $attr = $::ATTR;
 | |
| }
 | |
| if($::OSVERSION)
 | |
| {
 | |
|    $osver = $::OSVERSION;
 | |
| }
 | |
| $int = getimgattr;
 | |
| if ( ($setupenv) || ($setupenvinclude) ||($removerpm))
 | |
| {
 | |
|     if (! -f "/tmp/int"){
 | |
|     `echo $int >> /tmp/int`;
 | |
|     }else{
 | |
|     print "please clear the pkg test environment first \n";
 | |
|     exit 1;
 | |
|     }
 | |
| }
 | |
| if ($setupenv)
 | |
| {
 | |
|    &setupenv($int);
 | |
| }
 | |
| if ($setupenvinclude)
 | |
| {
 | |
|     &setupenvinclude($int);
 | |
| }
 | |
| if ($removerpm)
 | |
| {
 | |
|     &removerpm($int);
 | |
| }
 | |
| if ($clearenv)
 | |
| {   
 | |
|     if (-f "/tmp/int"){
 | |
|     my $int=`cat /tmp/int`;
 | |
|     &clearenv($int);
 | |
|     `rm -rf /tmp/int`;
 | |
|     exit 0;
 | |
|     }else{
 | |
|     print "please set the pkg test environment first \n";
 | |
|     exit 1;
 | |
|     }
 | |
| }
 | |
| if (($setupenv) || ($setupenvinclude) ||($removerpm))
 | |
| {
 | |
|     `mkdir -p /install/pkgtest`;
 | |
|     `cp -rf /xcat-core/* /install/pkgtest`;
 | |
|     if (($osver !~ /ubuntu/)&&($ospkg ==0)){
 | |
|     `chdef -t osimage -o $osimg pkgdir=/install/pkgtest pkglist=/tmp/pkgtest.bak `;
 | |
|     }elsif (($osver !~ /ubuntu/)&&($ospkg !=0)){
 | |
|     `chdef -t osimage -o $osimg otherpkglist=/tmp/pkgtest.bak`;
 | |
|     }elsif(($osver =~ /ubuntu/)&&($ospkg !=0)){
 | |
|     `chdef -t osimage -o  $osimg otherpkglist="/tmp/pkgtest.bak" otherpkgdir="http://xcat.org/files/xcat/repos/apt/2.12/xcat-core trusty main"`;
 | |
|     }elsif(($osver =~ /ubuntu/)&&($ospkg ==0)){
 | |
|     `chdef -t osimage -o $osimg pkglist=/tmp/pkgtest.bak`;
 | |
|     }
 | |
| }
 | |
| if ($?)
 | |
| {
 | |
|      return 0;
 | |
| }
 |