def buildGivenPackages(self, listPackages): returnVal = self.calculateParams(listPackages) if not returnVal: self.logger.error( "Unable to set paramaters. Terminating the package manager.") return False statusEvent = threading.Event() numWorkerThreads = self.calculatePossibleNumWorkerThreads() if numWorkerThreads > 8: numWorkerThreads = 8 if numWorkerThreads == 0: return False self.initializeScheduler(statusEvent) self.initializeThreadPool(statusEvent) i = 0 while i < numWorkerThreads: workerName = "WorkerThread" + str(i) ThreadPool.addWorkerThread(workerName) ThreadPool.startWorkerThread(workerName) i = i + 1 statusEvent.wait() Scheduler.stopScheduling = True self.logger.info("Waiting for all remaining worker threads") listWorkerObjs = ThreadPool.getAllWorkerObjects() for w in listWorkerObjs: w.join() setFailFlag = False allPackagesBuilt = False if Scheduler.isAnyPackagesFailedToBuild(): setFailFlag = True if Scheduler.isAllPackagesBuilt(): allPackagesBuilt = True if setFailFlag: self.logger.error("Some of the packages failed:") self.logger.error(Scheduler.listOfFailedPackages) return False if not setFailFlag: if allPackagesBuilt: self.logger.info("All packages built successfully") else: self.logger.error("Build stopped unexpectedly.Unknown error.") return False self.logger.info("Terminated") return True
def buildGivenPackages(self, listPackages, buildThreads): if constants.rpmCheck: alreadyBuiltRPMS = self.readAlreadyAvailablePackages() listPackages = list( set(listPackages) | (set(constants.listMakeCheckRPMPkgtoInstall) - set(alreadyBuiltRPMS))) returnVal = self.calculateParams(listPackages) if not returnVal: self.logger.error( "Unable to set paramaters. Terminating the package manager.") raise Exception("Unable to set paramaters") statusEvent = threading.Event() self.initializeScheduler(statusEvent) self.initializeThreadPool(statusEvent) i = 0 while i < buildThreads: workerName = "WorkerThread" + str(i) ThreadPool.addWorkerThread(workerName) ThreadPool.startWorkerThread(workerName) i = i + 1 statusEvent.wait() Scheduler.stopScheduling = True self.logger.info("Waiting for all remaining worker threads") listWorkerObjs = ThreadPool.getAllWorkerObjects() for w in listWorkerObjs: w.join() setFailFlag = False allPackagesBuilt = False if Scheduler.isAnyPackagesFailedToBuild(): setFailFlag = True if Scheduler.isAllPackagesBuilt(): allPackagesBuilt = True if setFailFlag: self.logger.error("Some of the packages failed:") self.logger.error(Scheduler.listOfFailedPackages) raise Exception("Failed during building package") if not setFailFlag: if allPackagesBuilt: self.logger.info("All packages built successfully") else: self.logger.error("Build stopped unexpectedly.Unknown error.") raise Exception("Unknown error") self.logger.info("Terminated")
def buildGivenPackages (self, listPackages): returnVal=self.calculateParams(listPackages) if not returnVal: self.logger.error("Unable to set paramaters. Terminating the package manager.") return False statusEvent=threading.Event() numWorkerThreads=self.calculatePossibleNumWorkerThreads() if numWorkerThreads > 8: numWorkerThreads = 8 if numWorkerThreads == 0: return False self.initializeScheduler(statusEvent) self.initializeThreadPool(statusEvent) i=0 while i < numWorkerThreads: workerName="WorkerThread"+str(i) ThreadPool.addWorkerThread(workerName) ThreadPool.startWorkerThread(workerName) i = i + 1 statusEvent.wait() Scheduler.stopScheduling=True self.logger.info("Waiting for all remaining worker threads") listWorkerObjs=ThreadPool.getAllWorkerObjects() for w in listWorkerObjs: w.join() setFailFlag=False allPackagesBuilt=False if Scheduler.isAnyPackagesFailedToBuild(): setFailFlag=True if Scheduler.isAllPackagesBuilt(): allPackagesBuilt=True if setFailFlag: self.logger.error("Some of the packages failed:") self.logger.error(Scheduler.listOfFailedPackages) return False if not setFailFlag: if allPackagesBuilt: self.logger.info("All packages built successfully") else: self.logger.error("Build stopped unexpectedly.Unknown error.") return False self.logger.info("Terminated") return True
def buildGivenPackages (self, listPackages, buildThreads): if constants.rpmCheck: alreadyBuiltRPMS=self.readAlreadyAvailablePackages() listPackages=list(set(listPackages)|(set(constants.listMakeCheckRPMPkgtoInstall)-set(alreadyBuiltRPMS))) returnVal=self.calculateParams(listPackages) if not returnVal: self.logger.error("Unable to set paramaters. Terminating the package manager.") raise Exception("Unable to set paramaters") statusEvent=threading.Event() self.initializeScheduler(statusEvent) self.initializeThreadPool(statusEvent) i=0 while i < buildThreads: workerName="WorkerThread"+str(i) ThreadPool.addWorkerThread(workerName) ThreadPool.startWorkerThread(workerName) i = i + 1 statusEvent.wait() Scheduler.stopScheduling=True self.logger.info("Waiting for all remaining worker threads") listWorkerObjs=ThreadPool.getAllWorkerObjects() for w in listWorkerObjs: w.join() setFailFlag=False allPackagesBuilt=False if Scheduler.isAnyPackagesFailedToBuild(): setFailFlag=True if Scheduler.isAllPackagesBuilt(): allPackagesBuilt=True if setFailFlag: self.logger.error("Some of the packages failed:") self.logger.error(Scheduler.listOfFailedPackages) raise Exception("Failed during building package") if not setFailFlag: if allPackagesBuilt: self.logger.info("All packages built successfully") else: self.logger.error("Build stopped unexpectedly.Unknown error.") raise Exception("Unknown error") self.logger.info("Terminated")