Skip to content

Commit 8599f99

Browse files
committed
updated api commons, split and telemetry classes
1 parent 14a7266 commit 8599f99

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

splitio/api/commons.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class FetchOptions(object):
77
"""Fetch Options object."""
88

9-
def __init__(self, cache_control_headers=False, change_number=None):
9+
def __init__(self, cache_control_headers=False, change_number=None, sets=None):
1010
"""
1111
Class constructor.
1212
@@ -15,9 +15,13 @@ def __init__(self, cache_control_headers=False, change_number=None):
1515
1616
:param change_number: ChangeNumber to use for bypassing CDN in request.
1717
:type change_number: int
18+
19+
:param sets: list of flag sets
20+
:type sets: list
1821
"""
1922
self._cache_control_headers = cache_control_headers
2023
self._change_number = change_number
24+
self._sets = sets
2125

2226
@property
2327
def cache_control_headers(self):
@@ -29,12 +33,19 @@ def change_number(self):
2933
"""Return change number."""
3034
return self._change_number
3135

36+
@property
37+
def sets(self):
38+
"""Return sets."""
39+
return self._sets
40+
3241
def __eq__(self, other):
3342
"""Match between other options."""
3443
if self._cache_control_headers != other._cache_control_headers:
3544
return False
3645
if self._change_number != other._change_number:
3746
return False
47+
if self._sets != other._sets:
48+
return False
3849
return True
3950

4051

@@ -62,4 +73,6 @@ def build_fetch(change_number, fetch_options, metadata):
6273
extra_headers[_CACHE_CONTROL] = _CACHE_CONTROL_NO_CACHE
6374
if fetch_options.change_number is not None:
6475
query['till'] = fetch_options.change_number
76+
if fetch_options.sets is not None:
77+
query['sets'] = fetch_options.sets
6578
return query, extra_headers

splitio/api/splits.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def fetch_splits(self, change_number, fetch_options):
5757
if 200 <= response.status_code < 300:
5858
return json.loads(response.body)
5959
else:
60+
if response.status_code == 414:
61+
_LOGGER.error('Error fetching feature flags; the amount of flag sets provided are too big, causing uri length error.')
6062
raise APIException(response.body, response.status_code)
6163
except HttpClientException as exc:
6264
_LOGGER.error('Error fetching feature flags because an exception was raised by the HTTPClient')
@@ -109,6 +111,8 @@ async def fetch_splits(self, change_number, fetch_options):
109111
if 200 <= response.status_code < 300:
110112
return json.loads(response.body)
111113
else:
114+
if response.status_code == 414:
115+
_LOGGER.error('Error fetching feature flags; the amount of flag sets provided are too big, causing uri length error.')
112116
raise APIException(response.body, response.status_code)
113117
except HttpClientException as exc:
114118
_LOGGER.error('Error fetching feature flags because an exception was raised by the HTTPClient')

splitio/api/telemetry.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ def record_init(self, configs):
7171
'Error posting init config because an exception was raised by the HTTPClient'
7272
)
7373
_LOGGER.debug('Error: ', exc_info=True)
74-
raise APIException('Init config data not flushed properly.') from exc
7574

7675
def record_stats(self, stats):
7776
"""
@@ -162,7 +161,6 @@ async def record_init(self, configs):
162161
'Error posting init config because an exception was raised by the HTTPClient'
163162
)
164163
_LOGGER.debug('Error: ', exc_info=True)
165-
raise APIException('Init config data not flushed properly.') from exc
166164

167165
async def record_stats(self, stats):
168166
"""

0 commit comments

Comments
 (0)