Skip to content

Commit 84b5f57

Browse files
authored
Merge pull request #484 from splitio/revert-483-flagset-storage-redis
Revert "Updated redis storage to reflect flagset filter"
2 parents ddf9881 + 7e316c9 commit 84b5f57

File tree

3 files changed

+3
-65
lines changed

3 files changed

+3
-65
lines changed

splitio/api/telemetry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ def record_init(self, configs):
7676
'Error posting init config because an exception was raised by the HTTPClient'
7777
)
7878
_LOGGER.debug('Error: ', exc_info=True)
79+
raise APIException('Init config data not flushed properly.') from exc
7980

8081
def record_stats(self, stats):
8182
"""

splitio/storage/redis.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,7 @@ def get(self, feature_flag_name): # pylint: disable=method-hidden
8989
raw = self._redis.get(self._get_key(feature_flag_name))
9090
_LOGGER.debug("Fetchting Feature flag [%s] from redis" % feature_flag_name)
9191
_LOGGER.debug(raw)
92-
if raw is None:
93-
return None
94-
95-
feature_flag = splits.from_raw(json.loads(raw))
96-
if self.flag_set_filter.intersect(feature_flag.sets):
97-
return feature_flag
98-
99-
return None
92+
return splits.from_raw(json.loads(raw)) if raw is not None else None
10093
except RedisAdapterException:
10194
_LOGGER.error('Error fetching feature flag from storage')
10295
_LOGGER.debug('Error: ', exc_info=True)
@@ -213,9 +206,6 @@ def get_split_names(self):
213206
:return: List of feature flag names.
214207
:rtype: list(str)
215208
"""
216-
if self.flag_set_filter.should_filter:
217-
return self.get_feature_flags_by_sets(self.flag_set_filter.flag_sets)
218-
219209
try:
220210
keys = self._redis.keys(self._get_key('*'))
221211
_LOGGER.debug("Fetchting feature flag names from redis: %s" % keys)
@@ -239,12 +229,7 @@ def get_all_splits(self):
239229
:return: List of all feature flags in cache.
240230
:rtype: list(splitio.models.splits.Split)
241231
"""
242-
if self.flag_set_filter.should_filter:
243-
keys = self.get_feature_flags_by_sets(self.flag_set_filter.flag_sets)
244-
else:
245-
keys = self._redis.keys(self._get_key('*'))
246-
if keys == []:
247-
return []
232+
keys = self._redis.keys(self._get_key('*'))
248233
to_return = []
249234
try:
250235
_LOGGER.debug("Fetchting all feature flags from redis: %s" % keys)

tests/storage/test_redis.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
from splitio.models.events import Event, EventWrapper
1616
from splitio.models.telemetry import MethodExceptions, MethodLatencies, TelemetryConfig, MethodExceptionsAndLatencies
1717
from splitio.storage import FlagSetsFilter
18-
from tests.integration import splits_json
19-
2018

2119
class RedisSplitStorageTests(object):
2220
"""Redis split storage test cases."""
@@ -189,52 +187,6 @@ def test_flag_sets(self, mocker):
189187
storage2 = RedisSplitStorage(adapter, True, 1, ['set2', 'set3'])
190188
assert storage2.flag_set_filter.flag_sets == set({'set2', 'set3'})
191189

192-
def test_fetching_split_with_flag_set(self, mocker):
193-
"""Test retrieving a split works."""
194-
adapter = mocker.Mock(spec=RedisAdapter)
195-
adapter.get.return_value = json.dumps(splits_json["splitChange1_1"]["splits"][0])
196-
adapter.keys.return_value = ['SPLIT_1', 'SPLIT_2']
197-
198-
def mget(keys):
199-
if keys == ['SPLIT_2']:
200-
return [json.dumps(splits_json["splitChange1_1"]["splits"][0])]
201-
if keys == ['SPLIT_2', 'SPLIT_1']:
202-
return [json.dumps(splits_json["splitChange1_1"]["splits"][0]), json.dumps(splits_json["splitChange1_1"]["splits"][1])]
203-
adapter.mget = mget
204-
205-
storage = RedisSplitStorage(adapter, config_flag_sets=['set_1'])
206-
207-
def get_feature_flags_by_sets(flag_sets):
208-
if flag_sets=={'set_1'}:
209-
return []
210-
if flag_sets=={'set2'}:
211-
return ['SPLIT_2']
212-
if flag_sets=={'set2', 'set1'}:
213-
return ['SPLIT_2', 'SPLIT_1']
214-
storage.get_feature_flags_by_sets = get_feature_flags_by_sets
215-
216-
assert storage.get('SPLIT_2') == None
217-
assert storage.get_split_names() == []
218-
assert storage.get_all_splits() == []
219-
220-
storage = RedisSplitStorage(adapter, config_flag_sets=['set2'])
221-
storage.get_feature_flags_by_sets = get_feature_flags_by_sets
222-
assert storage.get('SPLIT_2').name == 'SPLIT_2'
223-
assert storage.get_split_names() == ['SPLIT_2']
224-
splits = storage.get_all_splits()
225-
assert splits[0].name == 'SPLIT_2'
226-
assert len(splits) == 1
227-
228-
storage = RedisSplitStorage(adapter, config_flag_sets=['set2', 'set1'])
229-
storage.get_feature_flags_by_sets = get_feature_flags_by_sets
230-
assert storage.get('SPLIT_2').name == 'SPLIT_2'
231-
assert storage.get_split_names() == ['SPLIT_2', 'SPLIT_1']
232-
splits = storage.get_all_splits()
233-
assert splits[0].name == 'SPLIT_2'
234-
assert splits[1].name == 'SPLIT_1'
235-
assert len(splits) == 2
236-
237-
238190
class RedisSegmentStorageTests(object):
239191
"""Redis segment storage test cases."""
240192

0 commit comments

Comments
 (0)