mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| 
 | |
| import sys
 | |
| import os
 | |
| import platform
 | |
| 
 | |
| class xCatError(Exception):
 | |
|     def __init__(self, value):
 | |
|         self.value = value
 | |
|     def __str__(self):
 | |
|         return repr(self.value)
 | |
| 
 | |
| def isMounted(mountPoint):
 | |
|     if os.path.ismount(mountPoint):
 | |
|         return True
 | |
|     else:
 | |
|         return False
 | |
| 
 | |
| def run_command(cmd):
 | |
|     """
 | |
|     Function: run_command
 | |
|     Arguments: cmd - string to be run as a command
 | |
|     Description: runs the command then returns out and err
 | |
|     """
 | |
|     import subprocess
 | |
| 
 | |
|     p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
 | |
|     (out,err) = p.communicate()
 | |
|     return (out,err)
 | |
| 
 | |
| 
 | |
| def isRhel():
 | |
|     myDistro = platform.linux_distribution()
 | |
|     if "Red Hat Enterprise Linux Server" or "CentOS" in myDistro:
 | |
|        return True
 | |
|     else:
 | |
|        return False
 | |
| 
 | |
| def isSles():
 | |
|     myDistro = platform.linux_distribution()
 | |
|     if "SUSE Linux Enterprise Server" in myDistro:
 | |
|        return True
 | |
|     else:
 | |
|        return False
 | |
| 
 | |
| def isUbuntu():
 | |
|     myDistro = platform.linux_distribution()
 | |
|     if "Ubuntu" in myDistro:
 | |
|        return True
 | |
|     else:
 | |
|        return False
 | |
| 
 | |
| def getUserInput(question):
 | |
|     response = raw_input("%s: " %(question))
 | |
|     return response
 | |
| 
 | |
| def filterInstalledPackages(pkglist=[]):
 | |
|     fulllist = ""
 | |
| 
 | |
|     if isRhel():
 | |
|         # using YUM
 | |
|         import yum
 | |
|         yb = yum.YumBase()
 | |
| 
 | |
|         for x in pkglist:
 | |
|             if not yb.rpmdb.searchNevra(name='%s' %(x)):
 | |
|                 fulllist += "%s " %(x)
 | |
| 
 | |
|     return fulllist
 | |
| 
 | |
| def installPackages(pkglist=[]):
 | |
|     fulllist = filterInstalledPackages(pkglist)
 | |
| 
 | |
|     if isRhel():
 | |
|         if fulllist.strip() != "":
 | |
|             cmd = "yum -y install %s" %(fulllist)
 | |
|             out,err = xcatutils.run_command(cmd)
 | |
| 
 | |
|     elif isSles():
 | |
|         print "Using zyppr..."
 | |
|     elif isUbuntu():
 | |
|         print "Using apt-get..."
 | |
|     else:
 | |
|         print "Error!"
 | |
| 
 |