Skip to content

Commit bed438c

Browse files
committed
removed producer mode methods
1 parent 976ed8a commit bed438c

2 files changed

Lines changed: 79 additions & 53 deletions

File tree

splitio/storage/pluggable.py

Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ def update(self, segment_name, to_add, to_remove, change_number=None):
240240
if to_remove is not None:
241241
self._pluggable_adapter.remove_items(self._prefix.format(segment_name=segment_name), to_remove)
242242
if change_number is not None:
243-
self.set_change_number(segment_name, change_number)
243+
self._pluggable_adapter.set(self._segment_till_prefix.format(segment_name=segment_name), change_number)
244244
except Exception:
245245
_LOGGER.error('Error updating segment storage')
246246
_LOGGER.debug('Error: ', exc_info=True)
@@ -254,11 +254,13 @@ def set_change_number(self, segment_name, change_number):
254254
:param change_number: change number
255255
:type segment_name: int
256256
"""
257-
try:
258-
self._pluggable_adapter.set(self._segment_till_prefix.format(segment_name=segment_name), change_number)
259-
except Exception:
260-
_LOGGER.error('Error updating segment change number')
261-
_LOGGER.debug('Error: ', exc_info=True)
257+
pass
258+
# TODO: To be added when producer mode is aupported
259+
# try:
260+
# self._pluggable_adapter.set(self._segment_till_prefix.format(segment_name=segment_name), change_number)
261+
# except Exception:
262+
# _LOGGER.error('Error updating segment change number')
263+
# _LOGGER.debug('Error: ', exc_info=True)
262264

263265
def get_change_number(self, segment_name):
264266
"""
@@ -313,7 +315,7 @@ def get_segment_names(self):
313315
# _LOGGER.debug('Error: ', exc_info=True)
314316
# return None
315317

