# HG changeset patch # User Goffi # Date 1451842402 -3600 # Node ID 1e546442b81a7059baa388ecfb994a42c1d98a81 # Parent e8e1ca94fd8c2c270fed5822ab4a0345e4980f9c backend (getItems): minor refactoring of extenstion callback loop, as it is used only for RSM and it is not efficient. Need to be moved in an other module diff -r e8e1ca94fd8c -r 1e546442b81a sat_pubsub/backend.py --- a/sat_pubsub/backend.py Sun Jan 03 18:33:20 2016 +0100 +++ b/sat_pubsub/backend.py Sun Jan 03 18:33:22 2016 +0100 @@ -643,13 +643,15 @@ d.addCallback(self._tuple2ItemData) d.addCallback(append_item_config) - for extension in ext_data: - if ext_data[extension] is not None: - if hasattr(self, '_items_%s' % extension): - method = getattr(self, '_items_%s' % extension) - d.addCallback(method, node, authorized_groups, - unrestricted, maxItems, itemIdentifiers, - ext_data[extension]) + try: + rsm_data = ext_data['rsm'] + except KeyError: + pass + else: + if rsm_data is not None: + d.addCallback(self._items_rsm, node, authorized_groups, + unrestricted, maxItems, itemIdentifiers, + rsm_data) return d if not ILeafNode.providedBy(node): @@ -680,6 +682,7 @@ def _items_rsm(self, elts, node, authorized_groups, unrestricted, maxItems, itemIdentifiers, request): + # FIXME: move this to a separate module ? response = rsm.RSMResponse() d_count = node.countItems(authorized_groups, unrestricted)