diff --git a/consulate/api.py b/consulate/api.py index 1562f9d..3269b5f 100644 --- a/consulate/api.py +++ b/consulate/api.py @@ -234,18 +234,25 @@ def set_record(self, item, flags=0, value=None): raise AttributeError('Error setting "%s" (%s)' % (item, response.status_code)) - def find(self, prefix): + def find(self, prefix, separator=None): """Find all keys with the specified prefix, returning a dict of matches. :param str prefix: The prefix to search with - :rtype: dict + :rtype: mixed """ - response = self._get_list([prefix.lstrip('/')], {'recurse': None}) - results = {} - for r in response: - results[r['Key']] = r['Value'] + query_params = {'recurse': None} + if separator: + query_params['keys'] = prefix + query_params['separator'] = separator + response = self._get_list([prefix.lstrip('/')], query_params) + if separator: + results = response + else: + results = {} + for r in response: + results[r['Key']] = r['Value'] return results def items(self):