316-
def segment_contains(self, segment_name, key):
318+
def segment_contains_key(self, segment_name, key):
317319
"""
318320
Check if segment contains a key
319321
@@ -332,19 +334,35 @@ def segment_contains(self, segment_name, key):
332334
_LOGGER.debug('Error: ', exc_info=True)
333335
return None
334336

337+
def segment_contains(self, segment_name, key):
338+
"""
339+
Check if segment contains a key, added for backward compatibility as its implemented in Redis
340+
341+
:param segment_name: segment name
342+
:type segment_name: str
343+
:param key: key
344+
:type key: str
345+
346+
:return: True if found, otherwise False
347+
:rtype: bool
348+
"""
349+
self.segment_contains_key(segment_name, key)
350+
335351
def get_segment_keys_count(self):
336352
"""
337353
Get count of all keys in segments.
338354
339355
:return: keys count
340356
:rtype: int
341357
"""
342-
try:
343-
return sum([self._pluggable_adapter.get_items_count(key) for key in self._pluggable_adapter.get_keys_by_prefix(self._prefix)])
344-
except Exception:
345-
_LOGGER.error('Error getting segment keys')
346-
_LOGGER.debug('Error: ', exc_info=True)
347-
return None
358+
pass
359+
# TODO: To be added when producer mode is aupported
360+
# try:
361+
# return sum([self._pluggable_adapter.get_items_count(key) for key in self._pluggable_adapter.get_keys_by_prefix(self._prefix)])
362+
# except Exception:
363+
# _LOGGER.error('Error getting segment keys')
364+
# _LOGGER.debug('Error: ', exc_info=True)
365+
# return None
348366

349367
def get(self, segment_name):
350368
"""
@@ -356,12 +374,14 @@ def get(self, segment_name):
356374
:return: segment object
357375
:rtype: splitio.models.segments.Segment
358376
"""
359-
try:
360-
return segments.from_raw({'name': segment_name, 'added': list(self._pluggable_adapter.get(self._prefix.format(segment_name=segment_name))), 'removed': [], 'till': self._pluggable_adapter.get(self._segment_till_prefix.format(segment_name=segment_name))})
361-
except Exception:
362-
_LOGGER.error('Error getting segment')
363-
_LOGGER.debug('Error: ', exc_info=True)
364-
return None
377+
pass
378+
# TODO: To be added when producer mode is aupported
379+
# try:
380+
# return segments.from_raw({'name': segment_name, 'added': list(self._pluggable_adapter.get(self._prefix.format(segment_name=segment_name))), 'removed': [], 'till': self._pluggable_adapter.get(self._segment_till_prefix.format(segment_name=segment_name))})
381+
# except Exception:
382+
# _LOGGER.error('Error getting segment')
383+
# _LOGGER.debug('Error: ', exc_info=True)
384+
# return None
365385

366386
def put(self, segment):
367387
"""
@@ -370,10 +390,12 @@ def put(self, segment):
370390
:param segment: Segment to store.
371391
:type segment: splitio.models.segment.Segment
372392
"""
373-
try:
374-
self._pluggable_adapter.add_items(self._prefix.format(segment_name=segment.name), list(segment.keys))
375-
if segment.change_number is not None:
376-
self._pluggable_adapter.set(self._segment_till_prefix.format(segment_name=segment.name), segment.change_number)
377-
except Exception:
378-
_LOGGER.error('Error updating segment storage')
379-
_LOGGER.debug('Error: ', exc_info=True)
393+
pass
394+
# TODO: To be added when producer mode is aupported
395+
# try:
396+
# self._pluggable_adapter.add_items(self._prefix.format(segment_name=segment.name), list(segment.keys))
397+
# if segment.change_number is not None:
398+
# self._pluggable_adapter.set(self._segment_till_prefix.format(segment_name=segment.name), segment.change_number)
399+
# except Exception:
400+
# _LOGGER.error('Error updating segment storage')
401+
# _LOGGER.debug('Error: ', exc_info=True)

tests/storage/test_pluggable.py

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,9 @@ def test_update_change_number(self):
274274
self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
275275
assert(self.pluggable_segment_storage.get_change_number('segment1') == 123)
276276

277-
self.pluggable_segment_storage.set_change_number('segment1', 124)
278-
assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment1.till'] == 124)
277+
# TODO: To be added when producer mode is implemented
278+
# self.pluggable_segment_storage.set_change_number('segment1', 124)
279+
# assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment1.till'] == 124)
279280

280281
def test_get_segment_names(self):
281282
self.mock_adapter._keys = {}
@@ -294,32 +295,35 @@ def test_get_segment_names(self):
294295
def test_segment_contains(self):
295296
self.mock_adapter._keys = {}
296297
self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
297-
assert(self.pluggable_segment_storage.segment_contains('segment1', 'key1'))
298+
assert(self.pluggable_segment_storage.segment_contains_key('segment1', 'key1'))
298299
assert(not self.pluggable_segment_storage.segment_contains('segment1', 'key5'))
299300

300-
def get_segment_keys_count(self):
301-
self.mock_adapter._keys = {}
302-
self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
303-
self.pluggable_segment_storage.update('segment2', [], [], 123)
304-
self.pluggable_segment_storage.update('segment3', ['key1', 'key5'], [], 123)
305-
assert(self.pluggable_segment_storage.get_segment_keys_count() == 4)
301+
# TODO: To be added when producer mode is implemented
302+
# def get_segment_keys_count(self):
303+
# self.mock_adapter._keys = {}
304+
# self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
305+
# self.pluggable_segment_storage.update('segment2', [], [], 123)
306+
# self.pluggable_segment_storage.update('segment3', ['key1', 'key5'], [], 123)
307+
# assert(self.pluggable_segment_storage.get_segment_keys_count() == 4)
306308

307-
def test_get(self):
308-
self.mock_adapter._keys = {}
309-
self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
310-
segment = self.pluggable_segment_storage.get('segment1')
311-
assert(segment.name == 'segment1')
312-
assert(segment.keys == {'key1', 'key2'})
313-
assert(segment.change_number == 123)
309+
# TODO: To be added when producer mode is implemented
310+
# def test_get(self):
311+
# self.mock_adapter._keys = {}
312+
# self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
313+
# segment = self.pluggable_segment_storage.get('segment1')
314+
# assert(segment.name == 'segment1')
315+
# assert(segment.keys == {'key1', 'key2'})
316+
# assert(segment.change_number == 123)
314317

315-
def test_put(self):
316-
self.mock_adapter._keys = {}
317-
self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
318-
segment = self.pluggable_segment_storage.get('segment1')
319-
segment._name = 'segment2'
320-
segment._keys.add('key3')
321-
322-
self.pluggable_segment_storage.put(segment)
323-
assert('myprefix.SPLITIO.segment.segment2' in self.mock_adapter._keys)
324-
assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment2'] == {'key1', 'key2', 'key3'})
325-
assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment2.till'] == 123)
318+
# TODO: To be added when producer mode is implemented
319+
# def test_put(self):
320+
# self.mock_adapter._keys = {}
321+
# self.pluggable_segment_storage.update('segment1', ['key1', 'key2'], [], 123)
322+
# segment = self.pluggable_segment_storage.get('segment1')
323+
# segment._name = 'segment2'
324+
# segment._keys.add('key3')
325+
#
326+
# self.pluggable_segment_storage.put(segment)
327+
# assert('myprefix.SPLITIO.segment.segment2' in self.mock_adapter._keys)
328+
# assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment2'] == {'key1', 'key2', 'key3'})
329+
# assert(self.mock_adapter._keys['myprefix.SPLITIO.segment.segment2.till'] == 123)

0 commit comments

Comments
 (0)