diff options
author | Mike C. Fletcher <mcfletch@raistlin.(none)> | 2007-04-22 04:31:32 (GMT) |
---|---|---|
committer | Mike C. Fletcher <mcfletch@raistlin.(none)> | 2007-04-22 04:31:32 (GMT) |
commit | 96ab3a10fe6d520b39d9ba00c3924a640552e0af (patch) | |
tree | 2836f55c91688808ed98fb45eaafa8dc5371b977 /sugar/presence/presenceservice.py | |
parent | a7af5b06cd66eabbb6f412f0debc57ad89de06cb (diff) |
More code to handle service-offline cases and log messages to tell the
user/admin what's going on.
Diffstat (limited to 'sugar/presence/presenceservice.py')
-rw-r--r-- | sugar/presence/presenceservice.py | 56 |
1 files changed, 43 insertions, 13 deletions
diff --git a/sugar/presence/presenceservice.py b/sugar/presence/presenceservice.py index 3d731b6..7592cdd 100644 --- a/sugar/presence/presenceservice.py +++ b/sugar/presence/presenceservice.py @@ -294,11 +294,19 @@ class PresenceService(gobject.GObject): returns list of Activity objects for all object paths the service reports exist (using GetActivities) """ - resp = self._ps.GetActivities() - acts = [] - for item in resp: - acts.append(self._new_object(item)) - return acts + try: + resp = self._ps.GetActivities() + except dbus.exceptions.DBusException, err: + logging.warn( + """Unable to retrieve activity list from presence service: %s""", + err + ) + return [] + else: + acts = [] + for item in resp: + acts.append(self._new_object(item)) + return acts def get_activity(self, activity_id): """Retrieve single Activity object for the given unique id @@ -310,7 +318,12 @@ class PresenceService(gobject.GObject): """ try: act_op = self._ps.GetActivityById(activity_id) - except dbus.exceptions.DBusException: + except dbus.exceptions.DBusException, err: + logging.warn( + """Unable to retrieve activity handle for %r from presence service: %s""", + activity_id, + err + ) return None return self._new_object(act_op) @@ -320,11 +333,19 @@ class PresenceService(gobject.GObject): returns list of Buddy objects for all object paths the service reports exist (using GetBuddies) """ - resp = self._ps.GetBuddies() - buddies = [] - for item in resp: - buddies.append(self._new_object(item)) - return buddies + try: + resp = self._ps.GetBuddies() + except dbus.exceptions.DBusException, err: + logging.warn( + """Unable to retrieve buddy-list from presence service: %s""", + err + ) + return [] + else: + buddies = [] + for item in resp: + buddies.append(self._new_object(item)) + return buddies def get_buddy(self, key): """Retrieve single Buddy object for the given public key @@ -337,7 +358,12 @@ class PresenceService(gobject.GObject): """ try: buddy_op = self._ps.GetBuddyByPublicKey(dbus.ByteArray(key)) - except dbus.exceptions.DBusException: + except dbus.exceptions.DBusException, err: + logging.warn( + """Unable to retrieve buddy handle for %r from presence service: %s""", + key, + err + ) return None return self._new_object(buddy_op) @@ -350,7 +376,11 @@ class PresenceService(gobject.GObject): """ try: owner_op = self._ps.GetOwner() - except dbus.exceptions.DBusException: + except dbus.exceptions.DBusException, err: + logging.warn( + """Unable to retrieve local user/owner from presence service: %s""", + err + ) return None return self._new_object(owner_op) |