[client-updates-daemon] add new method "trigger_startup_check"

It tells the daemon to not update repos but just return the updates list
This commit is contained in:
Fabio Erculiani
2010-05-24 11:32:55 +02:00
parent 8fcea39441
commit 0a0cc78a5a
2 changed files with 26 additions and 10 deletions

View File

@@ -4,6 +4,7 @@
<method name="notifier"/>
<method name="get_repo_status"/>
<method name="trigger_check"/>
<method name="trigger_startup_check"/>
<method name="get_updates"/>
<method name="get_updates_atoms"/>
<method name="is_system_changed"/>

View File

@@ -154,6 +154,7 @@ class UpdatesDaemon(dbus.service.Object):
self.__quit_service_wd = None
self.__quit_service_trigger = False
self.__trigger_oncall_updater = False
self.__trigger_startup_check = False
self.__fetch_mutex = Lock()
self.__updates = []
self.__updates_atoms = None
@@ -180,7 +181,7 @@ class UpdatesDaemon(dbus.service.Object):
self.__updater = gobject.timeout_add(
CHECK_DELAY_SECS*1000, self.run_fetcher)
self.__oncall_updater = gobject.timeout_add(
1000, self.run_oncall_fetcher)
3000, self.run_oncall_fetcher)
self.__quit_service_wd = gobject.timeout_add(
60*1000, self.quit_service_watchdog)
self.__system_changes_checker = gobject.timeout_add(
@@ -260,8 +261,9 @@ class UpdatesDaemon(dbus.service.Object):
def quit_service_watchdog(self):
if self.__quit_service_trigger:
self.__alive = False
self.stop()
with self.__is_working_mutex:
entropy.tools.kill_threads()
raise SystemExit(0)
return self.__alive
@@ -375,14 +377,21 @@ class UpdatesDaemon(dbus.service.Object):
urgency = 'critical'
)
gobject.timeout_add(0, self.signal_updating)
repos = repos_to_up.keys()
rc_fetch = self.__run_sync(repos, entropy)
if rc_fetch != 0:
return rc_fetch
if DAEMON_DEBUG:
write_output("__run_fetcher: sync closed, rc: %s" % (
rc_fetch,))
if not self.__trigger_startup_check:
gobject.timeout_add(0, self.signal_updating)
repos = repos_to_up.keys()
rc_fetch = self.__run_sync(repos, entropy)
if rc_fetch != 0:
return rc_fetch
if DAEMON_DEBUG:
write_output("__run_fetcher: sync closed, rc: %s" % (
rc_fetch,))
else:
self.__trigger_startup_check = False
if DAEMON_DEBUG:
write_output("__run_fetcher: not syncing atm, "
"trigger startup check is ON, waiting next "
"round, repos: %s" % (repos_to_up,))
try:
update, remove, fine, spm_fine = \
@@ -480,6 +489,12 @@ class UpdatesDaemon(dbus.service.Object):
def trigger_check(self):
self.__trigger_oncall_updater = True
@dbus.service.method ( "org.entropy.Client", in_signature = '',
out_signature = '')
def trigger_startup_check(self):
self.__trigger_oncall_updater = True
self.__trigger_startup_check = True
@dbus.service.method ( "org.entropy.Client", in_signature = '',
out_signature = 'av')
def get_updates(self):