Skip to content

Commit 534c21c

Browse files
committed
cleanup
1 parent 03f2d1f commit 534c21c

File tree

9 files changed

+44
-62
lines changed

9 files changed

+44
-62
lines changed

splitio/api/telemetry.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
from splitio.api.client import HttpClientException
77
from splitio.api.commons import headers_from_metadata
88

9-
_LOGGER = logging.getLogger(__name__)
10-
119
class TelemetryAPI(object): # pylint: disable=too-few-public-methods
1210
"""Class that uses an httpClient to communicate with the Telemetry API."""
1311

@@ -31,7 +29,6 @@ def record_unique_keys(self, uniques):
3129
:param uniques: Unique Keys
3230
:type json
3331
"""
34-
_LOGGER.debug(uniques)
3532
try:
3633
response = self._client.post(
3734
'telemetry',

splitio/client/factory.py

Lines changed: 30 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -327,8 +327,17 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
327327
}
328328
imp_counter = ImpressionsCounter() if cfg['impressionsMode'] != ImpressionsMode.DEBUG else None
329329

330+
unique_keys_synchronizer = None
331+
clear_filter_sync = None
332+
unique_keys_task = None
333+
clear_filter_task = None
330334
if cfg['impressionsMode'] == ImpressionsMode.NONE:
331335
imp_strategy = StrategyNoneMode(imp_counter)
336+
clear_filter_sync = ClearFilterSynchronizer(imp_strategy._unique_keys_tracker)
337+
unique_keys_synchronizer = UniqueKeysSynchronizer(InMemorySenderAdapter(apis['telemetry']), imp_strategy._unique_keys_tracker)
338+
unique_keys_task = UniqueKeysSyncTask(unique_keys_synchronizer.SendAll)
339+
clear_filter_task = ClearFilterSyncTask(clear_filter_sync.clearAll)
340+
imp_strategy._unique_keys_tracker.set_queue_full_hook(unique_keys_task.flush)
332341
elif cfg['impressionsMode'] == ImpressionsMode.DEBUG:
333342
imp_strategy = StrategyDebugMode()
334343
else:
@@ -344,49 +353,29 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
344353
ImpressionSynchronizer(apis['impressions'], storages['impressions'],
345354
cfg['impressionsBulkSize']),
346355
EventSynchronizer(apis['events'], storages['events'], cfg['eventsBulkSize']),
347-
ImpressionsCountSynchronizer(apis['impressions'], imp_manager),
356+
ImpressionsCountSynchronizer(apis['impressions'], imp_counter),
357+
unique_keys_synchronizer,
358+
clear_filter_sync
348359
)
349360

350-
if cfg['impressionsMode'] == ImpressionsMode.NONE:
351-
synchronizers.set_none_sync(
352-
UniqueKeysSynchronizer(InMemorySenderAdapter(apis['telemetry']), imp_strategy._unique_keys_tracker),
353-
ClearFilterSynchronizer(imp_strategy._unique_keys_tracker)
354-
)
355-
tasks = SplitTasks(
356-
SplitSynchronizationTask(
357-
synchronizers.split_sync.synchronize_splits,
358-
cfg['featuresRefreshRate'],
359-
),
360-
SegmentSynchronizationTask(
361-
synchronizers.segment_sync.synchronize_segments,
362-
cfg['segmentsRefreshRate'],
363-
),
364-
ImpressionsSyncTask(
365-
synchronizers.impressions_sync.synchronize_impressions,
366-
cfg['impressionsRefreshRate'],
367-
),
368-
EventsSyncTask(synchronizers.events_sync.synchronize_events, cfg['eventsPushRate']),
369-
ImpressionsCountSyncTask(synchronizers.impressions_count_sync.synchronize_counters),
370-
UniqueKeysSyncTask(synchronizers.unique_keys_sync.SendAll),
371-
ClearFilterSyncTask(synchronizers.clear_filter_sync.clearAll)
372-
)
373-
else:
374-
tasks = SplitTasks(
375-
SplitSynchronizationTask(
376-
synchronizers.split_sync.synchronize_splits,
377-
cfg['featuresRefreshRate'],
378-
),
379-
SegmentSynchronizationTask(
380-
synchronizers.segment_sync.synchronize_segments,
381-
cfg['segmentsRefreshRate'],
382-
),
383-
ImpressionsSyncTask(
384-
synchronizers.impressions_sync.synchronize_impressions,
385-
cfg['impressionsRefreshRate'],
386-
),
387-
EventsSyncTask(synchronizers.events_sync.synchronize_events, cfg['eventsPushRate']),
388-
ImpressionsCountSyncTask(synchronizers.impressions_count_sync.synchronize_counters),
389-
)
361+
tasks = SplitTasks(
362+
SplitSynchronizationTask(
363+
synchronizers.split_sync.synchronize_splits,
364+
cfg['featuresRefreshRate'],
365+
),
366+
SegmentSynchronizationTask(
367+
synchronizers.segment_sync.synchronize_segments,
368+
cfg['segmentsRefreshRate'],
369+
),
370+
ImpressionsSyncTask(
371+
synchronizers.impressions_sync.synchronize_impressions,
372+
cfg['impressionsRefreshRate'],
373+
),
374+
EventsSyncTask(synchronizers.events_sync.synchronize_events, cfg['eventsPushRate']),
375+
ImpressionsCountSyncTask(synchronizers.impressions_count_sync.synchronize_counters),
376+
unique_keys_task,
377+
clear_filter_task
378+
)
390379

391380
synchronizer = Synchronizer(synchronizers, tasks)
392381

@@ -398,8 +387,6 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
398387

399388
storages['events'].set_queue_full_hook(tasks.events_task.flush)
400389
storages['impressions'].set_queue_full_hook(tasks.impressions_task.flush)
401-
if cfg['impressionsMode'] == ImpressionsMode.NONE:
402-
imp_strategy._unique_keys_tracker.set_queue_full_hook(tasks._unique_keys_task.flush)
403390

404391
recorder = StandardRecorder(
405392
imp_manager,

splitio/engine/strategies/strategy_none_mode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class StrategyNoneMode(BaseStrategy):
1010
"""Debug mode strategy."""
1111

12-
def __init__(self, counter=None):
12+
def __init__(self, counter):
1313
"""
1414
Construct a strategy instance for none mode.
1515

