From 0f40ce99a8a68fdcb3111322acba7a80fbf335ea Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Tue, 11 Aug 2009 10:12:13 +0200 Subject: [PATCH] [entropy.server] remove SpmService instance attribute, create Spm() method --- libraries/entropy/server/interfaces/main.py | 38 +++++++++------ .../entropy/services/system/executors.py | 47 +++++++++++-------- server/server_reagent.py | 14 +++--- 3 files changed, 58 insertions(+), 41 deletions(-) diff --git a/libraries/entropy/server/interfaces/main.py b/libraries/entropy/server/interfaces/main.py index e7557fa02..a8c56faae 100644 --- a/libraries/entropy/server/interfaces/main.py +++ b/libraries/entropy/server/interfaces/main.py @@ -35,6 +35,7 @@ from entropy.i18n import _ from entropy.core import SystemSettings, SystemSettingsPlugin from entropy.transceivers import FtpInterface from entropy.db import EntropyRepository +from entropy.spm import get_spm class ServerSystemSettingsPlugin(SystemSettingsPlugin): @@ -470,9 +471,18 @@ class Server(Singleton, TextInterface): self.dumpTools = self.ClientService.dumpTools self.QA = self.ClientService.QA self.backup_entropy_settings() - self.SpmService = self.ClientService.Spm() + self.MirrorsService = MirrorsServer(self) + def Spm(self): + """ + Get Source Package Manager interface instance. + + @return: Source Package Manager interface instance + @rtype: entropy.spm.SpmPlugin based instance + """ + return get_spm(self) + def setup_entropy_settings(self, repo = None): srv_set = self.SystemSettings[self.sys_settings_plugin_id]['server'] curr_repoid = srv_set['default_repository_id'] @@ -992,7 +1002,7 @@ class Server(Singleton, TextInterface): repo) else: - spm = self.SpmService + spm = self.Spm() # grab portdir updates_dir = etpConst['systemroot'] + \ spm.get_spm_setting("PORTDIR") + "/profiles/updates" @@ -1021,7 +1031,7 @@ class Server(Singleton, TextInterface): repo_db.clearTreeupdatesEntries(repo) updates_dir = etpConst['systemroot'] + \ - self.SpmService.get_spm_setting("PORTDIR") + "/profiles/updates" + self.Spm().get_spm_setting("PORTDIR") + "/profiles/updates" update_files = self.entropyTools.sort_update_files( os.listdir(updates_dir)) update_files = [os.path.join(updates_dir, x) for x in update_files] @@ -1318,7 +1328,7 @@ class Server(Singleton, TextInterface): header = red(" @@ ") ) - packages = self.SpmService.query_belongs_multiple(brokenexecs) + packages = self.Spm().query_belongs_multiple(brokenexecs) if packages: mytxt = "%s:" % (_("These are the matched packages"),) @@ -1377,7 +1387,7 @@ class Server(Singleton, TextInterface): type = "info", header = red(" @@ ") ) - installed_packages, length = self.SpmService.get_installed_packages() + installed_packages, length = self.Spm().get_installed_packages() not_found = {} count = 0 for installed_package in installed_packages: @@ -1393,9 +1403,9 @@ class Server(Singleton, TextInterface): header = darkred(" @@ ") ) key, slot = (self.entropyTools.dep_getkey(installed_package), - self.SpmService.get_installed_package_slot(installed_package),) + self.Spm().get_installed_package_slot(installed_package),) pkg_atom = "%s:%s" % (key, slot,) - tree_atom = self.SpmService.get_best_atom(pkg_atom) + tree_atom = self.Spm().get_best_atom(pkg_atom) if not tree_atom: not_found[installed_package] = pkg_atom self.updateProgress( @@ -2119,7 +2129,7 @@ class Server(Singleton, TextInterface): header = brown(" * "), back = True ) - mydata = self.SpmService.extract_pkg_metadata(package_file, + mydata = self.Spm().extract_pkg_metadata(package_file, inject = inject) idpackage, revision, mydata = dbconn.handlePackage(mydata) @@ -2418,7 +2428,7 @@ class Server(Singleton, TextInterface): return False def quickpkg(self, atom, storedir): - return self.SpmService.quickpkg(atom, storedir) + return self.Spm().quickpkg(atom, storedir) def remove_packages(self, idpackages, repo = None): @@ -2775,7 +2785,7 @@ class Server(Singleton, TextInterface): def scan_package_changes(self): - installed_packages = self.SpmService.get_installed_packages_counter() + installed_packages = self.Spm().get_installed_packages_counter() installed_counters = set() to_be_added = set() to_be_removed = set() @@ -2837,7 +2847,7 @@ class Server(Singleton, TextInterface): add = True for spm_atom, spm_counter in to_be_added: - addslot = self.SpmService.get_installed_package_slot( + addslot = self.Spm().get_installed_package_slot( spm_atom) addkey = self.entropyTools.dep_getkey(spm_atom) # workaround for ebuilds not having slot @@ -2863,7 +2873,7 @@ class Server(Singleton, TextInterface): # search into portage then try: key, slot = dbconn.retrieveKeySlot(idpackage) - trashed = self.SpmService.get_installed_atom( + trashed = self.Spm().get_installed_atom( key+":"+slot) except TypeError: # referred to retrieveKeySlot trashed = True @@ -3110,7 +3120,7 @@ class Server(Singleton, TextInterface): pkg_path = os.path.join(self.get_local_packages_directory(repo), branch, pkg) - mydata = self.SpmService.extract_pkg_metadata(pkg_path, + mydata = self.Spm().extract_pkg_metadata(pkg_path, inject = doinject) # get previous revision @@ -3903,7 +3913,7 @@ class Server(Singleton, TextInterface): repo = self.default_repository # portage sets - sets_data = self.SpmService.get_sets_expanded(builtin_sets = False) + sets_data = self.Spm().get_sets_expanded(builtin_sets = False) sets_data.update(self.get_entropy_sets(repo, branch)) if validate: diff --git a/libraries/entropy/services/system/executors.py b/libraries/entropy/services/system/executors.py index 35f05ca03..511473f58 100644 --- a/libraries/entropy/services/system/executors.py +++ b/libraries/entropy/services/system/executors.py @@ -253,15 +253,16 @@ class Base: return False,'no item in queue' use_data = {} + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() for atom in atoms: try: - status = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.enable_package_useflags(atom, useflags) + status = spm.enable_package_useflags(atom, useflags) except: continue if status: use_data[atom] = {} - matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom(atom) - use_data[atom] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(matched_atom) + matched_atom = spm.get_best_atom(atom) + use_data[atom] = spm.get_package_useflags(matched_atom) return True, use_data @@ -272,15 +273,16 @@ class Base: return False,'no item in queue' use_data = {} + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() for atom in atoms: try: - status = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.disable_package_useflags(atom, useflags) + status = spm.disable_package_useflags(atom, useflags) except: continue if status: use_data[atom] = {} - matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom(atom) - use_data[atom] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(matched_atom) + matched_atom = spm.get_best_atom(atom) + use_data[atom] = spm.get_package_useflags(matched_atom) return True, use_data @@ -291,6 +293,7 @@ class Base: return False,'no item in queue' atoms_data = {} + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() for atom in atoms: try: @@ -298,7 +301,7 @@ class Base: category = key.split("/")[0] except: continue - matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom(atom) + matched_atom = spm.get_best_atom(atom) if not matched_atom: continue if not atoms_data.has_key(category): @@ -314,7 +317,8 @@ class Base: if queue_data == None: return False,'no item in queue' - packages = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_available_packages(categories) + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() + packages = spm.get_available_packages(categories) package_data = {} for package in packages: try: @@ -334,7 +338,8 @@ class Base: if queue_data == None: return False,'no item in queue' - packages, pkg_len = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_packages(categories = categories) + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() + packages, pkg_len = spm.get_installed_packages(categories = categories) package_data = {} for package in packages: try: @@ -972,10 +977,11 @@ class Base: return False,'no item in queue' data = {} - glsa_ids = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.list_glsa_packages(list_type) + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() + glsa_ids = spm.list_glsa_packages(list_type) if not glsa_ids: return False,data for myid in glsa_ids: - data[myid] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_glsa_id_information(myid) + data[myid] = spm.get_glsa_id_information(myid) return True,data def get_notice_board(self, queue_id, repoid): @@ -1149,23 +1155,24 @@ class Base: data = {} data['atom'] = matched_atom data['key'] = self.entropyTools.dep_getkey(matched_atom) + spm = self.SystemManagerExecutor.SystemInterface.Entropy.Spm() try: if from_installed: - data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_slot(matched_atom) - portage_matched_atom = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_best_atom("%s:%s" % (data['key'],data['slot'],)) + data['slot'] = spm.get_installed_package_slot(matched_atom) + portage_matched_atom = spm.get_best_atom("%s:%s" % (data['key'],data['slot'],)) # get installed package description data['available_atom'] = portage_matched_atom if portage_matched_atom: - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(portage_matched_atom) + data['use'] = spm.get_package_useflags(portage_matched_atom) else: # get use flags of the installed package - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_useflags(matched_atom) - data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_package_description(matched_atom) + data['use'] = spm.get_installed_package_useflags(matched_atom) + data['description'] = spm.get_installed_package_description(matched_atom) else: - data['slot'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_slot(matched_atom) - data['use'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_useflags(matched_atom) - data['installed_atom'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_installed_atom("%s:%s" % (data['key'],data['slot'],)) - data['description'] = self.SystemManagerExecutor.SystemInterface.Entropy.SpmService.get_package_description(matched_atom) + data['slot'] = spm.get_package_slot(matched_atom) + data['use'] = spm.get_package_useflags(matched_atom) + data['installed_atom'] = spm.get_installed_atom("%s:%s" % (data['key'],data['slot'],)) + data['description'] = spm.get_package_description(matched_atom) except KeyError: pass diff --git a/server/server_reagent.py b/server/server_reagent.py index f712d5115..621104435 100644 --- a/server/server_reagent.py +++ b/server/server_reagent.py @@ -298,7 +298,7 @@ def update(options): if repackageItems: - appdb = Entropy.SpmService.get_vdb_path() + appdb = Entropy.Spm().get_vdb_path() packages = [] dbconn = Entropy.open_server_repository(read_only = True, no_upload = True) @@ -333,7 +333,7 @@ def update(options): if myatom in tba: tb_added_new.add(tba.get(myatom)) continue - inst_myatom = Entropy.SpmService.get_installed_atom(myatom) + inst_myatom = Entropy.Spm().get_installed_atom(myatom) if inst_myatom in tba: tb_added_new.add(tba.get(inst_myatom)) toBeAdded = tb_added_new @@ -727,7 +727,7 @@ def spm(options): def spm_compile_categories(options, do_list = False): categories = sorted(set(options)) - packages = Entropy.SpmService.get_available_packages(categories) + packages = Entropy.Spm().get_available_packages(categories) packages = sorted(packages) if do_list: print ' '.join(["="+x for x in packages]) @@ -747,7 +747,7 @@ def spm_compile_pkgset(pkgsets, do_rebuild = False, do_dbupdate = False, return 1 # filter available sets - avail_sets = Entropy.SpmService.get_sets(False) + avail_sets = Entropy.Spm().get_sets(False) avail_pkgsets = dict(((x,avail_sets.get(x),) for x in pkgsets \ if x in avail_sets)) for pkgset in pkgsets: @@ -769,13 +769,13 @@ def spm_compile_pkgset(pkgsets, do_rebuild = False, do_dbupdate = False, # expand package sets for pkgset in pkgsets: - set_pkgs = [str(x) for x in Entropy.SpmService.get_set_atoms(pkgset)] - set_atoms = [Entropy.SpmService.get_best_atom(x) for x in set_pkgs] + set_pkgs = [str(x) for x in Entropy.Spm().get_set_atoms(pkgset)] + set_atoms = [Entropy.Spm().get_best_atom(x) for x in set_pkgs] set_atoms = [x for x in set_atoms if x != None] if not do_rebuild: set_atoms = [x for x in set_atoms if not \ - Entropy.SpmService.get_installed_atom(x)] + Entropy.Spm().get_installed_atom(x)] set_atoms = ["="+x for x in set_atoms] if not set_atoms: continue