From 33b25320fc58ce0aeff94b836ee6f72b9c91fe03 Mon Sep 17 00:00:00 2001 From: Hendrik Buschmeier <hbuschme@uni-bielefeld.de> Date: Wed, 9 Dec 2015 11:38:29 +0100 Subject: [PATCH] ipaaca-python: Fixed a bug introduced in e19d21c. --- ipaacalib/python/src/ipaaca/buffer.py | 34 +++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/ipaacalib/python/src/ipaaca/buffer.py b/ipaacalib/python/src/ipaaca/buffer.py index 0a476a3..ff6bacf 100644 --- a/ipaacalib/python/src/ipaaca/buffer.py +++ b/ipaacalib/python/src/ipaaca/buffer.py @@ -232,22 +232,32 @@ class InputBuffer(Buffer): if category_interests is not None: self.add_category_interests(category_interests) - def _get_remote_server(self, event): + def _get_remote_server(self, event_or_iu): '''Return (or create, store and return) a remote server.''' - _owner = None - if hasattr(event.data, 'owner_name'): - _owner = event.data.owner_name - elif hasattr(event.data, 'writer_name'): - _owner = event.data.writer_name + _owner = self._get_owner(event_or_iu) if _owner: - if _owner in self._remote_server_store: + try: return self._remote_server_store[_owner] - # TODO remove the str() when unicode is supported (issue #490) - remote_server = rsb.createRemoteServer(rsb.Scope(str(_owner))) - self._remote_server_store[_owner] = remote_server - return remote_server + except KeyError: + remote_server = rsb.createRemoteServer(rsb.Scope(str(_owner))) + self._remote_server_store[_owner] = remote_server + return remote_server + else: + None + + def _get_owner(self, event_or_iu): + if hasattr(event_or_iu, 'data'): + # is RSB event + data = event_or_iu.data + if hasattr(data, 'owner_name'): + return data.owner_name + elif hasattr(data, 'writer_name'): + return data.writer_name + else: + return None else: - return None + # is IU + return event_or_iu.owner_name def _add_category_listener(self, iu_category): '''Create and store a listener on a specific category.''' -- GitLab