splitio/sync/impression.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def synchronize_impressions(self):
6868

6969

7070
class ImpressionsCountSynchronizer(object):
71-
def __init__(self, impressions_api, impressions_manager):
71+
def __init__(self, impressions_api, imp_counter):
7272
"""
7373
Class constructor.
7474
@@ -79,15 +79,15 @@ def __init__(self, impressions_api, impressions_manager):
7979
8080
"""
8181
self._impressions_api = impressions_api
82-
self._impressions_manager = impressions_manager
82+
self._impressions_counter = imp_counter
8383

8484
def synchronize_counters(self):
8585
"""Send impressions from both the failed and new queues."""
8686

87-
if not isinstance(self._impressions_manager._strategy._counter, Counter):
87+
if not isinstance(self._impressions_counter, Counter):
8888
return
8989

90-
to_send = self._impressions_manager._strategy._counter.pop_all()
90+
to_send = self._impressions_counter.pop_all()
9191
if not to_send:
9292
return
9393

splitio/sync/synchronizer.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class SplitSynchronizers(object):
1414
"""SplitSynchronizers."""
1515

1616
def __init__(self, split_sync, segment_sync, impressions_sync, events_sync, # pylint:disable=too-many-arguments
17-
impressions_count_sync):
17+
impressions_count_sync, unique_keys_sync = None, clear_filter_sync = None):
1818
"""
1919
Class constructor.
2020
@@ -34,8 +34,6 @@ def __init__(self, split_sync, segment_sync, impressions_sync, events_sync, # p
3434
self._impressions_sync = impressions_sync
3535
self._events_sync = events_sync
3636
self._impressions_count_sync = impressions_count_sync
37-
38-
def set_none_sync(self, unique_keys_sync, clear_filter_sync):
3937
self._unique_keys_sync = unique_keys_sync
4038
self._clear_filter_sync = clear_filter_sync
4139

@@ -329,6 +327,7 @@ def start_periodic_data_recording(self):
329327
self._split_tasks.impressions_count_task.start()
330328
if self._split_tasks.unique_keys_task is not None:
331329
self._split_tasks.unique_keys_task.start()
330+
if self._split_tasks.clear_filter_task is not None:
332331
self._split_tasks.clear_filter_task.start()
333332

334333
def stop_periodic_data_recording(self, blocking):
@@ -346,6 +345,7 @@ def stop_periodic_data_recording(self, blocking):
346345
self._split_tasks.impressions_count_task]
347346
if self._split_tasks.unique_keys_task is not None:
348347
tasks.append(self._split_tasks.unique_keys_task)
348+
if self._split_tasks.clear_filter_task is not None:
349349
tasks.append(self._split_tasks.clear_filter_task)
350350

351351
for task in tasks:
@@ -360,6 +360,7 @@ def stop_periodic_data_recording(self, blocking):
360360
self._split_tasks.impressions_count_task.stop()
361361
if self._split_tasks.unique_keys_task is not None:
362362
self._split_tasks.unique_keys_task.stop()
363+
if self._split_tasks.clear_filter_task is not None:
363364
self._split_tasks.clear_filter_task.stop()
364365

365366
def kill_split(self, split_name, default_treatment, change_number):
@@ -376,8 +377,6 @@ def kill_split(self, split_name, default_treatment, change_number):
376377
self._split_synchronizers.split_sync.kill_split(split_name, default_treatment,
377378
change_number)
378379

379-
380-
381380
class LocalhostSynchronizer(BaseSynchronizer):
382381
"""LocalhostSynchronizer."""
383382

splitio/sync/unique_keys.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
class UniqueKeysSynchronizer(object):
1010
"""Unique Keys Synchronizer class."""
1111

12-
def __init__(self, impressions_sender_adapter = None, uniqe_keys_tracker = None):
12+
def __init__(self, impressions_sender_adapter, uniqe_keys_tracker):
1313
"""
1414
Initialize Unique keys synchronizer instance
1515
1616
:param uniqe_keys_tracker: instance of uniqe keys tracker
1717
:type uniqe_keys_tracker: splitio.engine.uniqur_key_tracker.UniqueKeysTracker
1818
"""
19-
_LOGGER.debug("UniqueKeysSynchronizer")
2019
self._uniqe_keys_tracker = uniqe_keys_tracker
2120
self._max_bulk_size = _UNIQUE_KEYS_MAX_BULK_SIZE
2221
self._impressions_sender_adapter = impressions_sender_adapter
@@ -73,7 +72,7 @@ def _chunks(self, keys_list):
7372
class ClearFilterSynchronizer(object):
7473
"""Clear filter class."""
7574

76-
def __init__(self, unique_keys_tracker = None):
75+
def __init__(self, unique_keys_tracker):
7776
"""
7877
Initialize Unique keys synchronizer instance
7978

