from Logger import Logger from CommandUtils import CommandUtils from constants import constants import os.path class ChrootUtils(object): def __init__(self,logName=None,logPath=None): if logName is None: logName = "ChrootUtils" if logPath is None: logPath = constants.logPath self.logName=logName self.logPath=logPath self.logger=Logger.getLogger(logName,logPath) def createChroot(self,chrootName): chrootID=constants.buildRootPath+"/"+chrootName if os.path.isdir(chrootID): if not self.destroyChroot(chrootID): self.logger.error("Given chroot "+chrootID+" is already exists. unable to destroy it ") return False,None # need to add timeout for this step # http://stackoverflow.com/questions/1191374/subprocess-with-timeout cmdUtils=CommandUtils() returnVal=cmdUtils.runCommandInShell("mkdir -p "+chrootID) if not returnVal: self.logger.error("Unable to create chroot:"+ chrootID +".Unknown error.") return False,None return True,chrootID def destroyChroot(self,chrootID): # need to add timeout for this step # http://stackoverflow.com/questions/1191374/subprocess-with-timeout cmdUtils=CommandUtils() returnVal=cmdUtils.runCommandInShell("./clean-up-chroot.py "+chrootID) if not returnVal: self.logger.error("Unable to destroy chroot:"+ chrootID +".Unknown error.") return False returnVal=cmdUtils.runCommandInShell("rm -rf "+chrootID) if not returnVal: self.logger.error("Unable to destroy chroot:"+ chrootID +".Unknown error.") return False self.logger.info("Successfully destroyed chroot:"+chrootID) return True