From 4cc4407eaa951cd4e59c67100cf799f8b128206a Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Mon, 17 Oct 2011 11:12:14 +0200 Subject: [PATCH] [entropy.server] drop etpConst['community']['mode'], move setting into server.conf --- conf/server.conf.example | 10 +++++++ libraries/entropy/const.py | 8 ------ libraries/entropy/server/interfaces/main.py | 29 +++++++++++++++------ server/eit/commands/command.py | 2 -- services/matter | 10 ++----- 5 files changed, 33 insertions(+), 26 deletions(-) diff --git a/conf/server.conf.example b/conf/server.conf.example index 42836fb8f..a176a191a 100644 --- a/conf/server.conf.example +++ b/conf/server.conf.example @@ -13,6 +13,16 @@ # # expiration-days = +# Community repository mode, enable this if your repositories +# are just "overlays" of other full-blown repositories. +# For example, you're providing your own set of customized packages +# that are meant to work with some distribution repositories' packages. +# +# syntax for community-mode: +# community-mode = +# default is: disable +# +community-mode = disable # # syntax for default-repository: diff --git a/libraries/entropy/const.py b/libraries/entropy/const.py index 1e2edbcd2..fb8aec049 100644 --- a/libraries/entropy/const.py +++ b/libraries/entropy/const.py @@ -215,11 +215,6 @@ def const_default_settings(rootdir): with open(cmdline_file, "r") as cmdline_f: cmdline = cmdline_f.readline().strip().split() - def _default_community_repo_mode(): - if os.getuid() != 0: - return False - return os.getenv("ETP_COMMUNITY_MODE", False) - etpConst.clear() my_const = { 'logging': { @@ -227,9 +222,6 @@ def const_default_settings(rootdir): 'verbose_loglevel_id': 2, }, 'server_repositories': {}, - 'community': { - 'mode': _default_community_repo_mode(), - }, 'cmdline': cmdline, 'backed_up': {}, # entropy default installation directory diff --git a/libraries/entropy/server/interfaces/main.py b/libraries/entropy/server/interfaces/main.py index ae5c2e370..e4d6b776c 100644 --- a/libraries/entropy/server/interfaces/main.py +++ b/libraries/entropy/server/interfaces/main.py @@ -598,6 +598,7 @@ class ServerSystemSettingsPlugin(SystemSettingsPlugin): data = { 'repositories': etpConst['server_repositories'].copy(), + 'community_mode': False, 'qa_langs': ["en_US", "C"], 'default_repository_id': etpConst['defaultserverrepositoryid'], 'base_repository_id': None, @@ -731,6 +732,11 @@ class ServerSystemSettingsPlugin(SystemSettingsPlugin): if bool_setting is not None: data['changelog'] = bool_setting + def _community_mode(line, setting): + bool_setting = entropy.tools.setting_to_bool(setting) + if bool_setting is not None: + data['community_mode'] = bool_setting + def _rss_feed(line, setting): bool_setting = entropy.tools.setting_to_bool(setting) if bool_setting is not None: @@ -769,6 +775,7 @@ class ServerSystemSettingsPlugin(SystemSettingsPlugin): 'officialserverrepositoryid': _offservrepoid, 'default-repository': _default_repo, 'expiration-days': _exp_days, + 'community-mode': _community_mode, 'expiration-based-scope': _exp_based_scope, 'nonfree-packages-directory-support': _nf_packages_dir_sup, 'disabled-eapis': _disabled_eapis, @@ -801,8 +808,14 @@ class ServerSystemSettingsPlugin(SystemSettingsPlugin): continue func(line, value) + env_community_mode = os.getenv("ETP_COMMUNITY_MODE") + if env_community_mode == "0": + data['community_mode'] = False + elif env_community_mode == "1": + data['community_mode'] = True + # add system database if community repository mode is enabled - if self._helper.community_repo: + if data['community_mode']: data['repositories'][etpConst['clientserverrepoid']] = {} mydata = {} mydata['description'] = "Community Repositories System Repository" @@ -1067,8 +1080,7 @@ class Server(Client): SYSTEM_SETTINGS_PLG_ID = etpConst['system_settings_plugins_ids']['server_plugin'] def init_singleton(self, default_repository = None, save_repository = False, - community_repo = False, fake_default_repo = False, - fake_default_repo_id = None, + fake_default_repo = False, fake_default_repo_id = None, fake_default_repo_desc = 'this is a fake repository'): self.__instance_destroyed = False @@ -1079,7 +1091,6 @@ class Server(Client): self._treeupdates_repos = set() self._server_dbcache = {} self._settings = SystemSettings() - self.community_repo = community_repo etpSys['serverside'] = True self.fake_default_repo = fake_default_repo self.fake_default_repo_id = fake_default_repo_id @@ -3983,7 +3994,7 @@ class Server(Client): def _setup_community_repositories_settings(self): srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server'] - if self.community_repo: + if srv_set['community_mode']: for repoid in srv_set['repositories']: srv_set['repositories'][repoid]['community'] = True @@ -4355,8 +4366,9 @@ class Server(Client): if repository_id in self._memory_db_srv_instances: return self._memory_db_srv_instances[repository_id] + srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server'] if repository_id == etpConst['clientserverrepoid'] and \ - self.community_repo: + srv_set['community_mode']: return self.installed_repository() if just_reading: @@ -5436,7 +5448,7 @@ class Server(Client): if setting not in self._settings_to_backup: self._settings_to_backup.append(setting) # setup client database - if not self.community_repo: + if not srv_set['community_mode']: etpConst['etpdatabaseclientfilepath'] = \ self._get_local_repository_file(repository_id) etpConst['clientdbid'] = etpConst['serverdbid'] @@ -5444,7 +5456,8 @@ class Server(Client): def _show_interface_status(self): type_txt = _("server-side repository") - if self.community_repo: + srv_set = self._settings[Server.SYSTEM_SETTINGS_PLG_ID]['server'] + if srv_set['community_mode']: type_txt = _("community repository") # ..on repository: mytxt = _("Entropy Server Interface Instance on repository") diff --git a/server/eit/commands/command.py b/server/eit/commands/command.py index 54b49d50a..b65e4e244 100644 --- a/server/eit/commands/command.py +++ b/server/eit/commands/command.py @@ -53,8 +53,6 @@ class EitCommand(object): Return the Entropy Server object. This method is not thread safe. """ - if "community_repo" not in kwargs: - kwargs["community_repo"] = etpConst['community']['mode'] return Server(*args, **kwargs) def _call_locked(self, func, repo): diff --git a/services/matter b/services/matter index 1315b43e9..a434662ee 100755 --- a/services/matter +++ b/services/matter @@ -52,12 +52,6 @@ import portage.versions import portage -def get_entropy_server(community_mode): - """ - Return Entropy Server interface object. - """ - return Server(community_repo = community_mode) - def exec_cmd(args, env = None): """ Execute a command with given environment. @@ -1464,7 +1458,7 @@ Matter Resources Lock file you can use to detect if matter is running: raise SystemExit(1) if nsargs.community: - etpConst['community']['mode'] = True + os.environ['ETP_COMMUNITY_MODE'] = "1" if nsargs.debug: print_warning(repr(nsargs)) @@ -1493,7 +1487,7 @@ Matter Resources Lock file you can use to detect if matter is running: try: try: - entropy_server = get_entropy_server(etpConst['community']['mode']) + entropy_server = Server() except PermissionDenied: # repository not available or not configured print_error("no valid server-side repositories configured")