tests/sync/test_impressions_count_synchronizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def test_synchronize_impressions_counts(self, mocker):
2929
counter.pop_all.return_value = counters
3030
api = mocker.Mock(spec=ImpressionsAPI)
3131
api.flush_counters.return_value = HttpResponse(200, '')
32-
impression_count_synchronizer = ImpressionsCountSynchronizer(api, ImpressionsManager(mocker.Mock(), StrategyOptimizedMode(counter)))
32+
impression_count_synchronizer = ImpressionsCountSynchronizer(api, counter)
3333
impression_count_synchronizer.synchronize_counters()
3434

3535
assert counter.pop_all.mock_calls[0] == mocker.call()

tests/tasks/test_impressions_sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def test_normal_operation(self, mocker):
6464
api = mocker.Mock(spec=ImpressionsAPI)
6565
api.flush_counters.return_value = HttpResponse(200, '')
6666
impressions_sync.ImpressionsCountSyncTask._PERIOD = 1
67-
impression_synchronizer = ImpressionsCountSynchronizer(api, ImpressionsManager(mocker.Mock(), StrategyOptimizedMode(counter)))
67+
impression_synchronizer = ImpressionsCountSynchronizer(api, counter)
6868
task = impressions_sync.ImpressionsCountSyncTask(
6969
impression_synchronizer.synchronize_counters
7070
)

tests/tasks/test_unique_keys_sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_normal_operation(self, mocker):
2222
unique_keys_tracker.track("key1", "split1")
2323
unique_keys_tracker.track("key2", "split1")
2424

25-
unique_keys_sync = UniqueKeysSynchronizer(unique_keys_tracker)
25+
unique_keys_sync = UniqueKeysSynchronizer(mocker.Mock(), unique_keys_tracker)
2626
task = UniqueKeysSyncTask(unique_keys_sync.SendAll, 1)
2727
task.start()
2828
time.sleep(2)

0 commit comments

Comments
 (0)