Skip to content

Commit 76093b4

Browse files
committed
Correcting get parameters
1 parent c65e212 commit 76093b4

1 file changed

Lines changed: 39 additions & 27 deletions

File tree

etcd3/client.py

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -208,50 +208,64 @@ def _build_get_range_request(self, key,
208208
sort_target='key',
209209
serializable=False,
210210
keys_only=False,
211-
count_only=None,
211+
count_only=False,
212212
min_mod_revision=None,
213213
max_mod_revision=None,
214214
min_create_revision=None,
215215
max_create_revision=None):
216216
range_request = etcdrpc.RangeRequest()
217217
range_request.key = utils.to_bytes(key)
218218
range_request.keys_only = keys_only
219+
range_request.count_only = count_only
220+
range_request.serializable = serializable
221+
219222
if range_end is not None:
220223
range_request.range_end = utils.to_bytes(range_end)
221-
222-
if sort_order is None:
223-
range_request.sort_order = etcdrpc.RangeRequest.NONE
224-
elif sort_order == 'ascend':
225-
range_request.sort_order = etcdrpc.RangeRequest.ASCEND
226-
elif sort_order == 'descend':
227-
range_request.sort_order = etcdrpc.RangeRequest.DESCEND
228-
else:
224+
if limit is not None:
225+
range_request.limit = limit
226+
if revision is not None:
227+
range_request.revision = revision
228+
if min_mod_revision is not None:
229+
range_request.min_mod_revision = min_mod_revision
230+
if max_mod_revision is not None:
231+
range_request.max_mod_revision = max_mod_revision
232+
if min_create_revision is not None:
233+
range_request.min_mod_revision = min_create_revision
234+
if max_create_revision is not None:
235+
range_request.min_mod_revision = max_create_revision
236+
237+
sort_orders = {
238+
None: etcdrpc.RangeRequest.NONE,
239+
'ascend': etcdrpc.RangeRequest.ASCEND,
240+
'descend': etcdrpc.RangeRequest.DESCEND,
241+
}
242+
request_sort_order = sort_orders.get(sort_order)
243+
if request_sort_order is None:
229244
raise ValueError('unknown sort order: "{}"'.format(sort_order))
230-
231-
if sort_target is None or sort_target == 'key':
232-
range_request.sort_target = etcdrpc.RangeRequest.KEY
233-
elif sort_target == 'version':
234-
range_request.sort_target = etcdrpc.RangeRequest.VERSION
235-
elif sort_target == 'create':
236-
range_request.sort_target = etcdrpc.RangeRequest.CREATE
237-
elif sort_target == 'mod':
238-
range_request.sort_target = etcdrpc.RangeRequest.MOD
239-
elif sort_target == 'value':
240-
range_request.sort_target = etcdrpc.RangeRequest.VALUE
241-
else:
245+
range_request.sort_order = request_sort_order
246+
247+
sort_targets = {
248+
None: etcdrpc.RangeRequest.KEY,
249+
'key': etcdrpc.RangeRequest.KEY,
250+
'version': etcdrpc.RangeRequest.VERSION,
251+
'create': etcdrpc.RangeRequest.CREATE,
252+
'mod': etcdrpc.RangeRequest.MOD,
253+
'value': etcdrpc.RangeRequest.VALUE,
254+
}
255+
request_sort_target = sort_targets.get(sort_target)
256+
if request_sort_target is None:
242257
raise ValueError('sort_target must be one of "key", '
243258
'"version", "create", "mod" or "value"')
244-
245-
range_request.serializable = serializable
259+
range_request.sort_target = request_sort_target
246260

247261
return range_request
248262

249263
@_handle_errors
250-
def get_response(self, key, serializable=False):
264+
def get_response(self, key, **kwargs):
251265
"""Get the value of a key from etcd."""
252266
range_request = self._build_get_range_request(
253267
key,
254-
serializable=serializable
268+
**kwargs
255269
)
256270

257271
return self.kvstub.Range(
@@ -275,8 +289,6 @@ def get(self, key, **kwargs):
275289
'hello world'
276290
277291
:param key: key in etcd to get
278-
:param serializable: whether to allow serializable reads. This can
279-
result in stale reads
280292
:returns: value of key and metadata
281293
:rtype: bytes, ``KVMetadata``
282294
"""

0 commit comments

Comments
 (0)