def lookup(self, name): try: swupdate = SoftwareUpdate() except Exception: raise OperationFailed('GGBPKGUPD0004E') return swupdate.getUpdate(name)
def __init__(self, **kargs): self.task = TaskModel(**kargs) self.objstore = kargs['objstore'] self.pkgs2update = [] try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None
class PackageUpdateModel(object): def __init__(self, **kargs): self.task = TaskModel(**kargs) self.objstore = kargs['objstore'] self.pkgs2update = [] try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None def lookup(self, name): if self.host_swupdate is None: raise OperationFailed('GGBPKGUPD0004E') return self.host_swupdate.getUpdate(name) def _resolve_dependencies(self, package=None, dep_list=None): """ Resolve the dependencies for a given package from the dictionary of eligible packages to be upgraded. """ if dep_list is None: dep_list = [] if package is None: return [] dep_list.append(package) deps = self.host_swupdate.getPackageDeps(package) for pkg in deps: if pkg in dep_list: break self._resolve_dependencies(pkg, dep_list) return dep_list def upgrade(self, name): """ Execute the update of a specific package (and its dependencies, if necessary) in the system. @param: Name @return: task """ if self.host_swupdate is None: raise OperationFailed('GGBPKGUPD0004E') self.pkgs2update = self.host_swupdate.getUpdates() pkgs_list = self._resolve_dependencies(name) msg = 'The following packages will be updated: ' + ', '.join(pkgs_list) wok_log.debug(msg) taskid = AsyncTask( '/plugins/gingerbase/host/packagesupdate/%s/upgrade' % name, self.host_swupdate.doUpdate, pkgs_list).id return self.task.lookup(taskid)
class PackageUpdateModel(object): def __init__(self, **kargs): self.task = TaskModel(**kargs) self.objstore = kargs['objstore'] self.pkgs2update = [] try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None def lookup(self, name): if self.host_swupdate is None: raise OperationFailed('GGBPKGUPD0004E') return self.host_swupdate.getUpdate(name) def _resolve_dependencies(self, package=None, dep_list=None): """ Resolve the dependencies for a given package from the dictionary of eligible packages to be upgraded. """ if dep_list is None: dep_list = [] if package is None: return [] dep_list.append(package) deps = self.host_swupdate.getUpdate(package)['depends'] for pkg in set(deps).intersection(self.pkgs2update): if pkg in dep_list: break self._resolve_dependencies(pkg, dep_list) return dep_list def upgrade(self, name): """ Execute the update of a specific package (and its dependencies, if necessary) in the system. @param: Name @return: task """ if self.host_swupdate is None: raise OperationFailed('GGBPKGUPD0004E') self.pkgs2update = self.host_swupdate.getUpdates() pkgs_list = self._resolve_dependencies(name) msg = 'The following packages will be updated: ' + ', '.join(pkgs_list) wok_log.debug(msg) taskid = add_task('/plugins/gingerbase/host/packagesupdate/%s/upgrade' % name, self.host_swupdate.doUpdate, self.objstore, pkgs_list) return self.task.lookup(taskid)
def swupdate(self, *name): try: swupdate = SoftwareUpdate() except: raise OperationFailed('GGBPKGUPD0004E') pkgs = swupdate.getNumOfUpdates() if pkgs == 0: raise OperationFailed('GGBPKGUPD0001E') wok_log.debug('Host is going to be updated.') taskid = add_task('/plugins/gingerbase/host/swupdate', swupdate.doUpdate, self.objstore, None) return self.task.lookup(taskid)
def swupdate(self, *name): try: swupdate = SoftwareUpdate() except Exception: raise OperationFailed('GGBPKGUPD0004E') pkgs = swupdate.getNumOfUpdates() if pkgs == 0: wok_log.debug(messages['GGBPKGUPD0001E']) return {'message': messages['GGBPKGUPD0001E']} wok_log.debug('Host is going to be updated.') taskid = AsyncTask('/plugins/gingerbase/host/swupdate', swupdate.doUpdate).id return self.task.lookup(taskid)
def swupdate(self, *name): try: swupdate = SoftwareUpdate() except: raise OperationFailed('GGBPKGUPD0004E') pkgs = swupdate.getNumOfUpdates() if pkgs == 0: wok_log.debug(messages['GGBPKGUPD0001E']) return {'message': messages['GGBPKGUPD0001E']} wok_log.debug('Host is going to be updated.') taskid = AsyncTask('/plugins/gingerbase/host/swupdate', swupdate.doUpdate).id return self.task.lookup(taskid)
class PackageDepsModel(object): def __init__(self, **kargs): try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None def get_list(self, pkg): return self.host_swupdate.getPackageDeps(pkg)
def lookup(self, *name): try: swupdate = SoftwareUpdate() except: raise OperationFailed('GGBPKGUPD0004E') taskid = add_task('/plugins/gingerbase/host/swupdateprogress', swupdate.tailUpdateLogs, self.objstore, None) return self.task.lookup(taskid)
def lookup(self, *name): try: swupdate = SoftwareUpdate() except Exception: raise OperationFailed('GGBPKGUPD0004E') taskid = AsyncTask('/plugins/gingerbase/host/swupdateprogress', swupdate.tailUpdateLogs).id return self.task.lookup(taskid)
class PackagesUpdateModel(object): def __init__(self, **kargs): try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None def get_list(self): if self.host_swupdate is None: raise OperationFailed('GGBPKGUPD0004E') return self.host_swupdate.getUpdates()
def lookup(self, *ident): report_tool = DebugReportsModel.get_system_report_tool() try: SoftwareUpdate() except Exception: update_tool = False else: update_tool = True try: repo = Repositories() except Exception: repo_mngt_tool = None else: repo_mngt_tool = repo._pkg_mnger.TYPE return {'system_report_tool': bool(report_tool), 'update_tool': update_tool, 'repo_mngt_tool': repo_mngt_tool, 'federation': kconfig.get("server", "federation") }
def __init__(self, **kargs): wok_log.info('*** Ginger Base: Running capabilities tests ***') self.report_tool = self.has_report_tool() wok_log.info('System Report Tool ...: %s' % str(self.report_tool)) try: SoftwareUpdate() except Exception: self.update_tool = False else: self.update_tool = True wok_log.info('System Update Tool ...: %s' % str(self.update_tool)) try: repo = Repositories() except Exception: self.repo_mngt_tool = None else: self.repo_mngt_tool = repo._pkg_mnger.TYPE wok_log.info('Repo Management Tool .: %s' % str(self.repo_mngt_tool)) wok_log.info('*** Ginger Base: Capabilities tests completed ***')
def __init__(self, **kargs): try: self.host_swupdate = SoftwareUpdate() except: self.host_swupdate = None