[entropy.server] remove SpmService instance attribute, create Spm() method
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user