def finishDownloadCallback(self, pkgName, downloadStatus): '''Finish download, start new download if have download in queue.''' # Remove pkgName from download list. utils.removeFromList(self.downloadingQueue, pkgName) del self.downloadingChannel[pkgName] # Call back if download success. if downloadStatus in [ DOWNLOAD_STATUS_COMPLETE, DOWNLOAD_STATUS_DONT_NEED ]: self.finishCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_FAILED: self.failedCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_TIMEOUT: print "Download %s timeout." % (pkgName) self.failedCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_STOP: print "Download %s stop." % (pkgName) elif downloadStatus == DOWNLOAD_STATUS_PAUSE: print "Download %s pause." % (pkgName) # Start new download thread if download list's length is not reach max limit. if len(self.downloadingQueue) < self.maxConcurrentDownloads and len( self.waitQueue) > 0: self.startDownloadThread(self.waitQueue.pop(0))
def stopDownload(self, pkgName): '''Stop download.''' # Send pause signal if package at download list. if pkgName in self.downloadingQueue: if self.downloadingChannel.has_key(pkgName): # Pause download. self.downloadingChannel[pkgName].signalChannel.put('PAUSE') else: print "Impossible: downloadingChannel not key '%s'" % (pkgName) # Otherwise just simple remove from download queue. else: utils.removeFromList(self.waitQueue, pkgName)
def removePkgFromIgnoreList(self, pkgNames): '''Remove package in ignore list.''' for pkgName in pkgNames: # Remove package from ignore list. utils.removeFromList(self.ignorePkgs, pkgName) # Add package to upgradable list if package upgradable. if self.cache.has_key(pkgName) and self.cache[pkgName].pkg.is_upgradable: self.upgradablePkgs.append(pkgName) # Record. self.upgradablePkgs = self.sortPackages(self.upgradablePkgs) # Update file content. writeFile("./ignorePkgs", str(self.ignorePkgs))
def finishAction(self, pkgName, actionType): '''Finish action, start new action if have action in queue.''' # Remove finish action. utils.removeFromList(self.queue, (pkgName, actionType)) # Start new action if queue has other request. if len(self.queue) > 0: (newPkgName, newActionType) = self.queue.pop(0) self.startActionThread(newPkgName, newActionType) # Otherwise release lock. else: self.lock = False self.pkgName = None self.actionType = None
def finishDownloadCallback(self, pkgName, downloadStatus): '''Finish download, start new download if have download in queue.''' # Remove pkgName from download list. utils.removeFromList(self.downloadingQueue, pkgName) del self.downloadingChannel[pkgName] # Call back if download success. if downloadStatus in [DOWNLOAD_STATUS_COMPLETE, DOWNLOAD_STATUS_DONT_NEED]: self.finishCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_FAILED: self.failedCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_TIMEOUT: print "Download %s timeout." % (pkgName) self.failedCallback(pkgName) elif downloadStatus == DOWNLOAD_STATUS_STOP: print "Download %s stop." % (pkgName) elif downloadStatus == DOWNLOAD_STATUS_PAUSE: print "Download %s pause." % (pkgName) # Start new download thread if download list's length is not reach max limit. if len(self.downloadingQueue) < self.maxConcurrentDownloads and len(self.waitQueue) > 0: self.startDownloadThread(self.waitQueue.pop(0))
def unselectPkg(self, pkgName): '''Un-select package.''' utils.removeFromList(self.selectList, pkgName)
def removePkgFromUninstallableList(self, pkgName): '''Remove package from uninstallable list.''' utils.removeFromList(self.uninstallablePkgs, pkgName)
def removePkgFromUpgradableList(self, pkgName): '''Remove package from upgradable list.''' utils.removeFromList(self.upgradablePkgs, pkgName)