From 38c8f33f61bc47c39586d2eca3d2533063ee32a1 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sat, 13 Mar 2010 22:19:44 +0100 Subject: [PATCH] [entropy.client] more refactoring work in entropy.client.interfaces.methods --- client/text_query.py | 2 +- client/text_rescue.py | 62 +- client/text_smart.py | 6 +- client/text_ui.py | 2 +- libraries/entropy/client/interfaces/client.py | 10 +- .../entropy/client/interfaces/methods.py | 126 +--- .../entropy/client/interfaces/package.py | 2 +- .../entropy/client/interfaces/repository.py | 268 ++++---- libraries/entropy/server/interfaces/main.py | 2 +- .../entropy/server/interfaces/mirrors.py | 602 +++++++++--------- .../entropy/services/repository/interfaces.py | 2 +- libraries/tests/client.py | 4 +- libraries/tests/db.py | 2 +- libraries/tests/tools.py | 2 +- server/server_reagent.py | 6 +- services/client-tracker-packages-miner | 2 +- services/client-updates-daemon | 2 +- sulfur/src/sulfur/__init__.py | 49 +- sulfur/src/sulfur/entropyapi.py | 40 +- sulfur/src/sulfur/events.py | 30 +- 20 files changed, 612 insertions(+), 609 deletions(-) diff --git a/client/text_query.py b/client/text_query.py index 7279b7a7c..1694283cb 100644 --- a/client/text_query.py +++ b/client/text_query.py @@ -836,7 +836,7 @@ def search_orphaned_files(Equo = None): filepath = entropy.tools.get_random_temp_file() if os.path.isfile(filepath): os.remove(filepath) - tdbconn = Equo.open_generic_database(filepath) + tdbconn = Equo.open_generic_repository(filepath) tdbconn.initializeDatabase() tdbconn.dropAllIndexes() diff --git a/client/text_rescue.py b/client/text_rescue.py index 1a0f58a7e..73347b07c 100644 --- a/client/text_rescue.py +++ b/client/text_rescue.py @@ -110,7 +110,7 @@ def database(options): return _database_spmsync(etp_client) elif options[0] == "backup": - status, err_msg = etp_client.backup_database( + status, err_msg = etp_client.backup_repository( etpConst['etpdatabaseclientfilepath']) if status: return 0 @@ -143,7 +143,7 @@ def _database_vacuum(entropy_client): def _database_restore(entropy_client): - dblist = entropy_client.list_backedup_client_databases() + dblist = entropy_client.installed_repository_backups() if not dblist: print_info(brown(" @@ ")+blue("%s." % ( _("No backed up databases found"),))) @@ -180,7 +180,7 @@ def _database_restore(entropy_client): continue break - status, err_msg = entropy_client.restore_database(dbpath, + status, err_msg = entropy_client.restore_repository(dbpath, etpConst['etpdatabaseclientfilepath']) if status: return 0 @@ -260,7 +260,7 @@ def _database_resurrect(entropy_client): dbpath = etpConst['etpdatabaseclientfilepath'] if os.path.isfile(dbpath) and os.access(dbpath, os.W_OK): os.remove(dbpath) - dbc = entropy_client.open_generic_database(dbpath, + dbc = entropy_client.open_generic_repository(dbpath, dbname = etpConst['clientdbid']) # don't do this at home dbc.initializeDatabase() dbc.commitChanges() @@ -656,7 +656,7 @@ def _database_generate(entropy_client): entropy_client.installed_repository().closeDB() if os.path.isfile(dbfile): os.remove(dbfile) - entropy_client.open_installed_repository() + entropy_client._open_installed_repository() entropy_client.installed_repository().initializeDatabase() mytxt = darkred(" %s %s") % ( _("Database reinitialized correctly at"), @@ -728,13 +728,63 @@ def _database_generate(entropy_client): return 0 def _database_check(entropy_client): + + def client_repository_sanity_check(): + entropy_client.output( + darkred(_("Sanity Check") + ": " + _("system database")), + importance = 2, + type = "warning" + ) + idpkgs = entropy_client.installed_repository().listAllIdpackages() + length = len(idpkgs) + count = 0 + errors = False + scanning_txt = _("Scanning...") + for x in idpkgs: + count += 1 + entropy_client.output( + darkgreen(scanning_txt), + importance = 0, + type = "info", + back = True, + count = (count, length), + percent = True + ) + try: + entropy_client.installed_repository().getPackageData(x) + except Exception as e: + entropy.tools.print_traceback() + errors = True + entropy_client.output( + darkred(_("Errors on idpackage %s, error: %s")) % (x, e), + importance = 0, + type = "warning" + ) + + if not errors: + t = _("Sanity Check") + ": %s" % (bold(_("PASSED")),) + entropy_client.output( + darkred(t), + importance = 2, + type = "warning" + ) + return 0 + else: + t = _("Sanity Check") + ": %s" % (bold(_("CORRUPTED")),) + entropy_client.output( + darkred(t), + importance = 2, + type = "warning" + ) + return -1 + try: valid = True entropy_client.installed_repository().validateDatabase() except SystemDatabaseError: valid = False if valid: - entropy_client.client_repository_sanity_check() + client_repository_sanity_check() else: mytxt = "# %s: %s" % (bold(_("ATTENTION")), red(_("database does not exist or is badly broken")),) diff --git a/client/text_smart.py b/client/text_smart.py index 78a653d49..a147dd872 100644 --- a/client/text_smart.py +++ b/client/text_smart.py @@ -234,7 +234,7 @@ def inflate_handler(entropy_client, mytbz2s, savedir): while os.path.isfile(dbpath): dbpath = etpConst['packagestmpdir']+os.path.sep+str(entropy.tools.get_random_number()) # create - mydbconn = entropy_client.open_generic_database(dbpath) + mydbconn = entropy_client.open_generic_repository(dbpath) mydbconn.initializeDatabase() idpackage, yyy, xxx = mydbconn.addPackage(mydata, revision = mydata['revision']) del yyy, xxx @@ -357,7 +357,7 @@ def smartpackagegenerator(entropy_client, matched_pkgs): os.mkdir(unpackdir+"/db") # create master database dbfile = unpackdir+"/db/merged.db" - mergeDbconn = entropy_client.open_generic_database(dbfile, dbname = "client") + mergeDbconn = entropy_client.open_generic_repository(dbfile, dbname = "client") mergeDbconn.initializeDatabase() tmpdbfile = dbfile+"--readingdata" for package in matched_pkgs: @@ -366,7 +366,7 @@ def smartpackagegenerator(entropy_client, matched_pkgs): etpConst['entropyworkdir'] + os.path.sep + \ matchedAtoms[package]['download'], tmpdbfile) # read db and add data to mergeDbconn - mydbconn = entropy_client.open_generic_database(tmpdbfile) + mydbconn = entropy_client.open_generic_repository(tmpdbfile) idpackages = mydbconn.listAllIdpackages() for myidpackage in idpackages: diff --git a/client/text_ui.py b/client/text_ui.py index 58b1000e7..ecb1a4848 100644 --- a/client/text_ui.py +++ b/client/text_ui.py @@ -666,7 +666,7 @@ def _scan_packages(entropy_client, packages, etp_pkg_files): if etp_pkg_files: for pkg in etp_pkg_files: - status, atomsfound = entropy_client.add_package_to_repos(pkg) + status, atomsfound = entropy_client.add_package_to_repositories(pkg) if status == 0: found_pkg_atoms += atomsfound[:] del atomsfound diff --git a/libraries/entropy/client/interfaces/client.py b/libraries/entropy/client/interfaces/client.py index d99f567e8..46ee05d1c 100644 --- a/libraries/entropy/client/interfaces/client.py +++ b/libraries/entropy/client/interfaces/client.py @@ -185,7 +185,7 @@ class ClientSystemSettingsPlugin(SystemSettingsPlugin): if old_branch == current_branch: # all fine, no need to run return - repos, err = self._helper.run_repositories_post_branch_switch_hooks( + repos, err = self._helper._run_repositories_post_branch_switch_hooks( old_branch, current_branch) if not err: write_in_branch_upgrade(current_branch) @@ -197,7 +197,7 @@ class ClientSystemSettingsPlugin(SystemSettingsPlugin): if os.getuid() != 0: return - repos, errors = self._helper.run_repository_post_branch_upgrade_hooks( + repos, errors = self._helper._run_repository_post_branch_upgrade_hooks( pretend = True) if not repos: # no scripts to run @@ -224,7 +224,7 @@ class ClientSystemSettingsPlugin(SystemSettingsPlugin): # actually execute this only if # there are no updates left if not update: - self._helper.run_repository_post_branch_upgrade_hooks() + self._helper._run_repository_post_branch_upgrade_hooks() delete_in_branch_upgrade() def system_mask_parser(self, system_settings_instance): @@ -668,7 +668,7 @@ class Client(Singleton, TextInterface, LoadersMixin, CacheMixin, CalculatorsMixi self.clear_cache() if self.openclientdb: - self.open_installed_repository() + self._open_installed_repository() # create our SystemSettings plugin self.sys_settings_client_plugin = ClientSystemSettingsPlugin( @@ -683,7 +683,7 @@ class Client(Singleton, TextInterface, LoadersMixin, CacheMixin, CalculatorsMixi self._validate_repositories_cache() if self.repo_validation: - self.validate_repositories() + self._validate_repositories() else: self._enabled_repos.extend( self.SystemSettings['repositories']['order']) diff --git a/libraries/entropy/client/interfaces/methods.py b/libraries/entropy/client/interfaces/methods.py index bde4ffddf..1e80abfed 100644 --- a/libraries/entropy/client/interfaces/methods.py +++ b/libraries/entropy/client/interfaces/methods.py @@ -41,7 +41,8 @@ import entropy.tools class RepositoryMixin: - def validate_repositories(self, quiet = False): + def _validate_repositories(self, quiet = False): + StatusInterface().clear() self._repo_error_messages_cache.clear() @@ -145,12 +146,6 @@ class RepositoryMixin: self.SystemSettings.clear() self._can_run_sys_set_hooks = old_value - - def is_repository_connection_cached(self, repoid): - if (repoid, etpConst['systemroot'],) in self._repodb_cache: - return True - return False - def open_repository(self, repoid): # support for installed pkgs repository, got by issuing @@ -160,7 +155,7 @@ class RepositoryMixin: key = self.__get_repository_cache_key(repoid) if key not in self._repodb_cache: - dbconn = self.load_repository_database(repoid, + dbconn = self._load_repository_database(repoid, xcache = self.xcache, indexing = self.indexing) try: dbconn.checkDatabaseApi() @@ -172,7 +167,7 @@ class RepositoryMixin: return self._repodb_cache.get(key) - def load_repository_database(self, repoid, xcache = True, indexing = True): + def _load_repository_database(self, repoid, xcache = True, indexing = True): if const_isstring(repoid): if repoid.endswith(etpConst['packagesext']): @@ -233,23 +228,20 @@ class RepositoryMixin: return conn def get_repository_revision(self, reponame): + db_data = self.SystemSettings['repositories']['available'][reponame] - fname = db_data['dbpath']+"/"+etpConst['etpdatabaserevisionfile'] + fname = os.path.join(db_data['dbpath'], + etpConst['etpdatabaserevisionfile']) revision = -1 + if os.path.isfile(fname) and os.access(fname, os.R_OK): with open(fname, "r") as f: try: revision = int(f.readline().strip()) except (OSError, IOError, ValueError,): pass - return revision - def update_repository_revision(self, reponame): - r = self.get_repository_revision(reponame) - db_data = self.SystemSettings['repositories']['available'][reponame] - db_data['dbrevision'] = "0" - if r != -1: - db_data['dbrevision'] = str(r) + return revision def add_repository(self, repodata): @@ -286,7 +278,7 @@ class RepositoryMixin: self.clear_cache() self.SystemSettings.clear() - self.validate_repositories() + self._validate_repositories() def remove_repository(self, repoid, disable = False): @@ -303,7 +295,7 @@ class RepositoryMixin: # issues when reloading SystemSettings which is bound to Entropy Client # SystemSettings plugin, which triggers calculate_world_updates, which # triggers _all_repositories_checksum, which triggers open_repository, - # which triggers load_repository_database, which triggers an unwanted + # which triggers _load_repository_database, which triggers an unwanted # output message => "bad repository id specified" if repoid in self._enabled_repos: self._enabled_repos.remove(repoid) @@ -333,7 +325,7 @@ class RepositoryMixin: # reset db cache self.close_repositories() - self.validate_repositories() + self._validate_repositories() def __save_repository_settings(self, repodata, remove = False, disable = False, enable = False): @@ -461,7 +453,7 @@ class RepositoryMixin: self.SystemSettings.clear() self.close_repositories() self.SystemSettings._clear_repository_cache(repoid = repoid) - self.validate_repositories() + self._validate_repositories() def enable_repository(self, repoid): self.SystemSettings._clear_repository_cache(repoid = repoid) @@ -471,7 +463,7 @@ class RepositoryMixin: self.__save_repository_settings(repodata, enable = True) self.SystemSettings.clear() self.close_repositories() - self.validate_repositories() + self._validate_repositories() def disable_repository(self, repoid): # update self.SystemSettings['repositories']['available'] @@ -498,19 +490,11 @@ class RepositoryMixin: self.SystemSettings.clear() self.close_repositories() - self.validate_repositories() - - def get_repository_settings(self, repoid): - try: - repodata = self.SystemSettings['repositories']['available'][repoid].copy() - except KeyError: - if repoid not in self.SystemSettings['repositories']['excluded']: - raise - repodata = self.SystemSettings['repositories']['excluded'][repoid].copy() - return repodata + self._validate_repositories() # every tbz2 file that would be installed must pass from here - def add_package_to_repos(self, pkg_file): + def add_package_to_repositories(self, pkg_file): + atoms_contained = [] basefile = os.path.basename(pkg_file) db_dir = tempfile.mkdtemp() @@ -527,7 +511,7 @@ class RepositoryMixin: repodata['pkgpath'] = os.path.realpath(pkg_file) # extra info added repodata['smartpackage'] = False # extra info added - mydbconn = self.open_generic_database(dbfile) + mydbconn = self.open_generic_repository(dbfile) # read all idpackages try: # all branches admitted from external files @@ -545,7 +529,7 @@ class RepositoryMixin: atoms_contained.append((int(myidpackage), basefile)) self.add_repository(repodata) - self.validate_repositories() + self._validate_repositories() if basefile not in self._enabled_repos: self.remove_repository(basefile) return -4, atoms_contained @@ -588,7 +572,7 @@ class RepositoryMixin: """ return self._installed_repository - def open_installed_repository(self): + def _open_installed_repository(self): def load_db_from_ram(): self.safe_mode = etpConst['safemodeerrors']['clientdb'] @@ -643,60 +627,11 @@ class RepositoryMixin: def reopen_installed_repository(self): self._installed_repository.closeDB() - self.open_installed_repository() + self._open_installed_repository() # make sure settings are in sync self.SystemSettings.clear() - def client_repository_sanity_check(self): - self.output( - darkred(_("Sanity Check") + ": " + _("system database")), - importance = 2, - type = "warning" - ) - idpkgs = self._installed_repository.listAllIdpackages() - length = len(idpkgs) - count = 0 - errors = False - scanning_txt = _("Scanning...") - for x in idpkgs: - count += 1 - self.output( - darkgreen(scanning_txt), - importance = 0, - type = "info", - back = True, - count = (count, length), - percent = True - ) - try: - self._installed_repository.getPackageData(x) - except Exception as e: - entropy.tools.print_traceback() - errors = True - self.output( - darkred(_("Errors on idpackage %s, error: %s")) % (x, e), - importance = 0, - type = "warning" - ) - - if not errors: - t = _("Sanity Check") + ": %s" % (bold(_("PASSED")),) - self.output( - darkred(t), - importance = 2, - type = "warning" - ) - return 0 - else: - t = _("Sanity Check") + ": %s" % (bold(_("CORRUPTED")),) - self.output( - darkred(t), - importance = 2, - type = "warning" - ) - return -1 - - def open_generic_database(self, dbfile, dbname = None, xcache = None, + def open_generic_repository(self, dbfile, dbname = None, xcache = None, readOnly = False, indexing_override = None, skipChecks = False): if xcache is None: xcache = self.xcache @@ -736,7 +671,7 @@ class RepositoryMixin: dbc.initializeDatabase() return dbc - def backup_database(self, dbpath, backup_dir = None, silent = False, + def backup_repository(self, dbpath, backup_dir = None, silent = False, compress_level = 9): if compress_level not in list(range(1, 10)): @@ -804,7 +739,7 @@ class RepositoryMixin: ) return True, _("All fine") - def restore_database(self, backup_path, db_destination, silent = False): + def restore_repository(self, backup_path, db_destination, silent = False): bytes_required = 1024000*200 db_dir = os.path.dirname(db_destination) @@ -840,7 +775,6 @@ class RepositoryMixin: back = True ) - import bz2 try: entropy.tools.uncompress_file(backup_path, db_destination, bz2.BZ2File) @@ -863,7 +797,7 @@ class RepositoryMixin: self.clear_cache() return True, _("All fine") - def list_backedup_client_databases(self, client_dbdir = None): + def installed_repository_backups(self, client_dbdir = None): if not client_dbdir: client_dbdir = os.path.dirname(etpConst['etpdatabaseclientfilepath']) return [os.path.join(client_dbdir, x) for x in os.listdir(client_dbdir) \ @@ -871,7 +805,7 @@ class RepositoryMixin: os.access(os.path.join(client_dbdir, x), os.R_OK) ] - def run_repositories_post_branch_switch_hooks(self, old_branch, new_branch): + def _run_repositories_post_branch_switch_hooks(self, old_branch, new_branch): """ This method is called whenever branch is successfully switched by user. Branch is switched when user wants to upgrade the OS to a new @@ -988,7 +922,7 @@ class RepositoryMixin: return hooks_ran, errors - def run_repository_post_branch_upgrade_hooks(self, pretend = False): + def _run_repository_post_branch_upgrade_hooks(self, pretend = False): """ This method is called whenever branch is successfully switched by user and all the updates have been installed (also look at: @@ -1314,7 +1248,7 @@ class MiscMixin: chroot = chroot[:-1] etpSys['rootdir'] = chroot self.reload_constants() - self.validate_repositories() + self._validate_repositories() self.reopen_installed_repository() # keep them closed, since SystemSettings.clear() is called # above on reopen_installed_repository() @@ -1422,7 +1356,7 @@ class MiscMixin: # reset treeupdatesactions self.reopen_installed_repository() self._installed_repository.resetTreeupdatesDigests() - self.validate_repositories(quiet = True) + self._validate_repositories(quiet = True) self.close_repositories() if self.xcache: self._cacher.start() @@ -1571,7 +1505,7 @@ class MiscMixin: treeupdates_actions = None): tmp_fd, tmp_path = tempfile.mkstemp() os.close(tmp_fd) - dbconn = self.open_generic_database(tmp_path) + dbconn = self.open_generic_repository(tmp_path) dbconn.initializeDatabase() dbconn.addPackage(data, revision = data['revision']) if treeupdates_actions != None: diff --git a/libraries/entropy/client/interfaces/package.py b/libraries/entropy/client/interfaces/package.py index 97397b4ed..7ebbdb8bb 100644 --- a/libraries/entropy/client/interfaces/package.py +++ b/libraries/entropy/client/interfaces/package.py @@ -1493,7 +1493,7 @@ class Package: # skipChecks = False : creating missing tables is unwanted, # and also no foreign keys update # readOnly = True: no need to open in write mode - pkg_dbconn = self._entropy.open_generic_database( + pkg_dbconn = self._entropy.open_generic_repository( self.pkgmeta['pkgdbpath'], skipChecks = True, indexing_override = False, readOnly = True, xcache = False) diff --git a/libraries/entropy/client/interfaces/repository.py b/libraries/entropy/client/interfaces/repository.py index 661dd9857..d66623abf 100644 --- a/libraries/entropy/client/interfaces/repository.py +++ b/libraries/entropy/client/interfaces/repository.py @@ -31,6 +31,7 @@ from entropy.dump import dumpobj from entropy.security import Repository as RepositorySecurity from entropy.db.exceptions import IntegrityError, OperationalError, Error, \ DatabaseError +from entropy.core.settings.base import SystemSettings import entropy.tools @@ -57,8 +58,9 @@ class Repository: "meta_file", "meta_file_gpg", "notice_board" ) self.__big_sock_timeout = 10 - self.Entropy = entropy_client_instance + self._entropy = entropy_client_instance self._cacher = EntropyCacher() + self._settings = SystemSettings() self.repo_ids = repo_identifiers self.force = force self.sync_errors = False @@ -77,13 +79,13 @@ class Repository: if env_gpg is not None: self._gpg_feature = False # Developer Repository mode enabled? - sys_set = self.Entropy.SystemSettings + sys_set = self._settings self._developer_repo = sys_set['repositories']['developer_repo'] if self._developer_repo: const_debug_write(__name__, "__init__: developer repo mode enabled") avail_data = sys_set['repositories']['available'] - # check self.Entropy.SystemSettings['repositories']['available'] + # check self._settings['repositories']['available'] if not avail_data: mytxt = "No repositories specified in %s" % ( etpConst['repositoriesconf'],) @@ -99,7 +101,7 @@ class Repository: def __get_eapi3_connection(self, repoid): # get database url - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] dburl = avail_data[repoid].get('service_uri') if dburl is None: return None @@ -109,7 +111,7 @@ class Repository: from entropy.services.ugc.interfaces import Client from entropy.client.services.ugc.commands import Client as \ CommandsClient - eapi3_socket = Client(self.Entropy, CommandsClient, + eapi3_socket = Client(self._entropy, CommandsClient, output_header = "\t", socket_timeout = self.__big_sock_timeout) eapi3_socket.connect(dburl, port) return eapi3_socket @@ -174,7 +176,7 @@ class Repository: self.__validate_repository_id(repo) - repo_settings = self.Entropy.SystemSettings['repositories'] + repo_settings = self._settings['repositories'] dbc_format = repo_settings['available'][repo]['dbcformat'] cmethod = etpConst['etpdatabasecompressclasses'].get(dbc_format) if cmethod is None: @@ -187,7 +189,7 @@ class Repository: self.__validate_repository_id(repo) - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] repo_data = avail_data[repo] # create dir if it doesn't exist @@ -211,7 +213,7 @@ class Repository: mytxt = "For %s, cmethod can't be None" % (item,) raise AttributeError(mytxt) - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] repo_data = avail_data[repo] repo_db = repo_data['database'] @@ -308,7 +310,7 @@ class Repository: return url, path def __remove_repository_files(self, repo): - sys_set = self.Entropy.SystemSettings + sys_set = self._settings repo_dbpath = sys_set['repositories']['available'][repo]['dbpath'] shutil.rmtree(repo_dbpath, True) @@ -317,7 +319,7 @@ class Repository: self.__validate_repository_id(repo) rc = 0 path = None - sys_set_repos = self.Entropy.SystemSettings['repositories']['available'] + sys_set_repos = self._settings['repositories']['available'] repo_data = sys_set_repos[repo] garbage, myfile = self._construct_paths(down_item, repo, cmethod) @@ -342,7 +344,7 @@ class Repository: raise AttributeError(mytxt) if rc == 0: - self.Entropy.setup_default_file_perms(path) + self._entropy.setup_default_file_perms(path) return rc @@ -355,7 +357,7 @@ class Repository: def __verify_database_checksum(self, repo, cmethod = None): self.__validate_repository_id(repo) - sys_settings_repos = self.Entropy.SystemSettings['repositories'] + sys_settings_repos = self._settings['repositories'] avail_config = sys_settings_repos['available'][repo] sep = os.path.sep @@ -405,7 +407,7 @@ class Repository: else: return repo_rev - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] repo_data = avail_data[repo] url = repo_data['database'] + "/" + etpConst['etpdatabaserevisionfile'] @@ -427,7 +429,7 @@ class Repository: onlinestatus = self.get_online_repository_revision(repo) if onlinestatus != -1: - localstatus = self.Entropy.get_repository_revision(repo) + localstatus = self._entropy.get_repository_revision(repo) if (localstatus == onlinestatus) and (not self.force): return False return True @@ -468,7 +470,7 @@ class Repository: os.makedirs(filepath_dir, 0o775) const_setup_perms(filepath_dir, etpConst['entropygid']) - fetchConn = self.Entropy.urlFetcher( + fetchConn = self._entropy.urlFetcher( url, filepath, resume = False, @@ -480,7 +482,7 @@ class Repository: del fetchConn if rc in ("-1", "-2", "-3", "-4"): return False - self.Entropy.setup_default_file_perms(filepath) + self._entropy.setup_default_file_perms(filepath) return True def _check_downloaded_database(self, repo, cmethod): @@ -498,7 +500,7 @@ class Repository: darkgreen(os.path.basename(dbfilename)), red("..."), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, back = True, @@ -511,7 +513,7 @@ class Repository: red(_("Cannot open digest")), red(_("Cannot verify database integrity")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -522,7 +524,7 @@ class Repository: red(_("Downloaded database status")), bold(_("OK")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -533,7 +535,7 @@ class Repository: red(_("Downloaded database status")), darkred(_("ERROR")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "error", @@ -543,7 +545,7 @@ class Repository: red(_("An error occured while checking database integrity")), red(_("Giving up")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "error", @@ -552,13 +554,19 @@ class Repository: return 1 return 0 + def _update_repository_revision(self, repo): + cur_rev = self._entropy.get_repository_revision(repo) + db_data = self._settings['repositories']['available'][repo] + db_data['dbrevision'] = "0" + if cur_rev != -1: + db_data['dbrevision'] = str(cur_rev) def _show_repository_information(self, repo, count_info): - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] repo_data = avail_data[repo] - self.Entropy.output( + self._entropy.output( bold("%s") % ( repo_data['description'] ), importance = 2, type = "info", @@ -567,7 +575,7 @@ class Repository: ) mytxt = "%s: %s" % (red(_("Database URL")), darkgreen(repo_data['database']),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -575,7 +583,7 @@ class Repository: ) mytxt = "%s: %s" % (red(_("Database local path")), darkgreen(repo_data['dbpath']),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -583,7 +591,7 @@ class Repository: ) mytxt = "%s: %s" % (red(_("Database EAPI")), darkgreen(str(self._repo_eapi[repo])),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -592,13 +600,13 @@ class Repository: def __get_eapi3_local_database(self, repo): - avail_data = self.Entropy.SystemSettings['repositories']['available'] + avail_data = self._settings['repositories']['available'] repo_data = avail_data[repo] dbfile = os.path.join(repo_data['dbpath'], etpConst['etpdatabasefile']) mydbconn = None try: - mydbconn = self.Entropy.open_generic_database(dbfile, + mydbconn = self._entropy.open_generic_repository(dbfile, xcache = False, indexing_override = False) mydbconn.validateDatabase() except (OperationalError, IntegrityError, SystemDatabaseError, @@ -609,7 +617,7 @@ class Repository: def __get_eapi3_database_differences(self, eapi3_interface, repo, idpackages, session): - product = self.Entropy.SystemSettings['repositories']['product'] + product = self._settings['repositories']['product'] data = eapi3_interface.CmdInterface.differential_packages_comparison( session, idpackages, repo, etpConst['currentarch'], product ) @@ -624,7 +632,7 @@ class Repository: return data['added'], data['removed'], data['secure_checksum'] def __get_eapi3_repository_metadata(self, eapi3_interface, repo, session): - product = self.Entropy.SystemSettings['repositories']['product'] + product = self._settings['repositories']['product'] data = eapi3_interface.CmdInterface.get_repository_metadata( session, repo, etpConst['currentarch'], product ) @@ -679,7 +687,7 @@ class Repository: self.__eapi3_close(eapi3_interface, session) mytxt = "%s: %s" % ( blue(_("EAPI3 Service status")), darkred(_("remote database suddenly locked")),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -696,7 +704,7 @@ class Repository: blue(str(len(added_ids))), darkred(str(threshold)), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -722,12 +730,12 @@ class Repository: # fetch and store count = 0 maxcount = len(added_segments) - product = self.Entropy.SystemSettings['repositories']['product'] + product = self._settings['repositories']['product'] for segment in added_segments: count += 1 mytxt = "%s %s" % (blue(_("Fetching segments")), "...",) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t", back = True, count = (count, maxcount,) ) @@ -750,7 +758,7 @@ class Repository: if pkgdata is None: mytxt = "%s: %s" % ( blue(_("Fetch error on segment")), darkred(str(segment)),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", header = "\t", count = (count, maxcount,) ) @@ -760,7 +768,7 @@ class Repository: blue(_("Service status")), darkred("remote database suddenly locked"), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", header = "\t", count = (count, maxcount,) ) @@ -773,7 +781,7 @@ class Repository: pkgdata[0], pkgdata[1], darkred("Error processing the command"), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", header = "\t", count = (count, maxcount,) ) @@ -794,7 +802,7 @@ class Repository: darkred("Error storing data"), e, ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", header = "\t", count = (count, maxcount,) ) @@ -818,7 +826,7 @@ class Repository: blue(_("EAPI3 Service status")), darkred(_("cannot fetch repository metadata")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -839,7 +847,7 @@ class Repository: blue(_("EAPI3 Service status")), darkred(_("cannot update treeupdates data")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -858,7 +866,7 @@ class Repository: blue(_("EAPI3 Service status")), darkred(_("cannot update package sets data")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -882,7 +890,7 @@ class Repository: blue(_("Fetch error on segment while adding")), darkred(str(segment)), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", header = "\t", count = (count, maxcount,) ) @@ -893,7 +901,7 @@ class Repository: blue(_("Injecting package")), darkgreen(mydata['atom']), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t", back = True, count = (count, maxcount,) ) @@ -906,7 +914,7 @@ class Repository: except (Error,) as err: if etpUi['debug']: entropy.tools.print_traceback() - self.Entropy.output("%s: %s" % ( + self._entropy.output("%s: %s" % ( blue(_("repository error while adding packages")), err,), importance = 1, type = "warning", @@ -915,7 +923,7 @@ class Repository: mydbconn.closeDB() return False - self.Entropy.output( + self._entropy.output( blue(_("Packages injection complete")), importance = 0, type = "info", header = "\t", ) @@ -931,7 +939,7 @@ class Repository: mytxt = "%s: %s" % ( blue(_("Removing package")), darkred(str(myatom)),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t", back = True, count = (count, maxcount,) ) @@ -939,7 +947,7 @@ class Repository: mydbconn.removePackage(idpackage, do_cleanup = False, do_commit = False) except (Error,): - self.Entropy.output( + self._entropy.output( blue(_("repository error while removing packages")), importance = 1, type = "warning", header = "\t", count = (count, maxcount,) @@ -947,7 +955,7 @@ class Repository: mydbconn.closeDB() return False - self.Entropy.output( + self._entropy.output( blue(_("Packages removal complete")), importance = 0, type = "info", header = "\t", @@ -962,17 +970,17 @@ class Repository: if secure_checksum == mychecksum: result = True else: - self.Entropy.output( + self._entropy.output( blue(_("Database checksum doesn't match remote.")), importance = 0, type = "info", header = "\t", ) mytxt = "%s: %s" % (_('local'), mychecksum,) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t", ) mytxt = "%s: %s" % (_('remote'), secure_checksum,) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t", ) @@ -981,7 +989,7 @@ class Repository: return result def _run_post_update_repository_hook(self, repoid): - my_repos = self.Entropy.SystemSettings['repositories'] + my_repos = self._settings['repositories'] branch = my_repos['branch'] avail_data = my_repos['available'] repo_data = avail_data[repoid] @@ -1011,7 +1019,7 @@ class Repository: def _install_gpg_key_if_available(self, repoid): - my_repos = self.Entropy.SystemSettings['repositories'] + my_repos = self._settings['repositories'] avail_data = my_repos['available'] repo_data = avail_data[repoid] gpg_path = repo_data['gpg_pubkey'] @@ -1021,7 +1029,7 @@ class Repository: def do_warn_user(fingerprint): mytxt = purple(_("Make sure to verify the imported key and set an appropriate trust level")) - self.Entropy.output( + self._entropy.output( mytxt + ":", type = "warning", header = "\t" @@ -1029,25 +1037,25 @@ class Repository: mytxt = brown("gpg --homedir '%s' --edit-key '%s'" % ( etpConst['etpclientgpgdir'], fingerprint,) ) - self.Entropy.output( + self._entropy.output( "$ " + mytxt, type = "warning", header = "\t" ) try: - repo_sec = self.Entropy.RepositorySecurity() + repo_sec = self._entropy.RepositorySecurity() except RepositorySecurity.GPGError: mytxt = "%s," % ( purple(_("This repository suports GPG-signed packages")), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "warning", header = "\t" ) mytxt = purple(_("you may want to install GnuPG to take advantage of this feature")) - self.Entropy.output( + self._entropy.output( mytxt, type = "warning", header = "\t" @@ -1064,7 +1072,7 @@ class Repository: if pk_avail: tmp_dir = tempfile.mkdtemp() - repo_tmp_sec = self.Entropy.RepositorySecurity( + repo_tmp_sec = self._entropy.RepositorySecurity( keystore_dir = tmp_dir) # try to install and get fingerprint try: @@ -1081,7 +1089,7 @@ class Repository: purple(_("GPG key changed for")), bold(repoid), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "warning", header = "\t" @@ -1090,7 +1098,7 @@ class Repository: darkgreen(fingerprint), purple(downloaded_key_fp), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "warning", header = "\t" @@ -1101,7 +1109,7 @@ class Repository: purple(_("GPG key already installed for")), bold(repoid), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = "\t" @@ -1114,7 +1122,7 @@ class Repository: purple(_("GPG key EXPIRED for repository")), bold(repoid), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "warning", header = "\t" @@ -1126,7 +1134,7 @@ class Repository: purple(_("Installing GPG key for repository")), brown(repoid), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = "\t", @@ -1139,7 +1147,7 @@ class Repository: darkred(_("Error during GPG key installation")), err, ) - self.Entropy.output( + self._entropy.output( mytxt, type = "error", header = "\t" @@ -1150,7 +1158,7 @@ class Repository: purple(_("Successfully installed GPG key for repository")), brown(repoid), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = "\t" @@ -1159,7 +1167,7 @@ class Repository: darkgreen(_("Fingerprint")), bold(fingerprint), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = "\t" @@ -1170,7 +1178,7 @@ class Repository: def _gpg_verify_downloaded_files(self, repo, downloaded_files): try: - repo_sec = self.Entropy.RepositorySecurity() + repo_sec = self._entropy.RepositorySecurity() except RepositorySecurity.GPGServiceNotAvailable: # wtf! it was available a while ago! return 0 # GPG not available @@ -1197,7 +1205,7 @@ class Repository: darkgreen(_("Verifying GPG signature of")), brown(file_name), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = blue("\t@@ "), @@ -1211,7 +1219,7 @@ class Repository: darkgreen(_("Verified GPG signature of")), brown(file_name), ) - self.Entropy.output( + self._entropy.output( mytxt, type = "info", header = blue("\t@@ ") @@ -1221,7 +1229,7 @@ class Repository: darkred(_("Error during GPG verification of")), file_name, ) - self.Entropy.output( + self._entropy.output( mytxt, type = "error", header = "\t%s " % (bold("!!!"),) @@ -1230,7 +1238,7 @@ class Repository: purple(_("It could mean a potential security risk")), err_msg, ) - self.Entropy.output( + self._entropy.output( mytxt, type = "error", header = "\t%s " % (bold("!!!"),) @@ -1271,7 +1279,7 @@ class Repository: do_db_update_transfer = False rc = 0 - my_repos = self.Entropy.SystemSettings['repositories'] + my_repos = self._settings['repositories'] avail_data = my_repos['available'] repo_data = avail_data[repo] @@ -1321,7 +1329,7 @@ class Repository: blue(_("EAPI3 Service error")), darkred(repr(err)), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -1450,7 +1458,7 @@ class Repository: continue if os.path.isfile(dbfile) and os.access(dbfile, os.W_OK): - self.Entropy.setup_default_file_perms(dbfile) + self._entropy.setup_default_file_perms(dbfile) # database has been updated self.updated = True @@ -1462,22 +1470,22 @@ class Repository: except OSError: continue - self.Entropy.update_repository_revision(repo) + self._update_repository_revision(repo) self._database_revdeps_setup(repo) - if self.Entropy.indexing: + if self._entropy.indexing: self._database_indexing(repo) try: - spm_class = self.Entropy.Spm_class() + spm_class = self._entropy.Spm_class() spm_class.entropy_client_post_repository_update_hook( - self.Entropy, repo) + self._entropy, repo) except Exception as err: entropy.tools.print_traceback() mytxt = "%s: %s" % ( blue(_("Configuration files update error, not critical, continuing")), err, ) - self.Entropy.output(mytxt, importance = 0, + self._entropy.output(mytxt, importance = 0, type = "info", header = blue(" # "),) # execute post update repo hook @@ -1490,40 +1498,40 @@ class Repository: os.remove(dbfile_old) # keep them closed - self.Entropy.close_repositories() - self.Entropy.validate_repositories() - self.Entropy.close_repositories() + self._entropy.close_repositories() + self._entropy._validate_repositories() + self._entropy.close_repositories() # clean caches, fetch security if self.updated: - self.Entropy.clear_cache() + self._entropy.clear_cache() if self.fetch_security: self._update_security_advisories() # do treeupdates - if isinstance(self.Entropy.installed_repository(), EntropyRepository) and \ + if isinstance(self._entropy.installed_repository(), EntropyRepository) and \ entropy.tools.is_root(): # only as root due to Portage for repo in self.repo_ids: try: - dbc = self.Entropy.open_repository(repo) + dbc = self._entropy.open_repository(repo) except RepositoryError: # download failed and repo is not available, skip! continue try: - self.Entropy.repository_packages_spm_sync(repo, dbc) + self._entropy.repository_packages_spm_sync(repo, dbc) except Error: # EntropyRepository error, missing table? continue - self.Entropy.close_repositories() + self._entropy.close_repositories() if self.sync_errors: - self.Entropy.output( + self._entropy.output( red(_("Something bad happened. Please have a look.")), importance = 1, type = "warning", header = darkred(" @@ ") ) self.sync_errors = True - self.Entropy.resources_remove_lock() + self._entropy.resources_remove_lock() return 128 if self.entropy_updates_alert: @@ -1535,7 +1543,7 @@ class Repository: rc = False if self.entropy_updates_alert: try: - rc, pkg_match = self.Entropy.check_package_update( + rc, pkg_match = self._entropy.check_package_update( "sys-apps/entropy", deep = True) except: pass @@ -1546,7 +1554,7 @@ class Repository: blue(_("a new release is available")), darkred(_("Mind to install it before any other package")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -1563,7 +1571,7 @@ class Repository: mytxt = "%s %s %s" % (red(_("Unpacking database to")), darkgreen(file_to_unpack), red("..."),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -1580,7 +1588,7 @@ class Repository: if myrc != 0: mytxt = "%s %s !" % (red(_("Cannot unpack compressed package")), red(_("Skipping repository")),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1605,7 +1613,7 @@ class Repository: red("..."), ) # download checksum - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", @@ -1628,7 +1636,7 @@ class Repository: red(_("Cannot fetch checksum")), red(_("Cannot verify database integrity")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1666,7 +1674,7 @@ class Repository: bold(_("Attention")), red(_("remote database got suddenly locked")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1675,7 +1683,7 @@ class Repository: # starting to download mytxt = "%s ..." % (red(_("Downloading repository database")),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -1735,7 +1743,7 @@ class Repository: if not down_status: mytxt = "%s: %s." % (bold(_("Attention")), red(_("database does not exist online")),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1751,7 +1759,7 @@ class Repository: if not update: mytxt = "%s: %s." % (bold(_("Attention")), red(_("database is already up to date")),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -1769,7 +1777,7 @@ class Repository: red(_("Repository is being updated")), red(_("Try again in a few minutes")), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1780,9 +1788,9 @@ class Repository: def __eapi1_eapi2_databases_alignment(self, dbfile, dbfile_old): - dbconn = self.Entropy.open_generic_database(dbfile, xcache = False, + dbconn = self._entropy.open_generic_repository(dbfile, xcache = False, indexing_override = False) - old_dbconn = self.Entropy.open_generic_database(dbfile_old, + old_dbconn = self._entropy.open_generic_repository(dbfile_old, xcache = False, indexing_override = False) upd_rc = 0 try: @@ -1806,13 +1814,13 @@ class Repository: red(_("please wait")), red("..."), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 0, type = "info", header = "\t" ) - dbconn = self.Entropy.open_generic_database(dbfile, + dbconn = self._entropy.open_generic_repository(dbfile, xcache = False, indexing_override = False) rc = dbconn.doDatabaseImport(dumpfile, dbfile) dbconn.closeDB() @@ -1821,12 +1829,12 @@ class Repository: def _update_security_advisories(self): # update Security Advisories try: - security_intf = self.Entropy.Security() + security_intf = self._entropy.Security() security_intf.sync() except Exception as e: - entropy.tools.print_traceback(f = self.Entropy.clientLog) + entropy.tools.print_traceback(f = self._entropy.clientLog) mytxt = "%s: %s" % (red(_("Advisories fetch error")), e,) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning", @@ -1835,7 +1843,7 @@ class Repository: def _standard_items_download(self, repo): - repos_data = self.Entropy.SystemSettings['repositories'] + repos_data = self._settings['repositories'] repo_data = repos_data['available'][repo] notice_board = os.path.basename(repo_data['local_notice_board']) db_meta_file = etpConst['etpdatabasemetafilesfile'] @@ -1878,7 +1886,7 @@ class Repository: ] def my_show_info(txt): - self.Entropy.output( + self._entropy.output( txt, importance = 0, type = "info", @@ -1887,7 +1895,7 @@ class Repository: ) def my_show_down_status(message, mytype): - self.Entropy.output( + self._entropy.output( message, importance = 0, type = mytype, @@ -1895,13 +1903,13 @@ class Repository: ) def my_show_file_unpack(fp): - self.Entropy.output( + self._entropy.output( "%s: %s" % (darkgreen(_("unpacked meta file")), brown(fp),), header = blue("\t << ") ) def my_show_file_rm(fp): - self.Entropy.output( + self._entropy.output( "%s: %s" % (darkgreen(_("removed meta file")), purple(fp),), header = blue("\t << ") ) @@ -2002,9 +2010,9 @@ class Repository: mytxt = "%s: %s" % ( red(_("Repository revision")), - bold(str(self.Entropy.get_repository_revision(repo))), + bold(str(self._entropy.get_repository_revision(repo))), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -2014,70 +2022,70 @@ class Repository: return downloaded_files def _database_revdeps_setup(self, repo): - dbconn = self.Entropy.open_repository(repo) + dbconn = self._entropy.open_repository(repo) dbconn.generateReverseDependenciesMetadata(verbose = False) dbconn.commitChanges(force = True) def _database_indexing(self, repo): # renice a bit, to avoid eating resources - old_prio = self.Entropy.set_priority(15) + old_prio = self._entropy.set_priority(15) mytxt = red("%s ...") % (_("Indexing Repository metadata"),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", header = "\t" ) - dbconn = self.Entropy.open_repository(repo) + dbconn = self._entropy.open_repository(repo) dbconn.createAllIndexes() dbconn.commitChanges(force = True) # get list of indexes repo_indexes = dbconn.listAllIndexes() - if self.Entropy.installed_repository() is not None: + if self._entropy.installed_repository() is not None: try: # client db can be absent - client_indexes = self.Entropy.installed_repository().listAllIndexes() + client_indexes = self._entropy.installed_repository().listAllIndexes() if repo_indexes != client_indexes: - self.Entropy.installed_repository().createAllIndexes() + self._entropy.installed_repository().createAllIndexes() except: pass - self.Entropy.set_priority(old_prio) + self._entropy.set_priority(old_prio) def sync(self): # close them - self.Entropy.close_repositories() + self._entropy.close_repositories() # let's dance! mytxt = darkgreen("%s ...") % (_("Repositories synchronization"),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 2, type = "info", header = darkred(" @@ ") ) - gave_up = self.Entropy.lock_check(self.Entropy.resources_check_lock) + gave_up = self._entropy.lock_check(self._entropy.resources_check_lock) if gave_up: return 3 - locked = self.Entropy.application_lock_check() + locked = self._entropy.application_lock_check() if locked: return 4 # lock - acquired = self.Entropy.resources_create_lock() + acquired = self._entropy.resources_create_lock() if not acquired: return 4 # app locked during lock acquire try: rc = self._run_sync() finally: - self.Entropy.resources_remove_lock() + self._entropy.resources_remove_lock() if rc: return rc # remove lock - self.Entropy.resources_remove_lock() + self._entropy.resources_remove_lock() if (self.not_available >= len(self.repo_ids)): return 2 diff --git a/libraries/entropy/server/interfaces/main.py b/libraries/entropy/server/interfaces/main.py index 042502fce..262b0cd6f 100644 --- a/libraries/entropy/server/interfaces/main.py +++ b/libraries/entropy/server/interfaces/main.py @@ -3782,7 +3782,7 @@ class ServerRepositoryMixin: header = darkgreen(" * "), back = True ) - dbconn = self.open_generic_database(dbpath) + dbconn = self.open_generic_repository(dbpath) dbconn.initializeDatabase() dbconn.commitChanges() dbconn.closeDB() diff --git a/libraries/entropy/server/interfaces/mirrors.py b/libraries/entropy/server/interfaces/mirrors.py index b256b36a2..dbaec49b8 100644 --- a/libraries/entropy/server/interfaces/mirrors.py +++ b/libraries/entropy/server/interfaces/mirrors.py @@ -37,12 +37,12 @@ class ServerNoticeBoardMixin: def download_notice_board(self, repo = None): if repo is None: - repo = self.Entropy.default_repository - mirrors = self.Entropy.get_remote_mirrors(repo) - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + repo = self._entropy.default_repository + mirrors = self._entropy.get_remote_mirrors(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) mytmpdir = tempfile.mkdtemp() - self.Entropy.output( + self._entropy.output( "[repo:%s] %s %s" % ( brown(repo), blue(_("downloading notice board from mirrors to")), @@ -57,14 +57,14 @@ class ServerNoticeBoardMixin: for uri in mirrors: crippled_uri = EntropyTransceiver.get_uri_name(uri) downloader = self.TransceiverServerHandler( - self.Entropy, [uri], + self._entropy, [uri], [rss_path], download = True, local_basedir = mytmpdir, critical_files = [rss_path], repo = repo ) errors, m_fine_uris, m_broken_uris = downloader.go() if not errors: - self.Entropy.output( + self._entropy.output( "[repo:%s] %s: %s" % ( brown(repo), blue(_("notice board downloaded successfully from")), @@ -86,12 +86,12 @@ class ServerNoticeBoardMixin: def remove_notice_board(self, repo = None): if repo is None: - repo = self.Entropy.default_repository - mirrors = self.Entropy.get_remote_mirrors(repo) - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + repo = self._entropy.default_repository + mirrors = self._entropy.get_remote_mirrors(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) rss_file = os.path.basename(rss_path) - self.Entropy.output( + self._entropy.output( "[repo:%s] %s %s" % ( brown(repo), blue(_("removing notice board from")), @@ -103,7 +103,7 @@ class ServerNoticeBoardMixin: ) destroyer = self.TransceiverServerHandler( - self.Entropy, + self._entropy, mirrors, [rss_file], critical_files = [rss_file], @@ -115,7 +115,7 @@ class ServerNoticeBoardMixin: m_broken_uris = sorted(m_broken_uris) m_broken_uris = [EntropyTransceiver.get_uri_name(x) \ for x in m_broken_uris] - self.Entropy.output( + self._entropy.output( "[repo:%s] %s %s" % ( brown(repo), blue(_("notice board removal failed on")), @@ -126,7 +126,7 @@ class ServerNoticeBoardMixin: header = blue(" @@ ") ) return False - self.Entropy.output( + self._entropy.output( "[repo:%s] %s" % ( brown(repo), blue(_("notice board removal success")), @@ -141,11 +141,11 @@ class ServerNoticeBoardMixin: def upload_notice_board(self, repo = None): if repo is None: - repo = self.Entropy.default_repository - mirrors = self.Entropy.get_remote_mirrors(repo) - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + repo = self._entropy.default_repository + mirrors = self._entropy.get_remote_mirrors(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) - self.Entropy.output( + self._entropy.output( "[repo:%s] %s %s" % ( brown(repo), blue(_("uploading notice board from")), @@ -157,7 +157,7 @@ class ServerNoticeBoardMixin: ) uploader = self.TransceiverServerHandler( - self.Entropy, + self._entropy, mirrors, [rss_path], critical_files = [rss_path], @@ -168,7 +168,7 @@ class ServerNoticeBoardMixin: m_broken_uris = sorted(m_broken_uris) m_broken_uris = [EntropyTransceiver.get_uri_name(x) \ for x in m_broken_uris] - self.Entropy.output( + self._entropy.output( "[repo:%s] %s %s" % ( brown(repo), blue(_("notice board upload failed on")), @@ -179,7 +179,7 @@ class ServerNoticeBoardMixin: header = blue(" @@ ") ) return False - self.Entropy.output( + self._entropy.output( "[repo:%s] %s" % ( brown(repo), blue(_("notice board upload success")), @@ -195,7 +195,7 @@ class ServerNoticeBoardMixin: rss_title = "%s Notice Board" % (self.SystemSettings['system']['name'],) rss_description = "Inform about important distribution activities." - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) srv_set = self.SystemSettings[self.sys_settings_plugin_id]['server'] if not link: link = srv_set['rss']['website_url'] @@ -214,7 +214,7 @@ class ServerNoticeBoardMixin: def read_notice_board(self, do_download = True, repo = None): - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) if do_download: self.download_notice_board(repo) if not (os.path.isfile(rss_path) and os.access(rss_path, os.R_OK)): @@ -224,7 +224,7 @@ class ServerNoticeBoardMixin: def remove_from_notice_board(self, identifier, repo = None): - rss_path = self.Entropy._get_local_database_notice_board_file(repo) + rss_path = self._entropy._get_local_database_notice_board_file(repo) rss_title = "%s Notice Board" % (self.SystemSettings['system']['name'],) rss_description = "Inform about important distribution activities." if not (os.path.isfile(rss_path) and os.access(rss_path, os.R_OK)): @@ -245,7 +245,7 @@ class Server(ServerNoticeBoardMixin): if not isinstance(server, MainServer): raise AttributeError("entropy.server.interfaces.main.Server needed") - self.Entropy = server + self._entropy = server self.TransceiverServerHandler = TransceiverServerHandler self.Cacher = EntropyCacher() self.sys_settings_plugin_id = \ @@ -253,16 +253,16 @@ class Server(ServerNoticeBoardMixin): self.SystemSettings = SystemSettings() mytxt = blue("%s:") % (_("Entropy Server Mirrors Interface loaded"),) - self.Entropy.output( + self._entropy.output( mytxt, importance = 2, type = "info", header = red(" @@ ") ) mytxt = _("mirror") - for mirror in self.Entropy.get_remote_mirrors(repo = repo): + for mirror in self._entropy.get_remote_mirrors(repo = repo): mirror = EntropyTransceiver.hide_sensible_data(mirror) - self.Entropy.output( + self._entropy.output( blue("%s: %s") % (mytxt, darkgreen(mirror),), importance = 0, type = "info", @@ -286,17 +286,17 @@ class Server(ServerNoticeBoardMixin): @rtype: dict """ if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository if excluded_branches is None: excluded_branches = [] branch_data = {} - mirrors = self.Entropy.get_remote_mirrors(repo) + mirrors = self._entropy.get_remote_mirrors(repo) for uri in mirrors: crippled_uri = EntropyTransceiver.get_uri_name(uri) - self.Entropy.output( + self._entropy.output( "[repo:%s] %s: %s => %s" % ( brown(repo), blue(_("looking for file in mirror")), @@ -308,9 +308,9 @@ class Server(ServerNoticeBoardMixin): header = brown(" @@ ") ) - branches_path = self.Entropy._get_remote_database_relative_path( + branches_path = self._entropy._get_remote_database_relative_path( repo) - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) txc.set_verbosity(False) with txc as handler: @@ -356,10 +356,10 @@ class Server(ServerNoticeBoardMixin): def lock_mirrors(self, lock = True, mirrors = None, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository if not mirrors: - mirrors = self.Entropy.get_remote_mirrors(repo) + mirrors = self._entropy.get_remote_mirrors(repo) issues = False for uri in mirrors: @@ -369,7 +369,7 @@ class Server(ServerNoticeBoardMixin): lock_text = _("unlocking") if lock: lock_text = _("locking") - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -383,18 +383,18 @@ class Server(ServerNoticeBoardMixin): ) base_path = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) lock_file = os.path.join(base_path, etpConst['etpdatabaselockfile']) - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) txc.set_verbosity(False) with txc as handler: if lock and handler.is_file(lock_file): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -407,7 +407,7 @@ class Server(ServerNoticeBoardMixin): continue elif not lock and not handler.is_file(lock_file): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -428,7 +428,7 @@ class Server(ServerNoticeBoardMixin): issues = True if not issues: - db_taint_file = self.Entropy._get_local_database_taint_file(repo) + db_taint_file = self._entropy._get_local_database_taint_file(repo) if os.path.isfile(db_taint_file): os.remove(db_taint_file) @@ -447,10 +447,10 @@ class Server(ServerNoticeBoardMixin): mirrors = [] if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository if not mirrors: - mirrors = self.Entropy.get_remote_mirrors(repo) + mirrors = self._entropy.get_remote_mirrors(repo) issues = False for uri in mirrors: @@ -460,7 +460,7 @@ class Server(ServerNoticeBoardMixin): lock_text = _("unlocking") if lock: lock_text = _("locking") - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s %s..." % ( blue(repo), red(crippled_uri), @@ -475,17 +475,17 @@ class Server(ServerNoticeBoardMixin): lock_file = etpConst['etpdatabasedownloadlockfile'] my_path = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) lock_file = os.path.join(my_path, lock_file) - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) txc.set_verbosity(False) with txc as handler: if lock and handler.is_file(lock_file): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( blue(repo), red(crippled_uri), @@ -498,7 +498,7 @@ class Server(ServerNoticeBoardMixin): continue elif not lock and not handler.is_file(lock_file): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( blue(repo), red(crippled_uri), @@ -524,10 +524,10 @@ class Server(ServerNoticeBoardMixin): def _do_mirror_lock(self, uri, txc_handler, dblock = True, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository my_path = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) # create path to lock file if it doesn't exist @@ -538,19 +538,19 @@ class Server(ServerNoticeBoardMixin): lock_string = '' if dblock: - self.Entropy._create_local_database_lockfile(repo) - lock_file = self.Entropy._get_database_lockfile(repo) + self._entropy._create_local_database_lockfile(repo) + lock_file = self._entropy._get_database_lockfile(repo) else: # locking/unlocking mirror1 for download lock_string = _('for download') - self.Entropy._create_local_database_download_lockfile(repo) - lock_file = self.Entropy._get_database_download_lockfile(repo) + self._entropy._create_local_database_download_lockfile(repo) + lock_file = self._entropy._get_database_download_lockfile(repo) remote_path = os.path.join(my_path, os.path.basename(lock_file)) rc_upload = txc_handler.upload(lock_file, remote_path) if rc_upload: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s %s" % ( blue(repo), red(crippled_uri), @@ -562,7 +562,7 @@ class Server(ServerNoticeBoardMixin): header = red(" @@ ") ) else: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s - %s %s" % ( blue(repo), red(crippled_uri), @@ -575,7 +575,7 @@ class Server(ServerNoticeBoardMixin): type = "error", header = darkred(" * ") ) - self.Entropy._remove_local_database_lockfile(repo) + self._entropy._remove_local_database_lockfile(repo) return rc_upload @@ -583,10 +583,10 @@ class Server(ServerNoticeBoardMixin): def _do_mirror_unlock(self, uri, txc_handler, dblock = True, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository my_path = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) crippled_uri = EntropyTransceiver.get_uri_name(uri) @@ -601,7 +601,7 @@ class Server(ServerNoticeBoardMixin): rc_delete = txc_handler.delete(remote_path) if rc_delete: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( blue(repo), red(crippled_uri), @@ -612,11 +612,11 @@ class Server(ServerNoticeBoardMixin): header = darkgreen(" * ") ) if dblock: - self.Entropy._remove_local_database_lockfile(repo) + self._entropy._remove_local_database_lockfile(repo) else: - self.Entropy._remove_local_database_download_lockfile(repo) + self._entropy._remove_local_database_download_lockfile(repo) else: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s - %s" % ( blue(repo), red(crippled_uri), @@ -634,7 +634,7 @@ class Server(ServerNoticeBoardMixin): def download_package(self, uri, pkg_relative_path, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository pkgfile = os.path.basename(pkg_relative_path) crippled_uri = EntropyTransceiver.get_uri_name(uri) @@ -643,10 +643,10 @@ class Server(ServerNoticeBoardMixin): while tries < 5: tries += 1 - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) with txc as handler: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -661,14 +661,14 @@ class Server(ServerNoticeBoardMixin): ) remote_path = \ - self.Entropy.complete_remote_package_relative_path( + self._entropy.complete_remote_package_relative_path( pkg_relative_path, repo = repo) - download_path = self.Entropy.complete_local_package_path( + download_path = self._entropy.complete_local_package_path( pkg_relative_path, repo = repo) download_dir = os.path.dirname(download_path) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -683,11 +683,11 @@ class Server(ServerNoticeBoardMixin): if (not os.path.isdir(download_dir)) and \ (not os.access(download_dir, os.R_OK)): - self.Entropy._ensure_dir_path(download_dir) + self._entropy._ensure_dir_path(download_dir) rc_download = handler.download(remote_path, download_path) if not rc_download: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -702,11 +702,11 @@ class Server(ServerNoticeBoardMixin): ) return rc_download - dbconn = self.Entropy.open_server_repository(read_only = True, + dbconn = self._entropy.open_server_repository(read_only = True, no_upload = True, repo = repo) idpackage = dbconn.getIdpackageFromDownload(pkg_relative_path) if idpackage == -1: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -722,7 +722,7 @@ class Server(ServerNoticeBoardMixin): return False storedmd5 = dbconn.retrieveDigest(idpackage) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -738,7 +738,7 @@ class Server(ServerNoticeBoardMixin): md5check = entropy.tools.compare_md5(download_path, storedmd5) if md5check: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -753,7 +753,7 @@ class Server(ServerNoticeBoardMixin): ) return True else: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -770,7 +770,7 @@ class Server(ServerNoticeBoardMixin): os.remove(download_path) # if we get here it means the files hasn't been downloaded properly - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|#%s] %s: %s %s" % ( brown(repo), darkgreen(crippled_uri), @@ -793,17 +793,17 @@ class Server(ServerNoticeBoardMixin): if cmethod is None: raise AttributeError("Wrong database compression method passed") remote_dir = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) # let raise exception if connection is impossible - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) with txc as handler: compressedfile = etpConst[cmethod[2]] rc1 = handler.is_file(os.path.join(remote_dir, compressedfile)) - rev_file = self.Entropy._get_local_database_revision_file(repo) + rev_file = self._entropy._get_local_database_revision_file(repo) revfilename = os.path.basename(rev_file) rc2 = handler.is_file(os.path.join(remote_dir, revfilename)) @@ -833,7 +833,7 @@ class Server(ServerNoticeBoardMixin): revision = int(f_rev.readline().strip()) except ValueError: mytxt = _("mirror hasn't valid database revision file") - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -848,7 +848,7 @@ class Server(ServerNoticeBoardMixin): f_rev.close() elif dlcount == 0: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -862,7 +862,7 @@ class Server(ServerNoticeBoardMixin): revision = 0 else: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), darkgreen(crippled_uri), @@ -881,9 +881,9 @@ class Server(ServerNoticeBoardMixin): def get_remote_repositories_status(self, repo = None, mirrors = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository if not mirrors: - mirrors = self.Entropy.get_remote_mirrors(repo) + mirrors = self._entropy.get_remote_mirrors(repo) data = [] for uri in mirrors: @@ -894,25 +894,25 @@ class Server(ServerNoticeBoardMixin): def _is_local_repository_locked(self, repo = None): local_repo = repo if local_repo is None: - local_repo = self.Entropy.default_repository - lock_file = self.Entropy._get_database_lockfile(local_repo) + local_repo = self._entropy.default_repository + lock_file = self._entropy._get_database_lockfile(local_repo) return os.path.isfile(lock_file) def _get_mirrors_lock(self, repo = None): dbstatus = [] remote_dir = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) lock_file = os.path.join(remote_dir, etpConst['etpdatabaselockfile']) down_lock_file = os.path.join(remote_dir, etpConst['etpdatabasedownloadlockfile']) - for uri in self.Entropy.get_remote_mirrors(repo): + for uri in self._entropy.get_remote_mirrors(repo): data = [uri, False, False] # let raise exception if connection is impossible - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) with txc as handler: if handler.is_file(lock_file): # upload locked @@ -927,14 +927,14 @@ class Server(ServerNoticeBoardMixin): def _update_rss_feed(self, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository product = self.SystemSettings['repositories']['product'] - #db_dir = self.Entropy._get_local_database_dir(repo) - rss_path = self.Entropy._get_local_database_rss_file(repo) - rss_light_path = self.Entropy._get_local_database_rsslight_file(repo) + #db_dir = self._entropy._get_local_database_dir(repo) + rss_path = self._entropy._get_local_database_rss_file(repo) + rss_light_path = self._entropy._get_local_database_rsslight_file(repo) rss_dump_name = repo + etpConst['rss-dump-name'] - db_revision_path = self.Entropy._get_local_database_revision_file(repo) + db_revision_path = self._entropy._get_local_database_revision_file(repo) rss_title = "%s Online Repository Status" % ( self.SystemSettings['system']['name'],) @@ -948,7 +948,7 @@ class Server(ServerNoticeBoardMixin): maxentries = srv_set['rss']['max_entries']) # load dump db_actions = self.Cacher.pop(rss_dump_name, - cache_dir = self.Entropy.CACHE_DIR) + cache_dir = self._entropy.CACHE_DIR) if db_actions: try: f_rev = open(db_revision_path) @@ -1002,7 +1002,7 @@ class Server(ServerNoticeBoardMixin): rss_main.write_changes() ServerRssMetadata().clear() EntropyCacher.clear_cache_item(rss_dump_name, - cache_dir = self.Entropy.CACHE_DIR) + cache_dir = self._entropy.CACHE_DIR) def _dump_database_to_file(self, db_path, destination_path, opener, @@ -1012,10 +1012,10 @@ class Server(ServerNoticeBoardMixin): exclude_tables = [] f_out = opener(destination_path, "wb") - dbconn = self.Entropy.open_server_repository(db_path, + dbconn = self._entropy.open_server_repository(db_path, just_reading = True, repo = repo, do_treeupdates = False) dbconn.doDatabaseExport(f_out, exclude_tables = exclude_tables) - self.Entropy.close_repository(dbconn) + self._entropy.close_repository(dbconn) f_out.close() def _create_file_checksum(self, file_path, checksum_path): @@ -1042,7 +1042,7 @@ class Server(ServerNoticeBoardMixin): disabled_eapis = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository if disabled_eapis is None: disabled_eapis = [] @@ -1051,7 +1051,7 @@ class Server(ServerNoticeBoardMixin): extra_text_files = [] gpg_signed_files = [] data = {} - db_rev_file = self.Entropy._get_local_database_revision_file(repo) + db_rev_file = self._entropy._get_local_database_revision_file(repo) # adding ~ at the beginning makes this file to be appended at the end # of the upload queue data['~database_revision_file'] = db_rev_file @@ -1059,14 +1059,14 @@ class Server(ServerNoticeBoardMixin): critical.append(db_rev_file) # branch migration support scripts - post_branch_mig_file = self.Entropy._get_local_post_branch_mig_script( + post_branch_mig_file = self._entropy._get_local_post_branch_mig_script( repo) if os.path.isfile(post_branch_mig_file) or download: if download: data['database_post_branch_hop_script'] = post_branch_mig_file extra_text_files.append(post_branch_mig_file) - post_branch_upg_file = self.Entropy._get_local_post_branch_upg_script( + post_branch_upg_file = self._entropy._get_local_post_branch_upg_script( repo) if os.path.isfile(post_branch_upg_file) or download: if download: @@ -1074,28 +1074,28 @@ class Server(ServerNoticeBoardMixin): post_branch_upg_file extra_text_files.append(post_branch_upg_file) - post_repo_update_file = self.Entropy._get_local_post_repo_update_script( + post_repo_update_file = self._entropy._get_local_post_repo_update_script( repo) if os.path.isfile(post_repo_update_file) or download: if download: data['database_post_repo_update_script'] = post_repo_update_file extra_text_files.append(post_repo_update_file) - database_ts_file = self.Entropy._get_local_database_timestamp_file(repo) + database_ts_file = self._entropy._get_local_database_timestamp_file(repo) if os.path.isfile(database_ts_file) or download: data['database_timestamp_file'] = database_ts_file if not download: critical.append(database_ts_file) database_package_mask_file = \ - self.Entropy._get_local_database_mask_file(repo) + self._entropy._get_local_database_mask_file(repo) if os.path.isfile(database_package_mask_file) or download: if download: data['database_package_mask_file'] = database_package_mask_file extra_text_files.append(database_package_mask_file) database_package_system_mask_file = \ - self.Entropy._get_local_database_system_mask_file(repo) + self._entropy._get_local_database_system_mask_file(repo) if os.path.isfile(database_package_system_mask_file) or download: if download: data['database_package_system_mask_file'] = \ @@ -1103,7 +1103,7 @@ class Server(ServerNoticeBoardMixin): extra_text_files.append(database_package_system_mask_file) database_package_confl_tagged_file = \ - self.Entropy._get_local_database_confl_tagged_file(repo) + self._entropy._get_local_database_confl_tagged_file(repo) if os.path.isfile(database_package_confl_tagged_file) or download: if download: data['database_package_confl_tagged_file'] = \ @@ -1111,7 +1111,7 @@ class Server(ServerNoticeBoardMixin): extra_text_files.append(database_package_confl_tagged_file) database_license_whitelist_file = \ - self.Entropy._get_local_database_licensewhitelist_file(repo) + self._entropy._get_local_database_licensewhitelist_file(repo) if os.path.isfile(database_license_whitelist_file) or download: if download: data['database_license_whitelist_file'] = \ @@ -1119,52 +1119,52 @@ class Server(ServerNoticeBoardMixin): extra_text_files.append(database_license_whitelist_file) exp_based_pkgs_removal_file = \ - self.Entropy._get_local_exp_based_pkgs_rm_whitelist_file(repo) + self._entropy._get_local_exp_based_pkgs_rm_whitelist_file(repo) if os.path.isfile(exp_based_pkgs_removal_file) or download: if download: data['exp_based_pkgs_removal_file'] = \ exp_based_pkgs_removal_file extra_text_files.append(exp_based_pkgs_removal_file) - database_rss_file = self.Entropy._get_local_database_rss_file(repo) + database_rss_file = self._entropy._get_local_database_rss_file(repo) if os.path.isfile(database_rss_file) or download: data['database_rss_file'] = database_rss_file if not download: critical.append(data['database_rss_file']) database_rss_light_file = \ - self.Entropy._get_local_database_rsslight_file(repo) + self._entropy._get_local_database_rsslight_file(repo) if os.path.isfile(database_rss_light_file) or download: data['database_rss_light_file'] = database_rss_light_file if not download: critical.append(data['database_rss_light_file']) - pkglist_file = self.Entropy._get_local_pkglist_file(repo) + pkglist_file = self._entropy._get_local_pkglist_file(repo) data['pkglist_file'] = pkglist_file if not download: critical.append(data['pkglist_file']) - critical_updates_file = self.Entropy._get_local_critical_updates_file( + critical_updates_file = self._entropy._get_local_critical_updates_file( repo) if os.path.isfile(critical_updates_file) or download: if download: data['critical_updates_file'] = critical_updates_file extra_text_files.append(critical_updates_file) - restricted_file = self.Entropy._get_local_restricted_file(repo) + restricted_file = self._entropy._get_local_restricted_file(repo) if os.path.isfile(restricted_file) or download: if download: data['restricted_file'] = restricted_file extra_text_files.append(restricted_file) - keywords_file = self.Entropy._get_local_database_keywords_file( + keywords_file = self._entropy._get_local_database_keywords_file( repo) if os.path.isfile(keywords_file) or download: if download: data['keywords_file'] = keywords_file extra_text_files.append(keywords_file) - gpg_file = self.Entropy._get_local_database_gpg_signature_file(repo) + gpg_file = self._entropy._get_local_database_gpg_signature_file(repo) if os.path.isfile(gpg_file) or download: data['gpg_file'] = gpg_file # no need to add to extra_text_files, it will be added @@ -1176,20 +1176,20 @@ class Server(ServerNoticeBoardMixin): # always push metafiles file, it's cheap data['metafiles_path'] = \ - self.Entropy._get_local_database_compressed_metafiles_file(repo) + self._entropy._get_local_database_compressed_metafiles_file(repo) critical.append(data['metafiles_path']) gpg_signed_files.append(data['metafiles_path']) if 2 not in disabled_eapis: data['dump_path_light'] = os.path.join( - self.Entropy._get_local_database_dir(repo), + self._entropy._get_local_database_dir(repo), etpConst[cmethod[5]]) critical.append(data['dump_path_light']) gpg_signed_files.append(data['dump_path_light']) data['dump_path_digest_light'] = os.path.join( - self.Entropy._get_local_database_dir(repo), + self._entropy._get_local_database_dir(repo), etpConst[cmethod[6]]) critical.append(data['dump_path_digest_light']) gpg_signed_files.append(data['dump_path_digest_light']) @@ -1198,31 +1198,31 @@ class Server(ServerNoticeBoardMixin): if 1 not in disabled_eapis: data['compressed_database_path'] = os.path.join( - self.Entropy._get_local_database_dir(repo), etpConst[cmethod[2]]) + self._entropy._get_local_database_dir(repo), etpConst[cmethod[2]]) critical.append(data['compressed_database_path']) gpg_signed_files.append(data['compressed_database_path']) data['compressed_database_path_light'] = os.path.join( - self.Entropy._get_local_database_dir(repo), etpConst[cmethod[7]]) + self._entropy._get_local_database_dir(repo), etpConst[cmethod[7]]) critical.append(data['compressed_database_path_light']) gpg_signed_files.append(data['compressed_database_path_light']) data['database_path_digest'] = os.path.join( - self.Entropy._get_local_database_dir(repo), + self._entropy._get_local_database_dir(repo), etpConst['etpdatabasehashfile'] ) critical.append(data['database_path_digest']) gpg_signed_files.append(data['database_path_digest']) data['compressed_database_path_digest'] = os.path.join( - self.Entropy._get_local_database_dir(repo), + self._entropy._get_local_database_dir(repo), etpConst[cmethod[2]] + etpConst['packagesmd5fileext'] ) critical.append(data['compressed_database_path_digest']) gpg_signed_files.append(data['compressed_database_path_digest']) data['compressed_database_path_digest_light'] = os.path.join( - self.Entropy._get_local_database_dir(repo), + self._entropy._get_local_database_dir(repo), etpConst[cmethod[8]] ) critical.append(data['compressed_database_path_digest_light']) @@ -1231,20 +1231,20 @@ class Server(ServerNoticeBoardMixin): # SSL cert file, just for reference - ssl_ca_cert = self.Entropy._get_local_database_ca_cert_file() + ssl_ca_cert = self._entropy._get_local_database_ca_cert_file() if os.path.isfile(ssl_ca_cert): if download: data['ssl_ca_cert_file'] = ssl_ca_cert extra_text_files.append(ssl_ca_cert) - ssl_server_cert = self.Entropy._get_local_database_server_cert_file() + ssl_server_cert = self._entropy._get_local_database_server_cert_file() if os.path.isfile(ssl_server_cert): if download: data['ssl_server_cert_file'] = ssl_server_cert extra_text_files.append(ssl_server_cert) # Some information regarding how packages are built - spm_files_map = self.Entropy.Spm_class().config_files_map() + spm_files_map = self._entropy.Spm_class().config_files_map() spm_syms = {} for myname, myfile in spm_files_map.items(): if os.path.islink(myfile): @@ -1277,7 +1277,7 @@ class Server(ServerNoticeBoardMixin): def _show_package_sets_messages(self, repo): - self.Entropy.output( + self._entropy.output( "[repo:%s] %s:" % ( brown(repo), blue(_("configured package sets")), @@ -1286,9 +1286,9 @@ class Server(ServerNoticeBoardMixin): type = "info", header = darkgreen(" * ") ) - sets_data = self.Entropy.sets_available(matchRepo = [repo]) + sets_data = self._entropy.sets_available(matchRepo = [repo]) if not sets_data: - self.Entropy.output( + self._entropy.output( "%s" % (_("None configured"),), importance = 0, type = "info", @@ -1296,7 +1296,7 @@ class Server(ServerNoticeBoardMixin): ) return for s_repo, s_name, s_sets in sets_data: - self.Entropy.output( + self._entropy.output( blue("%s" % (s_name,)), importance = 0, type = "info", @@ -1305,7 +1305,7 @@ class Server(ServerNoticeBoardMixin): def _show_eapi3_upload_messages(self, crippled_uri, database_path, repo): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s:%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -1317,7 +1317,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = darkgreen(" * ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("database path"), blue(database_path),), importance = 0, type = "info", @@ -1328,9 +1328,9 @@ class Server(ServerNoticeBoardMixin): upload_data, cmethod, repo): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s:%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -1342,13 +1342,13 @@ class Server(ServerNoticeBoardMixin): type = "info", header = darkgreen(" * ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("database path"), blue(database_path),), importance = 0, type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("dump light"), blue(upload_data['dump_path_light']), @@ -1357,7 +1357,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("dump light checksum"), blue(upload_data['dump_path_digest_light']), @@ -1367,7 +1367,7 @@ class Server(ServerNoticeBoardMixin): header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("opener"), blue(str(cmethod[0])),), importance = 0, type = "info", @@ -1377,7 +1377,7 @@ class Server(ServerNoticeBoardMixin): def _show_eapi1_upload_messages(self, crippled_uri, database_path, upload_data, cmethod, repo): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s:%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -1390,13 +1390,13 @@ class Server(ServerNoticeBoardMixin): header = darkgreen(" * "), back = True ) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("database path"), blue(database_path),), importance = 0, type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("compressed database path"), blue(upload_data['compressed_database_path']), @@ -1405,7 +1405,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("database checksum"), blue(upload_data['database_path_digest']), @@ -1414,7 +1414,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("compressed checksum"), blue(upload_data['compressed_database_path_digest']), @@ -1423,7 +1423,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = brown(" # ") ) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("opener"), blue(str(cmethod[0])),), importance = 0, type = "info", @@ -1436,7 +1436,7 @@ class Server(ServerNoticeBoardMixin): if not repo_sec.is_keypair_available(repo): raise KeyError("no key avail") except RepositorySecurity.KeyExpired: - self.Entropy.output("%s: %s" % ( + self._entropy.output("%s: %s" % ( darkred(_("Keys for repository are expired")), bold(repo), ), @@ -1452,7 +1452,7 @@ class Server(ServerNoticeBoardMixin): def __write_gpg_pubkey(self, repo_sec, repo): pubkey = repo_sec.get_pubkey(repo) # write pubkey to file and add to data upload - gpg_path = self.Entropy._get_local_database_gpg_signature_file(repo) + gpg_path = self._entropy._get_local_database_gpg_signature_file(repo) with open(gpg_path, "w") as gpg_f: gpg_f.write(pubkey) gpg_f.flush() @@ -1474,11 +1474,11 @@ class Server(ServerNoticeBoardMixin): found_file_list.append(gpg_path) else: gpg_path = \ - self.Entropy._get_local_database_gpg_signature_file(repo) + self._entropy._get_local_database_gpg_signature_file(repo) not_found_file_list.append(gpg_path) # not found metafile_not_found_file = \ - self.Entropy._get_local_database_metafiles_not_found_file(repo) + self._entropy._get_local_database_metafiles_not_found_file(repo) f_meta = open(metafile_not_found_file, "w") f_meta.writelines(not_found_file_list) f_meta.flush() @@ -1517,25 +1517,25 @@ class Server(ServerNoticeBoardMixin): """ if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository gave_up = False - lock_file = self.Entropy._get_database_lockfile(repo) + lock_file = self._entropy._get_database_lockfile(repo) lock_filename = os.path.basename(lock_file) remote_dir = os.path.join( - self.Entropy._get_remote_database_relative_path(repo), + self._entropy._get_remote_database_relative_path(repo), self.SystemSettings['repositories']['branch']) remote_lock_file = os.path.join(remote_dir, lock_filename) - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) with txc as handler: if not os.path.isfile(lock_file) and \ handler.is_file(remote_lock_file): crippled_uri = EntropyTransceiver.get_uri_name(uri) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s, %s" % ( brown(str(repo)), darkgreen(crippled_uri), @@ -1555,7 +1555,7 @@ class Server(ServerNoticeBoardMixin): count += 1 time.sleep(1) if not handler.is_file(remote_lock_file): - self.Entropy.output( + self._entropy.output( red("[repo:%s|%s|%s] %s !" % ( repo, crippled_uri, @@ -1576,7 +1576,7 @@ class Server(ServerNoticeBoardMixin): return gave_up def _shrink_database_and_close(self, repo = None): - dbconn = self.Entropy.open_server_repository(read_only = False, + dbconn = self._entropy.open_server_repository(read_only = False, no_upload = True, repo = repo, indexing = False, do_treeupdates = False) dbconn.doCleanups() @@ -1584,7 +1584,7 @@ class Server(ServerNoticeBoardMixin): dbconn.vacuum() dbconn.vacuum() dbconn.commitChanges() - self.Entropy.close_repository(dbconn) + self._entropy.close_repository(dbconn) def _get_current_timestamp(self): from datetime import datetime @@ -1592,8 +1592,8 @@ class Server(ServerNoticeBoardMixin): def _update_repository_timestamp(self, repo = None): if repo is None: - repo = self.Entropy.default_repository - ts_file = self.Entropy._get_local_database_timestamp_file(repo) + repo = self._entropy.default_repository + ts_file = self._entropy._get_local_database_timestamp_file(repo) current_ts = self._get_current_timestamp() ts_f = open(ts_file, "w") ts_f.write(current_ts) @@ -1603,8 +1603,8 @@ class Server(ServerNoticeBoardMixin): def _sync_database_treeupdates(self, repo = None): if repo is None: - repo = self.Entropy.default_repository - dbconn = self.Entropy.open_server_repository(read_only = False, + repo = self._entropy.default_repository + dbconn = self._entropy.open_server_repository(read_only = False, no_upload = True, repo = repo, do_treeupdates = False) # grab treeupdates from other databases and inject srv_set = self.SystemSettings[self.sys_settings_plugin_id]['server'] @@ -1616,7 +1616,7 @@ class Server(ServerNoticeBoardMixin): if myrepo == etpConst['clientserverrepoid']: continue - mydbc = self.Entropy.open_server_repository(just_reading = True, + mydbc = self._entropy.open_server_repository(just_reading = True, repo = myrepo) actions = mydbc.listAllTreeUpdatesActions(no_ids_repos = True) for data in actions: @@ -1636,7 +1636,7 @@ class Server(ServerNoticeBoardMixin): err, _("Bumping old data back"), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "warning" @@ -1647,11 +1647,11 @@ class Server(ServerNoticeBoardMixin): dbconn.commitChanges() def _create_repository_pkglist(self, repo = None, branch = None): - pkglist_file = self.Entropy._get_local_pkglist_file(repo = repo, + pkglist_file = self._entropy._get_local_pkglist_file(repo = repo, branch = branch) tmp_pkglist_file = pkglist_file + ".tmp" - dbconn = self.Entropy.open_server_repository(repo = repo, + dbconn = self._entropy.open_server_repository(repo = repo, just_reading = True, do_treeupdates = False) pkglist = dbconn.listAllDownloads(do_sort = True, full_path = True) @@ -1666,7 +1666,7 @@ class Server(ServerNoticeBoardMixin): repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository srv_set = self.SystemSettings[self.sys_settings_plugin_id]['server'] if srv_set['rss']['enabled']: @@ -1686,10 +1686,10 @@ class Server(ServerNoticeBoardMixin): raise AttributeError("wrong database compression method passed") crippled_uri = EntropyTransceiver.get_uri_name(uri) - database_path = self.Entropy._get_local_database_file(repo) + database_path = self._entropy._get_local_database_file(repo) if disabled_eapis: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s: %s" % ( blue(repo), red(crippled_uri), @@ -1720,7 +1720,7 @@ class Server(ServerNoticeBoardMixin): self.lock_mirrors_for_download(True, [uri], repo = repo) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s" % ( blue(repo), red(crippled_uri), @@ -1736,15 +1736,15 @@ class Server(ServerNoticeBoardMixin): self._show_package_sets_messages(repo) self._sync_database_treeupdates(repo) - self.Entropy._update_database_package_sets(repo) - dbconn = self.Entropy.open_server_repository( + self._entropy._update_database_package_sets(repo) + dbconn = self._entropy.open_server_repository( read_only = False, no_upload = True, repo = repo, do_treeupdates = False) dbconn.commitChanges() # now we can safely copy it # backup current database to avoid re-indexing - old_dbpath = self.Entropy._get_local_database_file(repo) + old_dbpath = self._entropy._get_local_database_file(repo) backup_dbpath = old_dbpath + ".up_backup" copy_back = False if not pretend: @@ -1797,12 +1797,12 @@ class Server(ServerNoticeBoardMixin): upload_data['compressed_database_path_digest']) # create light version of the compressed db - eapi1_dbfile = self.Entropy._get_local_database_file(repo) + eapi1_dbfile = self._entropy._get_local_database_file(repo) temp_eapi1_dbfile = eapi1_dbfile+".light" shutil.copy2(eapi1_dbfile, temp_eapi1_dbfile) # open and remove content table eapi1_tmp_dbconn = \ - self.Entropy.open_generic_database( + self._entropy.open_generic_repository( temp_eapi1_dbfile, indexing_override = False, xcache = False) eapi1_tmp_dbconn.dropContent() @@ -1831,7 +1831,7 @@ class Server(ServerNoticeBoardMixin): if not pretend: # upload uploader = self.TransceiverServerHandler( - self.Entropy, + self._entropy, [uri], [upload_data[x] for x in sorted(upload_data)], critical_files = critical, @@ -1842,7 +1842,7 @@ class Server(ServerNoticeBoardMixin): my_broken_uris = sorted([ (EntropyTransceiver.get_uri_name(x[0]), x[1]) for x in m_broken_uris]) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s" % ( repo, crippled_uri, @@ -1855,7 +1855,7 @@ class Server(ServerNoticeBoardMixin): ) # get reason reason = my_broken_uris[0][1] - self.Entropy.output( + self._entropy.output( blue("%s: %s" % (_("reason"), reason,)), importance = 0, type = "error", @@ -1867,7 +1867,7 @@ class Server(ServerNoticeBoardMixin): # copy db back if copy_back and os.path.isfile(backup_dbpath): - self.Entropy.close_repositories() + self._entropy.close_repositories() further_backup_dbpath = old_dbpath+".security_backup" if os.path.isfile(further_backup_dbpath): os.remove(further_backup_dbpath) @@ -1887,7 +1887,7 @@ class Server(ServerNoticeBoardMixin): repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository download_errors = False broken_uris = set() @@ -1903,15 +1903,15 @@ class Server(ServerNoticeBoardMixin): raise AttributeError("wrong database compression method passed") crippled_uri = EntropyTransceiver.get_uri_name(uri) - database_path = self.Entropy._get_local_database_file(repo) + database_path = self._entropy._get_local_database_file(repo) database_dir_path = os.path.dirname( - self.Entropy._get_local_database_file(repo)) + self._entropy._get_local_database_file(repo)) download_data, critical, text_files, gpg_to_verify_files = \ self._get_files_to_sync(cmethod, download = True, repo = repo, disabled_eapis = disabled_eapis) mytmpdir = tempfile.mkdtemp() - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -1924,7 +1924,7 @@ class Server(ServerNoticeBoardMixin): ) files_to_sync = sorted(download_data.keys()) for myfile in files_to_sync: - self.Entropy.output( + self._entropy.output( "%s: %s" % ( blue(_("download path")), brown(download_data[myfile]), @@ -1947,7 +1947,7 @@ class Server(ServerNoticeBoardMixin): if not pretend: # download downloader = self.TransceiverServerHandler( - self.Entropy, [uri], + self._entropy, [uri], [download_data[x] for x in download_data], download = True, local_basedir = mytmpdir, critical_files = critical, repo = repo @@ -1957,7 +1957,7 @@ class Server(ServerNoticeBoardMixin): my_broken_uris = sorted([ (EntropyTransceiver.get_uri_name(x[0]), x[1]) for x in m_broken_uris]) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s" % ( brown(repo), darkgreen(crippled_uri), @@ -1970,7 +1970,7 @@ class Server(ServerNoticeBoardMixin): ) # get reason reason = my_broken_uris[0][1] - self.Entropy.output( + self._entropy.output( blue("%s: %s" % (_("reason"), reason,)), importance = 0, type = "error", @@ -2001,7 +2001,7 @@ class Server(ServerNoticeBoardMixin): fromfile = os.path.join(mytmpdir, myfile) tofile = os.path.join(database_dir_path, myfile) shutil.move(fromfile, tofile) - self.Entropy.setup_default_file_perms(tofile) + self._entropy.setup_default_file_perms(tofile) if os.path.isdir(mytmpdir): shutil.rmtree(mytmpdir) @@ -2017,10 +2017,10 @@ class Server(ServerNoticeBoardMixin): def _calculate_database_sync_queues(self, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository remote_status = self.get_remote_repositories_status(repo) - local_revision = self.Entropy.get_local_repository_revision(repo) + local_revision = self._entropy.get_local_repository_revision(repo) upload_queue = [] download_latest = () @@ -2049,7 +2049,7 @@ class Server(ServerNoticeBoardMixin): repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository while True: @@ -2062,7 +2062,7 @@ class Server(ServerNoticeBoardMixin): if not mirrors_locked and db_locked: # mirrors not locked remotely but only locally - mylock_file = self.Entropy._get_database_lockfile(repo) + mylock_file = self._entropy._get_database_lockfile(repo) if os.access(mylock_file, os.W_OK) and \ os.path.isfile(mylock_file): @@ -2083,7 +2083,7 @@ class Server(ServerNoticeBoardMixin): repo) if not download_latest and not upload_queue: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( brown(repo), red(_("sync")), # something short please @@ -2097,12 +2097,12 @@ class Server(ServerNoticeBoardMixin): if download_latest: # close all the currently open repos - self.Entropy.close_repositories() + self._entropy.close_repositories() download_uri = download_latest[0] download_errors, fine_uris, broken_uris = self._download_database( [download_uri], repo = repo) if download_errors: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), red(_("sync")), @@ -2127,14 +2127,14 @@ class Server(ServerNoticeBoardMixin): base_deps_not_found = set() if base_repo != repo: - base_deps_not_found = self.Entropy.dependencies_test( + base_deps_not_found = self._entropy.dependencies_test( repo = base_repo) - deps_not_found = self.Entropy.dependencies_test(repo = repo) + deps_not_found = self._entropy.dependencies_test(repo = repo) if (deps_not_found or base_deps_not_found) \ - and not self.Entropy.community_repo: + and not self._entropy.community_repo: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), red(_("sync")), @@ -2147,11 +2147,11 @@ class Server(ServerNoticeBoardMixin): ) return 3, set(), set() - problems = self.Entropy._check_config_file_updates() + problems = self._entropy._check_config_file_updates() if problems: return 4, set(), set() - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( brown(repo), red(_("config files")), # something short please @@ -2167,7 +2167,7 @@ class Server(ServerNoticeBoardMixin): errors, fine_uris, broken_uris = self._upload_database(uris, repo = repo) if errors: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s: %s" % ( brown(repo), red(_("sync")), @@ -2181,7 +2181,7 @@ class Server(ServerNoticeBoardMixin): return 2, fine_uris, broken_uris - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( brown(repo), red(_("sync")), @@ -2199,14 +2199,14 @@ class Server(ServerNoticeBoardMixin): def _calculate_local_upload_files(self, repo = None): upload_files = 0 upload_packages = set() - upload_dir = self.Entropy._get_local_upload_directory(repo = repo) + upload_dir = self._entropy._get_local_upload_directory(repo = repo) # check if it exists if not os.path.isdir(upload_dir): return upload_files, upload_packages branch = self.SystemSettings['repositories']['branch'] - upload_pkgs = self.Entropy._get_basedir_pkg_listing(upload_dir, + upload_pkgs = self._entropy._get_basedir_pkg_listing(upload_dir, repo = repo, branch = branch) pkg_ext = etpConst['packagesext'] @@ -2222,7 +2222,7 @@ class Server(ServerNoticeBoardMixin): def _calculate_local_package_files(self, repo = None): local_files = 0 local_packages = set() - base_dir = self.Entropy._get_local_repository_base_directory( + base_dir = self._entropy._get_local_repository_base_directory( repo = repo) # check if it exists @@ -2230,7 +2230,7 @@ class Server(ServerNoticeBoardMixin): return local_files, local_packages branch = self.SystemSettings['repositories']['branch'] - pkg_files = self.Entropy._get_basedir_pkg_listing(base_dir, + pkg_files = self._entropy._get_basedir_pkg_listing(base_dir, repo = repo, branch = branch) pkg_ext = etpConst['packagesext'] @@ -2245,7 +2245,7 @@ class Server(ServerNoticeBoardMixin): def _show_local_sync_stats(self, upload_files, local_files): - self.Entropy.output( + self._entropy.output( "%s:" % ( blue(_("Local statistics")), ), @@ -2253,7 +2253,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = red(" @@ ") ) - self.Entropy.output( + self._entropy.output( red("%s:\t\t%s %s" % ( blue(_("upload directory")), bold(str(upload_files)), @@ -2264,7 +2264,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = red(" @@ ") ) - self.Entropy.output( + self._entropy.output( red("%s:\t\t%s %s" % ( blue(_("packages directory")), bold(str(local_files)), @@ -2284,7 +2284,7 @@ class Server(ServerNoticeBoardMixin): for package, rel_pkg, size in upload: package = darkgreen(rel_pkg) size = blue(entropy.tools.bytes_into_human(size)) - self.Entropy.output( + self._entropy.output( "[branch:%s|%s] %s [%s]" % ( brown(branch), blue(_("upload")), @@ -2298,7 +2298,7 @@ class Server(ServerNoticeBoardMixin): for package, rel_pkg, size in download: package = darkred(rel_pkg) size = blue(entropy.tools.bytes_into_human(size)) - self.Entropy.output( + self._entropy.output( "[branch:%s|%s] %s [%s]" % ( brown(branch), darkred(_("download")), @@ -2312,7 +2312,7 @@ class Server(ServerNoticeBoardMixin): for package, rel_pkg, size in copy: package = darkblue(rel_pkg) size = blue(entropy.tools.bytes_into_human(size)) - self.Entropy.output( + self._entropy.output( "[branch:%s|%s] %s [%s]" % ( brown(branch), darkgreen(_("copy")), @@ -2326,7 +2326,7 @@ class Server(ServerNoticeBoardMixin): for package, rel_pkg, size in removal: package = brown(rel_pkg) size = blue(entropy.tools.bytes_into_human(size)) - self.Entropy.output( + self._entropy.output( "[branch:%s|%s] %s [%s]" % ( brown(branch), red(_("remove")), @@ -2338,7 +2338,7 @@ class Server(ServerNoticeBoardMixin): header = red(" # ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s" % ( blue(_("Packages to be removed")), darkred(str(len(removal))), @@ -2347,7 +2347,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = blue(" @@ ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t%s" % ( darkgreen(_("Packages to be moved locally")), darkgreen(str(len(copy))), @@ -2356,7 +2356,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = blue(" @@ ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s" % ( bold(_("Packages to be uploaded")), bold(str(len(upload))), @@ -2366,7 +2366,7 @@ class Server(ServerNoticeBoardMixin): header = blue(" @@ ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s" % ( darkred(_("Total removal size")), darkred( @@ -2378,7 +2378,7 @@ class Server(ServerNoticeBoardMixin): header = blue(" @@ ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s" % ( blue(_("Total upload size")), blue(entropy.tools.bytes_into_human(metainfo['upload'])), @@ -2387,7 +2387,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = blue(" @@ ") ) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s" % ( brown(_("Total download size")), brown(entropy.tools.bytes_into_human(metainfo['download'])), @@ -2404,14 +2404,14 @@ class Server(ServerNoticeBoardMixin): remote_packages = [] branch = self.SystemSettings['repositories']['branch'] - pkgs_dir_types = self.Entropy._get_pkg_dir_names() + pkgs_dir_types = self._entropy._get_pkg_dir_names() for pkg_dir_type in pkgs_dir_types: - remote_dir = self.Entropy.complete_remote_package_relative_path( + remote_dir = self._entropy.complete_remote_package_relative_path( pkg_dir_type, repo = repo) remote_dir = os.path.join(remote_dir, etpConst['currentarch'], branch) - only_dir = self.Entropy.complete_remote_package_relative_path("", + only_dir = self._entropy.complete_remote_package_relative_path("", repo = repo) db_url_dir = remote_dir[len(only_dir):] @@ -2436,26 +2436,26 @@ class Server(ServerNoticeBoardMixin): def calculate_packages_to_sync(self, uri, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository crippled_uri = EntropyTransceiver.get_uri_name(uri) upload_files, upload_packages = self._calculate_local_upload_files(repo) local_files, local_packages = self._calculate_local_package_files(repo) self._show_local_sync_stats(upload_files, local_files) - self.Entropy.output( + self._entropy.output( "%s: %s" % (blue(_("Remote statistics for")), red(crippled_uri),), importance = 1, type = "info", header = red(" @@ ") ) - txc = self.Entropy.Transceiver(uri) + txc = self._entropy.Transceiver(uri) with txc as handler: remote_files, remote_packages, remote_packages_data = \ self._calculate_remote_package_files(uri, handler, repo = repo) - self.Entropy.output( + self._entropy.output( "%s:\t\t\t%s %s" % ( blue(_("remote packages")), bold(str(remote_files)), @@ -2469,7 +2469,7 @@ class Server(ServerNoticeBoardMixin): mytxt = blue("%s ...") % ( _("Calculating queues"), ) - self.Entropy.output( + self._entropy.output( mytxt, importance = 1, type = "info", @@ -2499,7 +2499,7 @@ class Server(ServerNoticeBoardMixin): if local_package in remote_packages: local_filepath = \ - self.Entropy.complete_local_upload_package_path( + self._entropy.complete_local_upload_package_path( local_package, repo = repo) local_size = entropy.tools.get_file_size(local_filepath) @@ -2525,7 +2525,7 @@ class Server(ServerNoticeBoardMixin): continue if local_package in remote_packages: - local_filepath = self.Entropy.complete_local_package_path( + local_filepath = self._entropy.complete_local_package_path( local_package, repo = repo) local_size = entropy.tools.get_file_size(local_filepath) remote_size = remote_packages_data.get(local_package) @@ -2547,7 +2547,7 @@ class Server(ServerNoticeBoardMixin): continue if remote_package in local_packages: - local_filepath = self.Entropy.complete_local_package_path( + local_filepath = self._entropy.complete_local_package_path( remote_package, repo = repo) local_size = entropy.tools.get_file_size(local_filepath) remote_size = remote_packages_data.get(remote_package) @@ -2574,12 +2574,12 @@ class Server(ServerNoticeBoardMixin): # Collect packages that don't exist anymore in the database # so we can filter them out from the download queue - dbconn = self.Entropy.open_server_repository(just_reading = True, + dbconn = self._entropy.open_server_repository(just_reading = True, repo = repo) db_files = dbconn.listAllDownloads(do_sort = False, full_path = True) db_files = set([x for x in db_files if \ - (self.Entropy._get_branch_from_download_relative_uri(x) == branch)]) + (self._entropy._get_branch_from_download_relative_uri(x) == branch)]) """ ### actually do not exclude files not available locally. This makes @@ -2616,7 +2616,7 @@ class Server(ServerNoticeBoardMixin): upload = [] for item in removal_queue: - local_filepath = self.Entropy.complete_local_package_path( + local_filepath = self._entropy.complete_local_package_path( item, repo = repo) size = entropy.tools.get_file_size(local_filepath) metainfo['removal'] += size @@ -2624,7 +2624,7 @@ class Server(ServerNoticeBoardMixin): for item in download_queue: - local_filepath = self.Entropy.complete_local_upload_package_path( + local_filepath = self._entropy.complete_local_upload_package_path( item, repo = repo) if not os.path.isfile(local_filepath): size = remote_packages_data.get(item) @@ -2639,10 +2639,10 @@ class Server(ServerNoticeBoardMixin): for item in upload_queue: - local_filepath = self.Entropy.complete_local_upload_package_path( + local_filepath = self._entropy.complete_local_upload_package_path( item, repo = repo) - local_filepath_pkgs = self.Entropy.complete_local_package_path( + local_filepath_pkgs = self._entropy.complete_local_package_path( item, repo = repo) if os.path.isfile(local_filepath): size = entropy.tools.get_file_size(local_filepath) @@ -2657,7 +2657,7 @@ class Server(ServerNoticeBoardMixin): def _sync_run_removal_queue(self, removal_queue, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository branch = self.SystemSettings['repositories']['branch'] for remove_filepath, rel_path, size in removal_queue: @@ -2668,7 +2668,7 @@ class Server(ServerNoticeBoardMixin): remove_filepath_exp = remove_filepath + \ etpConst['packagesexpirationfileext'] - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s: %s [%s]" % ( brown(repo), red("sync"), @@ -2689,7 +2689,7 @@ class Server(ServerNoticeBoardMixin): if os.path.isfile(remove_filepath_exp): os.remove(remove_filepath_exp) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s" % ( brown(repo), red(_("sync")), @@ -2705,17 +2705,17 @@ class Server(ServerNoticeBoardMixin): def _sync_run_copy_queue(self, copy_queue, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository branch = self.SystemSettings['repositories']['branch'] for from_file, rel_file, size in copy_queue: from_file_hash = from_file + etpConst['packagesmd5fileext'] - to_file = self.Entropy.complete_local_package_path(rel_file) + to_file = self._entropy.complete_local_package_path(rel_file) to_file_hash = to_file+etpConst['packagesmd5fileext'] expiration_file = to_file+etpConst['packagesexpirationfileext'] - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s: %s" % ( brown(repo), red("sync"), @@ -2727,7 +2727,7 @@ class Server(ServerNoticeBoardMixin): type = "info", header = darkred(" * ") ) - self.Entropy._ensure_dir_path(os.path.dirname(to_file)) + self._entropy._ensure_dir_path(os.path.dirname(to_file)) shutil.copy2(from_file, to_file) self._create_file_checksum(from_file, from_file_hash) @@ -2741,7 +2741,7 @@ class Server(ServerNoticeBoardMixin): def _sync_run_upload_queue(self, uri, upload_queue, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository branch = self.SystemSettings['repositories']['branch'] crippled_uri = EntropyTransceiver.get_uri_name(uri) @@ -2763,10 +2763,10 @@ class Server(ServerNoticeBoardMixin): m_broken_uris = set() for rel_path, myqueue in queue_map.items(): - remote_dir = self.Entropy.complete_remote_package_relative_path( + remote_dir = self._entropy.complete_remote_package_relative_path( rel_path, repo = repo) - uploader = self.TransceiverServerHandler(self.Entropy, [uri], + uploader = self.TransceiverServerHandler(self._entropy, [uri], myqueue, critical_files = myqueue, txc_basedir = remote_dir, handlers_data = {'branch': branch }, repo = repo) @@ -2782,7 +2782,7 @@ class Server(ServerNoticeBoardMixin): (EntropyTransceiver.get_uri_name(x[0]), x[1]) for \ x in m_broken_uris] reason = my_broken_uris[0][1] - self.Entropy.output( + self._entropy.output( "[branch:%s] %s: %s, %s: %s" % ( brown(branch), blue(_("upload errors")), @@ -2796,7 +2796,7 @@ class Server(ServerNoticeBoardMixin): ) return errors, m_fine_uris, m_broken_uris - self.Entropy.output( + self._entropy.output( "[branch:%s] %s: %s" % ( brown(branch), blue(_("upload completed successfully")), @@ -2812,7 +2812,7 @@ class Server(ServerNoticeBoardMixin): def _sync_run_download_queue(self, uri, download_queue, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository branch = self.SystemSettings['repositories']['branch'] crippled_uri = EntropyTransceiver.get_uri_name(uri) @@ -2832,16 +2832,16 @@ class Server(ServerNoticeBoardMixin): m_broken_uris = set() for rel_path, myqueue in queue_map.items(): - remote_dir = self.Entropy.complete_remote_package_relative_path( + remote_dir = self._entropy.complete_remote_package_relative_path( rel_path, repo = repo) - local_basedir = self.Entropy.complete_local_package_path(rel_path, + local_basedir = self._entropy.complete_local_package_path(rel_path, repo = repo) if not os.path.isdir(local_basedir): - self.Entropy._ensure_dir_path(local_basedir) + self._entropy._ensure_dir_path(local_basedir) downloader = self.TransceiverServerHandler( - self.Entropy, [uri], myqueue, + self._entropy, [uri], myqueue, critical_files = myqueue, txc_basedir = remote_dir, local_basedir = local_basedir, handlers_data = {'branch': branch }, download = True, @@ -2858,7 +2858,7 @@ class Server(ServerNoticeBoardMixin): (EntropyTransceiver.get_uri_name(x), y,) \ for x, y in m_broken_uris] reason = my_broken_uris[0][1] - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s: %s, %s: %s" % ( brown(repo), red(_("sync")), @@ -2874,7 +2874,7 @@ class Server(ServerNoticeBoardMixin): ) return errors, m_fine_uris, m_broken_uris - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|%s] %s: %s" % ( brown(repo), red(_("sync")), @@ -2891,9 +2891,9 @@ class Server(ServerNoticeBoardMixin): def _run_package_files_qa_checks(self, packages_list, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository - my_qa = self.Entropy.QA() + my_qa = self._entropy.QA() qa_total = len(packages_list) qa_count = 0 @@ -2902,7 +2902,7 @@ class Server(ServerNoticeBoardMixin): for upload_package in packages_list: qa_count += 1 - self.Entropy.output( + self._entropy.output( "%s: %s" % ( purple(_("QA checking package file")), darkgreen(os.path.basename(upload_package)), @@ -2922,7 +2922,7 @@ class Server(ServerNoticeBoardMixin): if qa_some_faulty: for qa_faulty_pkg in qa_some_faulty: - self.Entropy.output( + self._entropy.output( "[repo:%s|branch:%s] %s: %s" % ( brown(repo), self.SystemSettings['repositories']['branch'], @@ -2941,9 +2941,9 @@ class Server(ServerNoticeBoardMixin): repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository - self.Entropy.output( + self._entropy.output( "[repo:%s|%s] %s" % ( repo, red(_("sync")), @@ -2964,12 +2964,12 @@ class Server(ServerNoticeBoardMixin): mirror_errors = False mirrors_errors = False - for uri in self.Entropy.get_remote_mirrors(repo): + for uri in self._entropy.get_remote_mirrors(repo): crippled_uri = EntropyTransceiver.get_uri_name(uri) mirror_errors = False - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s: %s" % ( repo, red(_("sync")), @@ -2987,7 +2987,7 @@ class Server(ServerNoticeBoardMixin): remote_packages_data = self.calculate_packages_to_sync(uri, repo) except self.socket.error as err: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s: %s, %s %s" % ( repo, red(_("sync")), @@ -3005,7 +3005,7 @@ class Server(ServerNoticeBoardMixin): if (not upload_queue) and (not download_queue) and \ (not removal_queue): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s: %s" % ( repo, red(_("sync")), @@ -3020,7 +3020,7 @@ class Server(ServerNoticeBoardMixin): successfull_mirrors.add(uri) continue - self.Entropy.output( + self._entropy.output( "%s:" % (blue(_("Expanding queues")),), importance = 1, type = "info", @@ -3036,9 +3036,9 @@ class Server(ServerNoticeBoardMixin): if not len(upload)+len(download)+len(removal)+len(copy_q): - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s %s" % ( - self.Entropy.default_repository, + self._entropy.default_repository, red(_("sync")), self.SystemSettings['repositories']['branch'], blue(_("nothing to sync for")), @@ -3057,7 +3057,7 @@ class Server(ServerNoticeBoardMixin): continue if ask: - rc_sync = self.Entropy.ask_question( + rc_sync = self._entropy.ask_question( _("Would you like to run the steps above ?")) if rc_sync == _("No"): continue @@ -3102,7 +3102,7 @@ class Server(ServerNoticeBoardMixin): mirrors_errors = True except KeyboardInterrupt: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s" % ( repo, red(_("sync")), @@ -3121,7 +3121,7 @@ class Server(ServerNoticeBoardMixin): broken_mirrors.add(uri) successfull_mirrors.clear() # so that people will realize this is a very bad thing - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s: %s, %s: %s" % ( repo, red(_("sync")), @@ -3143,7 +3143,7 @@ class Server(ServerNoticeBoardMixin): entropy.tools.print_traceback() mirrors_errors = True broken_mirrors.add(uri) - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s: %s, %s: %s" % ( repo, red(_("sync")), @@ -3161,7 +3161,7 @@ class Server(ServerNoticeBoardMixin): exc_txt = entropy.tools.print_exception( returndata = True) for line in exc_txt: - self.Entropy.output( + self._entropy.output( repr(line), importance = 1, type = "error", @@ -3169,7 +3169,7 @@ class Server(ServerNoticeBoardMixin): ) if len(successfull_mirrors) > 0: - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s" % ( repo, red(_("sync")), @@ -3188,7 +3188,7 @@ class Server(ServerNoticeBoardMixin): self._move_files_over_from_upload(repo) if packages_check: - check_data = self.Entropy.verify_local_packages([], ask = ask, + check_data = self._entropy.verify_local_packages([], ask = ask, repo = repo) return mirrors_tainted, mirrors_errors, successfull_mirrors, \ @@ -3197,20 +3197,20 @@ class Server(ServerNoticeBoardMixin): def _move_files_over_from_upload(self, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository - upload_dir = self.Entropy._get_local_upload_directory(repo = repo) - basedir_list = self.Entropy._get_basedir_pkg_listing(upload_dir, + upload_dir = self._entropy._get_local_upload_directory(repo = repo) + basedir_list = self._entropy._get_basedir_pkg_listing(upload_dir, repo = repo) for pkg_rel in basedir_list: - source_pkg = self.Entropy.complete_local_upload_package_path( + source_pkg = self._entropy.complete_local_upload_package_path( pkg_rel, repo = repo) - dest_pkg = self.Entropy.complete_local_package_path(pkg_rel, + dest_pkg = self._entropy.complete_local_package_path(pkg_rel, repo = repo) dest_pkg_dir = os.path.dirname(dest_pkg) - self.Entropy._ensure_dir_path(dest_pkg_dir) + self._entropy._ensure_dir_path(dest_pkg_dir) try: os.rename(source_pkg, dest_pkg) @@ -3224,7 +3224,7 @@ class Server(ServerNoticeBoardMixin): def _is_package_expired(self, package_rel, repo = None): - pkg_path = self.Entropy.complete_local_package_path(package_rel, + pkg_path = self._entropy.complete_local_package_path(package_rel, repo = repo) pkg_path += etpConst['packagesexpirationfileext'] if not os.path.isfile(pkg_path): @@ -3243,7 +3243,7 @@ class Server(ServerNoticeBoardMixin): def _create_expiration_file(self, package_rel, repo = None, gentle = False): - pkg_path = self.Entropy.complete_local_package_path(package_rel, + pkg_path = self._entropy.complete_local_package_path(package_rel, repo = repo) pkg_path += etpConst['packagesexpirationfileext'] if gentle and os.path.isfile(pkg_path): @@ -3254,16 +3254,16 @@ class Server(ServerNoticeBoardMixin): def _collect_expiring_packages(self, branch, repo = None): - dbconn = self.Entropy.open_server_repository(just_reading = True, + dbconn = self._entropy.open_server_repository(just_reading = True, repo = repo) database_bins = set(dbconn.listAllDownloads(do_sort = False, full_path = True)) - repo_basedir = self.Entropy._get_local_repository_base_directory( + repo_basedir = self._entropy._get_local_repository_base_directory( repo = repo) - repo_bins = self.Entropy._get_basedir_pkg_listing(repo_basedir, + repo_bins = self._entropy._get_basedir_pkg_listing(repo_basedir, repo = repo, branch = branch) # convert to set, so that we can do fast thingszzsd @@ -3275,9 +3275,9 @@ class Server(ServerNoticeBoardMixin): def tidy_mirrors(self, ask = True, pretend = False, repo = None): if repo is None: - repo = self.Entropy.default_repository + repo = self._entropy.default_repository - self.Entropy.output( + self._entropy.output( "[repo:%s|%s|branch:%s] %s" % ( brown(repo), red(_("tidy")), @@ -3294,7 +3294,7 @@ class Server(ServerNoticeBoardMixin): branch_data['errors'] = False branch = self.SystemSettings['repositories']['branch'] - self.Entropy.output( + self._entropy.output( "[branch:%s] %s" % ( brown(branch), blue(_("collecting expired packages in the selected branches")), @@ -3336,7 +3336,7 @@ class Server(ServerNoticeBoardMixin): branch_data['removal'] = removal[:] if not removal: - self.Entropy.output( + self._entropy.output( "[branch:%s] %s" % ( brown(branch), blue(_("nothing to remove on this branch")), @@ -3347,7 +3347,7 @@ class Server(ServerNoticeBoardMixin): ) return errors, branch_data else: - self.Entropy.output( + self._entropy.output( "[branch:%s] %s:" % ( brown(branch), blue(_("these are the expired packages")), @@ -3357,7 +3357,7 @@ class Server(ServerNoticeBoardMixin): header = blue(" @@ ") ) for package in removal: - self.Entropy.output( + self._entropy.output( "[branch:%s] %s: %s" % ( brown(branch), blue(_("remove")), @@ -3372,7 +3372,7 @@ class Server(ServerNoticeBoardMixin): return errors, branch_data if ask: - rc_question = self.Entropy.ask_question( + rc_question = self._entropy.ask_question( _("Would you like to continue ?")) if rc_question == _("No"): return errors, branch_data @@ -3380,7 +3380,7 @@ class Server(ServerNoticeBoardMixin): # split queue by remote directories to work on removal_map = {} for package_rel in removal: - rel_path = self.Entropy.complete_remote_package_relative_path( + rel_path = self._entropy.complete_remote_package_relative_path( package_rel, repo = repo) rel_dir = os.path.dirname(rel_path) obj = removal_map.setdefault(rel_dir, []) @@ -3388,7 +3388,7 @@ class Server(ServerNoticeBoardMixin): obj.append(base_pkg) obj.append(base_pkg+etpConst['packagesmd5fileext']) - for uri in self.Entropy.get_remote_mirrors(repo): + for uri in self._entropy.get_remote_mirrors(repo): ## # remove remotely @@ -3399,7 +3399,7 @@ class Server(ServerNoticeBoardMixin): m_broken_uris = set() for remote_dir, myqueue in removal_map.items(): - self.Entropy.output( + self._entropy.output( "[branch:%s] %s..." % ( brown(branch), blue(_("removing packages remotely")), @@ -3410,7 +3410,7 @@ class Server(ServerNoticeBoardMixin): ) destroyer = self.TransceiverServerHandler( - self.Entropy, + self._entropy, [uri], myqueue, critical_files = [], @@ -3431,7 +3431,7 @@ class Server(ServerNoticeBoardMixin): reason = my_broken_uris[0][1] crippled_uri = EntropyTransceiver.get_uri_name(uri) - self.Entropy.output( + self._entropy.output( "[branch:%s] %s: %s, %s: %s" % ( brown(branch), blue(_("remove errors")), @@ -3446,7 +3446,7 @@ class Server(ServerNoticeBoardMixin): branch_data['errors'] = True errors = True - self.Entropy.output( + self._entropy.output( "[branch:%s] %s..." % ( brown(branch), blue(_("removing packages locally")), @@ -3463,7 +3463,7 @@ class Server(ServerNoticeBoardMixin): branch_data['removed'] = set() for package_rel in removal: - package_path = self.Entropy.complete_local_package_path( + package_path = self._entropy.complete_local_package_path( package_rel, repo = repo) package_path_hash = package_path + \ @@ -3475,7 +3475,7 @@ class Server(ServerNoticeBoardMixin): package_path_expired) for myfile in my_rm_list: if os.path.isfile(myfile): - self.Entropy.output( + self._entropy.output( "[branch:%s] %s: %s" % ( brown(branch), blue(_("removing")), diff --git a/libraries/entropy/services/repository/interfaces.py b/libraries/entropy/services/repository/interfaces.py index 44cc57773..36d4758d1 100644 --- a/libraries/entropy/services/repository/interfaces.py +++ b/libraries/entropy/services/repository/interfaces.py @@ -263,7 +263,7 @@ class Server(SocketHost): cached = self.syscache['db'].get(dbpath) if cached != None: return cached - dbc = self.Entropy.open_generic_database( + dbc = self.Entropy.open_generic_repository( dbpath, xcache = False, readOnly = True, diff --git a/libraries/tests/client.py b/libraries/tests/client.py index be14cb858..323ab9736 100644 --- a/libraries/tests/client.py +++ b/libraries/tests/client.py @@ -112,7 +112,7 @@ class EntropyRepositoryTest(unittest.TestCase): def test_package_repository(self): test_pkg = _misc.get_test_entropy_package() - rc, atoms_contained = self.Client.add_package_to_repos(test_pkg) + rc, atoms_contained = self.Client.add_package_to_repositories(test_pkg) self.assertEqual(0, rc) self.assertNotEqual([], atoms_contained) for idpackage, repoid in atoms_contained: @@ -147,7 +147,7 @@ class EntropyRepositoryTest(unittest.TestCase): etp_pkg = os.path.join(pkg_dir, os.listdir(pkg_dir)[0]) self.assert_(os.path.isfile(etp_pkg)) - status, matches = self.Client.add_package_to_repos(etp_pkg) + status, matches = self.Client.add_package_to_repositories(etp_pkg) self.assert_(status == 0) self.assert_(matches) for match in matches: diff --git a/libraries/tests/db.py b/libraries/tests/db.py index 4d6ec1921..4728a273b 100644 --- a/libraries/tests/db.py +++ b/libraries/tests/db.py @@ -411,7 +411,7 @@ class EntropyRepositoryTest(unittest.TestCase): fd, new_db_path = tempfile.mkstemp() os.close(fd) self.test_db.doDatabaseImport(buf_file, new_db_path) - new_db = self.Client.open_generic_database(new_db_path) + new_db = self.Client.open_generic_repository(new_db_path) new_db_data = new_db.getPackageData(idpackage) new_db.closeDB() etpUi['mute'] = False diff --git a/libraries/tests/tools.py b/libraries/tests/tools.py index bf42de64a..c04f4be1f 100644 --- a/libraries/tests/tools.py +++ b/libraries/tests/tools.py @@ -41,7 +41,7 @@ class ToolsTest(unittest.TestCase): for test_pkg in self.test_pkgs: et.dump_entropy_metadata(test_pkg, tmp_path) self.assertNotEqual(tmp_path, None) - dbconn = client.open_generic_database(tmp_path) + dbconn = client.open_generic_repository(tmp_path) dbconn.validateDatabase() dbconn.listAllIdpackages() dbconn.closeDB() diff --git a/server/server_reagent.py b/server/server_reagent.py index 8d4c53058..46923bc5d 100644 --- a/server/server_reagent.py +++ b/server/server_reagent.py @@ -520,7 +520,7 @@ def repositories(options): elif cmd == "backup": db_path = Entropy._get_local_database_file() - rc, err_msg = Entropy.backup_database(db_path, + rc, err_msg = Entropy.backup_repository(db_path, backup_dir = os.path.dirname(db_path)) if not rc: print_info(darkred(" ** ")+red("%s: %s" % (_("Error"), err_msg,) )) @@ -532,7 +532,7 @@ def repositories(options): db_file = Entropy._get_local_database_file() db_dir = os.path.dirname(db_file) - dblist = Entropy.list_backedup_client_databases( + dblist = Entropy.installed_repository_backups( client_dbdir = db_dir) if not dblist: print_info(brown(" @@ ")+blue("%s." % (_("No backed up databases found"),))) @@ -570,7 +570,7 @@ def repositories(options): continue break - status, err_msg = Entropy.restore_database(dbpath, db_file) + status, err_msg = Entropy.restore_repository(dbpath, db_file) if status: return 0 return 1 diff --git a/services/client-tracker-packages-miner b/services/client-tracker-packages-miner index 40aa83a20..68094ae6d 100644 --- a/services/client-tracker-packages-miner +++ b/services/client-tracker-packages-miner @@ -99,7 +99,7 @@ class Entropy(Client): url_fetcher = DaemonUrlFetcher, repo_validation = False) # validate currently available repos # manually, to not taint logs - self.validate_repositories(quiet = True) + self._validate_repositories(quiet = True) self.output( "Loading Entropy Client Tracker miner: logfile: %s" % ( DAEMON_LOGFILE,) diff --git a/services/client-updates-daemon b/services/client-updates-daemon index 63030ec52..cb13063c4 100644 --- a/services/client-updates-daemon +++ b/services/client-updates-daemon @@ -126,7 +126,7 @@ class Entropy(Client): url_fetcher = DaemonUrlFetcher, repo_validation = False) # validate currently available repos # manually, to not taint logs - self.validate_repositories(quiet = True) + self._validate_repositories(quiet = True) self.output( "Loading Entropy Updates daemon: check every %ss, logfile: %s" % ( CHECK_DELAY_SECS, DAEMON_LOGFILE,) diff --git a/sulfur/src/sulfur/__init__.py b/sulfur/src/sulfur/__init__.py index 1b30796a8..4452bf003 100644 --- a/sulfur/src/sulfur/__init__.py +++ b/sulfur/src/sulfur/__init__.py @@ -41,8 +41,8 @@ from entropy.i18n import _ from entropy.misc import ParallelTask from entropy.cache import EntropyCacher, MtimePingus from entropy.output import print_generic - from entropy.db.exceptions import ProgrammingError +from entropy.core.settings.base import SystemSettings # Sulfur Imports import gtk, gobject @@ -66,7 +66,8 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): def __init__(self): self.Equo = Equo() - self.Cacher = EntropyCacher() + self._cacher = EntropyCacher() + self._settings = SystemSettings() self.do_debug = False self._ugc_status = "--nougc" not in sys.argv @@ -349,7 +350,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): # configuration files update cache generation def file_updates_cache_gen(): self.Equo.FileUpdates.scan(quiet = True) - self.Cacher.sync() + self._cacher.sync() return False def file_updates_fill_view(): @@ -584,7 +585,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): first = False def warn_repositories(self): - all_repos = self.Equo.SystemSettings['repositories']['order'] + all_repos = self._settings['repositories']['order'] valid_repos = self.Equo.repositories() invalid_repos = [x for x in all_repos if x not in valid_repos] invalid_repos = [x for x in invalid_repos if \ @@ -832,7 +833,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): def do_ugc_sync(): self._ugc_update() - self.Cacher.sync() + self._cacher.sync() print_generic("UGC child process done") self._spawning_ugc = True @@ -857,7 +858,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): def fill_pref_db_backup_page(self): self.dbBackupStore.clear() - backed_up_dbs = self.Equo.list_backedup_client_databases() + backed_up_dbs = self.Equo.installed_repository_backups() for mypath in backed_up_dbs: mymtime = os.path.getmtime(mypath) mytime = entropy.tools.convert_unix_time_to_human_time(mymtime) @@ -1053,7 +1054,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): etpConst['entropyconf']: [ ( 'ftp-proxy', - self.Equo.SystemSettings['system']['proxy']['ftp'], + self._settings['system']['proxy']['ftp'], const_get_stringtype(), fill_setting, saveSetting, @@ -1062,7 +1063,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'http-proxy', - self.Equo.SystemSettings['system']['proxy']['http'], + self._settings['system']['proxy']['http'], const_get_stringtype(), fill_setting, saveSetting, @@ -1071,7 +1072,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'proxy-username', - self.Equo.SystemSettings['system']['proxy']['username'], + self._settings['system']['proxy']['username'], const_get_stringtype(), fill_setting, saveSetting, @@ -1080,7 +1081,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'proxy-password', - self.Equo.SystemSettings['system']['proxy']['password'], + self._settings['system']['proxy']['password'], const_get_stringtype(), fill_setting, saveSetting, @@ -1100,7 +1101,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): etpConst['clientconf']: [ ( 'collisionprotect', - self.Equo.SystemSettings[sys_settings_plg_id]['misc']['collisionprotect'], + self._settings[sys_settings_plg_id]['misc']['collisionprotect'], int, fill_setting, saveSetting, @@ -1109,7 +1110,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'configprotect', - self.Equo.SystemSettings[sys_settings_plg_id]['misc']['configprotect'], + self._settings[sys_settings_plg_id]['misc']['configprotect'], list, fill_setting_view, save_setting_view, @@ -1118,7 +1119,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'configprotectmask', - self.Equo.SystemSettings[sys_settings_plg_id]['misc']['configprotectmask'], + self._settings[sys_settings_plg_id]['misc']['configprotectmask'], list, fill_setting_view, save_setting_view, @@ -1127,7 +1128,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'configprotectskip', - self.Equo.SystemSettings[sys_settings_plg_id]['misc']['configprotectskip'], + self._settings[sys_settings_plg_id]['misc']['configprotectskip'], list, fill_setting_view, save_setting_view, @@ -1136,7 +1137,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): ), ( 'filesbackup', - self.Equo.SystemSettings[sys_settings_plg_id]['misc']['filesbackup'], + self._settings[sys_settings_plg_id]['misc']['filesbackup'], bool, fill_setting, saveSetting, @@ -1156,7 +1157,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): etpConst['repositoriesconf']: [ ( 'downloadspeedlimit', - self.Equo.SystemSettings['repositories']['transfer_limit'], + self._settings['repositories']['transfer_limit'], int, fill_setting, saveSetting, @@ -1306,7 +1307,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): for repoid in self.Equo.repositories(): if self.Equo.is_noticeboard_marked_as_read(repoid) and not force: continue - avail_repos = self.Equo.SystemSettings['repositories']['available'] + avail_repos = self._settings['repositories']['available'] board_file = avail_repos[repoid]['local_notice_board'] if not (os.path.isfile(board_file) and \ os.access(board_file, os.R_OK)): @@ -1829,7 +1830,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): # live masked, and anyway, better wasting # 2-3 more cycles than having unattended # behaviours - self.Equo.SystemSettings.clear() + self._settings.clear() self.Equo.close_repositories() def hide_notebook_tabs_for_install(self): @@ -1929,7 +1930,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): def critical_updates_warning(self): sys_set_client_plg_id = \ etpConst['system_settings_plugins_ids']['client_plugin'] - misc_set = self.Equo.SystemSettings[sys_set_client_plg_id]['misc'] + misc_set = self._settings[sys_set_client_plg_id]['misc'] if misc_set.get('forcedupdates'): crit_atoms, crit_mtchs = self.Equo.calculate_critical_updates() if crit_atoms: @@ -2118,7 +2119,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): if (err == 0) and ((not fetch_only) and (not download_sources)): # this triggers post-branch upgrade function inside # Entropy Client SystemSettings plugin - self.Equo.SystemSettings.clear() + self._settings.clear() if self.my_inst_abort: okDialog(self.ui.main, @@ -2227,7 +2228,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): if repodata[1] != None: repoid = self.repoView.get_repoid(repodata) # do it if it's enabled - repo_order = self.Equo.SystemSettings['repositories']['order'] + repo_order = self._settings['repositories']['order'] if repoid in repo_order: idx = repo_order.index(repoid) return idx, repoid, repodata @@ -2302,9 +2303,9 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): def load_ugc_repositories(self): self.ugcRepositoriesModel.clear() - repo_order = self.Equo.SystemSettings['repositories']['order'] - repo_excluded = self.Equo.SystemSettings['repositories']['excluded'] - avail_repos = self.Equo.SystemSettings['repositories']['available'] + repo_order = self._settings['repositories']['order'] + repo_excluded = self._settings['repositories']['excluded'] + avail_repos = self._settings['repositories']['available'] for repoid in repo_order+sorted(repo_excluded.keys()): repodata = avail_repos.get(repoid) if repodata == None: diff --git a/sulfur/src/sulfur/entropyapi.py b/sulfur/src/sulfur/entropyapi.py index 6eb1abdea..d5df9ca16 100644 --- a/sulfur/src/sulfur/entropyapi.py +++ b/sulfur/src/sulfur/entropyapi.py @@ -40,7 +40,7 @@ class QueueExecutor: def __init__(self, SulfurApplication): self.Sulfur = SulfurApplication - self.Entropy = SulfurApplication.Equo + self._entropy = SulfurApplication.Equo self.__on_lic_request = False self.__on_lic_rc = None # clear download mirrors status @@ -50,12 +50,12 @@ class QueueExecutor: ### Before even starting the fetch, make sure ### that the user accepts their licenses - licenses = self.Entropy.get_licenses_to_accept(queue) + licenses = self._entropy.get_licenses_to_accept(queue) if licenses: self.__on_lic_request = True def do_handle(): - dialog = LicenseDialog(self.Sulfur, self.Entropy, licenses) + dialog = LicenseDialog(self.Sulfur, self._entropy, licenses) accept = dialog.run() dialog.destroy() self.__on_lic_rc = accept, licenses @@ -91,9 +91,9 @@ class QueueExecutor: # unmask packages if (not fetch_only) and (not download_sources): for match in self.Sulfur.etpbase.unmaskingPackages: - result = self.Entropy.unmask_match(match) - if not result or self.Entropy.is_match_masked(match): - dbconn = self.Entropy.open_repository(match[1]) + result = self._entropy.unmask_match(match) + if not result or self._entropy.is_match_masked(match): + dbconn = self._entropy.open_repository(match[1]) atom = dbconn.retrieveAtom(match[0]) self.ok_dialog("%s: %s" % ( _("Error enabling masked package"), atom)) @@ -103,7 +103,7 @@ class QueueExecutor: runQueue = install_queue conflicts_queue = [] if (not fetch_only) and (not download_sources): - runQueue, conflicts_queue, status = self.Entropy.get_install_queue( + runQueue, conflicts_queue, status = self._entropy.get_install_queue( install_queue, False, False, relaxed = (SulfurConf.relaxed_deps == 1) ) @@ -116,7 +116,7 @@ class QueueExecutor: return 3 for lic in licenses: - self.Entropy.installed_repository().acceptLicense(lic) + self._entropy.installed_repository().acceptLicense(lic) def do_skip_show(): self.Sulfur.skipMirrorNow = False @@ -151,9 +151,9 @@ class QueueExecutor: self.Sulfur.queue_bombing() progress_step_count += 1 - self.Entropy.set_progress(float(progress_step_count)/total_steps) + self._entropy.set_progress(float(progress_step_count)/total_steps) - pkg = self.Entropy.Package() + pkg = self._entropy.Package() metaopts = {} metaopts['fetch_abort_function'] = self.Sulfur.mirror_bombing pkg.prepare(pkg_info, fetch_action, metaopts) @@ -164,7 +164,7 @@ class QueueExecutor: mykeys[myrepo].add( entropy.tools.dep_getkey(pkg.pkgmeta['atom'])) - self.Entropy.output( + self._entropy.output( fetch_string+pkg.pkgmeta['atom'], importance = 2, count = (progress_step_count, total_steps) @@ -178,10 +178,10 @@ class QueueExecutor: if not download_sources: def spawn_ugc(): try: - if self.Entropy.UGC != None: + if self._entropy.UGC != None: for myrepo in mykeys: mypkgkeys = sorted(mykeys[myrepo]) - self.Entropy.UGC.add_download_stats(myrepo, + self._entropy.UGC.add_download_stats(myrepo, mypkgkeys) except: pass @@ -203,16 +203,16 @@ class QueueExecutor: idpackage = rem_data[0] progress_step_count += 1 - self.Entropy.set_progress(float(progress_step_count)/total_steps) + self._entropy.set_progress(float(progress_step_count)/total_steps) metaopts = {} metaopts['removeconfig'] = rem_data[1] if idpackage in do_purge_cache: metaopts['removeconfig'] = True - pkg = self.Entropy.Package() + pkg = self._entropy.Package() pkg.prepare((idpackage,), "remove", metaopts) - self.Entropy.output( + self._entropy.output( "%s: %s" % ( _("Removing package"), pkg.pkgmeta['removeatom'], @@ -222,7 +222,7 @@ class QueueExecutor: ) if 'remove_installed_vanished' not in pkg.pkgmeta: - self.Entropy.output( + self._entropy.output( "%s: " % (_("Removing"),) + pkg.pkgmeta['removeatom'], importance = 2, count = (progress_step_count, total_steps) @@ -247,7 +247,7 @@ class QueueExecutor: for pkg_info in runQueue: progress_step_count += 1 - self.Entropy.set_progress(float(progress_step_count)/total_steps) + self._entropy.set_progress(float(progress_step_count)/total_steps) self.Sulfur.queue_bombing() metaopts = {} @@ -261,10 +261,10 @@ class QueueExecutor: metaopts['install_source'] = \ etpConst['install_sources']['automatic_dependency'] - pkg = self.Entropy.Package() + pkg = self._entropy.Package() pkg.prepare(pkg_info, "install", metaopts) - self.Entropy.output( + self._entropy.output( "%s: %s" % (_("Installing"), pkg.pkgmeta['atom'],), importance = 2, count = (progress_step_count, total_steps) diff --git a/sulfur/src/sulfur/events.py b/sulfur/src/sulfur/events.py index e4fbc45ff..96686a9c5 100644 --- a/sulfur/src/sulfur/events.py +++ b/sulfur/src/sulfur/events.py @@ -52,7 +52,7 @@ class SulfurApplicationEventsMixin: def on_dbBackupButton_clicked(self, widget): self.start_working() - status, err_msg = self.Equo.backup_database( + status, err_msg = self.Equo.backup_repository( etpConst['etpdatabaseclientfilepath']) self.end_working() if not status: @@ -68,7 +68,7 @@ class SulfurApplicationEventsMixin: if myiter == None: return dbpath = model.get_value(myiter, 0) self.start_working() - status, err_msg = self.Equo.restore_database(dbpath, + status, err_msg = self.Equo.restore_repository(dbpath, etpConst['etpdatabaseclientfilepath']) self.end_working() self.Equo.reopen_installed_repository() @@ -242,7 +242,7 @@ class SulfurApplicationEventsMixin: # get text if repodata[1] != None: repoid = self.repoView.get_repoid(repodata) - if repoid == self.Equo.SystemSettings['repositories']['default_repository']: + if repoid == self._settings['repositories']['default_repository']: okDialog( self.ui.main, _("You! Why do you want to remove the main repository ?")) return True @@ -250,7 +250,17 @@ class SulfurApplicationEventsMixin: self.reset_cache_status() self.setup_repoView() - def on_repoEdit_clicked( self, widget ): + def on_repoEdit_clicked(self, widget): + + def get_repository_settings(repoid): + try: + repodata = self._settings['repositories']['available'][repoid] + except KeyError: + if repoid not in self._settings['repositories']['excluded']: + raise + repodata = self._settings['repositories']['excluded'][repoid] + return repodata.copy() + my = AddRepositoryWindow(self, self.ui.main, self.Equo) my.addrepo_ui.repoSubmit.hide() my.addrepo_ui.repoSubmitEdit.show() @@ -261,7 +271,7 @@ class SulfurApplicationEventsMixin: repostuff = selection.get_selected() if repostuff[1] != None: repoid = self.repoView.get_repoid(repostuff) - repodata = self.Equo.get_repository_settings(repoid) + repodata = get_repository_settings(repoid) my._load_repo_data(repodata) my.load() @@ -397,7 +407,7 @@ class SulfurApplicationEventsMixin: newrepo = os.path.basename(fn) # we have it ! - status, atomsfound = self.Equo.add_package_to_repos(fn) + status, atomsfound = self.Equo.add_package_to_repositories(fn) if status != 0: errtxt = _("is not a valid Entropy package") if status == -3: @@ -781,8 +791,8 @@ class SulfurApplicationEventsMixin: def on_ugcClearCacheButton_clicked(self, widget): if self.Equo.UGC == None: return - repo_excluded = self.Equo.SystemSettings['repositories']['excluded'] - avail_repos = self.Equo.SystemSettings['repositories']['available'] + repo_excluded = self._settings['repositories']['excluded'] + avail_repos = self._settings['repositories']['available'] for repoid in list(set(list(avail_repos.keys())+list(repo_excluded.keys()))): self.Equo.UGC.UGCCache.clear_cache(repoid) self.set_status_ticker("%s: %s ..." % (_("Cleaning UGC cache of"), repoid,)) @@ -791,8 +801,8 @@ class SulfurApplicationEventsMixin: def on_ugcClearCredentialsButton_clicked(self, widget): if self.Equo.UGC == None: return - repo_excluded = self.Equo.SystemSettings['repositories']['excluded'] - avail_repos = self.Equo.SystemSettings['repositories']['available'] + repo_excluded = self._settings['repositories']['excluded'] + avail_repos = self._settings['repositories']['available'] for repoid in list(set(list(avail_repos.keys())+list(repo_excluded.keys()))): if not self.Equo.UGC.is_repository_eapi3_aware(repoid): continue