diff --git a/daemon/dnfdaemon-system.py b/daemon/dnfdaemon-system.py index 3210e73dfdd6c4e5ec00711780e739d5b2dd73d5..d457a9ad41d68a4c222d8cda654217ba360ea737 100755 --- a/daemon/dnfdaemon-system.py +++ b/daemon/dnfdaemon-system.py @@ -99,7 +99,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): Exit the daemon :param sender: """ - self.check_permission_write(sender) + self.check_permission_read(sender) if self._can_quit: self._reset_base() self.mainloop_quit() @@ -117,7 +117,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): Get the yum lock :param sender: """ - self.check_permission_write(sender) + self.check_permission_read(sender) if not self._lock: self._lock = sender logger.info('LOCK: Locked by : %s' % sender) @@ -135,7 +135,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param state: True = Watchdog active, False = Watchdog disabled :type state: boolean (b) """ - self.check_permission_write(sender) + self.check_permission_read(sender) self._watchdog_disabled = not state return state @@ -150,7 +150,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param filter: filter to limit the listed repositories :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) repos = self.get_repositories(filter) return self.working_ended(repos) @@ -165,7 +165,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param repo_ids: list of repo ids to enable :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) self.set_enabled_repos(repo_ids) return self.working_ended() @@ -181,7 +181,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param sender: :return: True if cache is populated without errors """ - self.working_start(sender) + self.working_start(sender, write=False) rc = self.expire_cache() return self.working_ended(rc) @@ -197,7 +197,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param setting: name of setting (debuglevel etc..) :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_config(setting) return self.working_ended(value) @@ -213,7 +213,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param value: value to set :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) rc = self.set_option(setting, value) return self.working_ended(rc) @@ -229,7 +229,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param repo_id: :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_repo(repo_id) return self.working_ended(value) @@ -244,7 +244,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param pkg_filter: pkg pkg_filter string ('installed','updates' etc) :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_packages(pkg_filter, fields) return self.working_ended(value) @@ -261,7 +261,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param attrs: list of package attributes to get :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) values = self.get_packages_by_name_with_attr(name, attrs, newest_only) return self.working_ended(values) @@ -279,7 +279,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): changelog etc..) :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_attribute(pkg_id, attr) return self.working_ended(value) @@ -297,7 +297,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :return: list of (pkg_id, state, installed) pairs :rtype: json encoded string """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_history_transaction_pkgs(tid) return self.working_ended(value) @@ -317,7 +317,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :return: a list of (transaction is, date-time) pairs :type sender: json encoded string """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_history_by_days(start_days, end_days) return self.working_ended(value) @@ -334,7 +334,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :return: list of (tid,isodates) :type sender: json encoded string """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.history_search(pattern) return self.working_ended(value) @@ -345,7 +345,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): sender_keyword='sender') def Unlock(self, sender=None): """ release the lock""" - self.check_permission_write(sender) + self.check_permission_read(sender) if self.check_lock(sender): self._reset_base() logger.info('UNLOCK: Lock Release by %s' % self._lock) @@ -477,7 +477,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param action: the action to perform ( install, update, remove, obsolete, reinstall, downgrade, localinstall ) """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.add_transaction(pkg_id, action) return self.working_ended(value) @@ -490,7 +490,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): """ Clear the transactopm """ - self.working_start(sender) + self.working_start(sender, write=False) self.clear_transaction() return self.working_ended() @@ -503,7 +503,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): """ Return the members of the current transaction """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_transaction() return self.working_ended(value) @@ -516,7 +516,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): """ Resolve dependencies of current transaction """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.build_transaction() return self.working_ended(value) @@ -553,7 +553,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param newest_only: return only the newest version of a package :param tags: seach pkgtags """ - self.working_start(sender) + self.working_start(sender, write=False) result = self.search_with_attr( fields, keys, attrs, match_all, newest_only, tags) return self.working_ended(result) @@ -567,7 +567,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): """ Return a category/group tree """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_groups() return self.working_ended(value) @@ -584,7 +584,7 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): :param fields: list of package attributes to include in list :param sender: """ - self.working_start(sender) + self.working_start(sender, write=False) value = self.get_group_pkgs(grp_id, grp_flt, fields) return self.working_ended(value) @@ -683,8 +683,11 @@ class DnfDaemon(dnfdaemon.server.DnfDaemonBase): #========================================================================= # Helper methods #========================================================================= - def working_start(self, sender): - self.check_permission_write(sender) + def working_start(self, sender, write=True): + if write: + self.check_permission_write(sender) + else: + self.check_permission_read(sender) self.check_lock(sender) self._is_working = True self._watchdog_count = 0