11"""Storage Helper."""
22import logging
33from splitio .models import splits
4+ from splitio .models import rule_based_segments
45
56_LOGGER = logging .getLogger (__name__ )
67
@@ -58,17 +59,14 @@ def update_rule_based_segment_storage(rule_based_segment_storage, rule_based_seg
5859 for rule_based_segment in rule_based_segments :
5960 if rule_based_segment .status == splits .Status .ACTIVE :
6061 to_add .append (rule_based_segment )
61- segment_list .update (set (_get_segment_names ( rule_based_segment .excluded .get_excluded_segments () )))
62+ segment_list .update (set (rule_based_segment .excluded .get_excluded_standard_segments ( )))
6263 segment_list .update (rule_based_segment .get_condition_segment_names ())
6364 else :
6465 if rule_based_segment_storage .get (rule_based_segment .name ) is not None :
6566 to_delete .append (rule_based_segment .name )
6667
6768 rule_based_segment_storage .update (to_add , to_delete , change_number )
6869 return segment_list
69-
70- def _get_segment_names (excluded_segments ):
71- return [excluded_segment .name for excluded_segment in excluded_segments ]
7270
7371def get_standard_segment_names_in_rbs_storage (rule_based_segment_storage ):
7472 """
@@ -80,7 +78,7 @@ def get_standard_segment_names_in_rbs_storage(rule_based_segment_storage):
8078 segment_list = set ()
8179 for rb_segment in rule_based_segment_storage .get_segment_names ():
8280 rb_segment_obj = rule_based_segment_storage .get (rb_segment )
83- segment_list .update (set (_get_segment_names ( rb_segment_obj .excluded .get_excluded_segments () )))
81+ segment_list .update (set (rb_segment_obj .excluded .get_excluded_standard_segments ( )))
8482 segment_list .update (rb_segment_obj .get_condition_segment_names ())
8583
8684 return segment_list
@@ -139,7 +137,7 @@ async def update_rule_based_segment_storage_async(rule_based_segment_storage, ru
139137 for rule_based_segment in rule_based_segments :
140138 if rule_based_segment .status == splits .Status .ACTIVE :
141139 to_add .append (rule_based_segment )
142- segment_list .update (set (_get_segment_names ( rule_based_segment .excluded .get_excluded_segments () )))
140+ segment_list .update (set (rule_based_segment .excluded .get_excluded_standard_segments ( )))
143141 segment_list .update (rule_based_segment .get_condition_segment_names ())
144142 else :
145143 if await rule_based_segment_storage .get (rule_based_segment .name ) is not None :
@@ -148,6 +146,22 @@ async def update_rule_based_segment_storage_async(rule_based_segment_storage, ru
148146 await rule_based_segment_storage .update (to_add , to_delete , change_number )
149147 return segment_list
150148
149+ async def get_standard_segment_names_in_rbs_storage_async (rule_based_segment_storage ):
150+ """
151+ Retrieve a list of all standard segments names.
152+
153+ :return: Set of segment names.
154+ :rtype: Set(str)
155+ """
156+ segment_list = set ()
157+ segment_names = await rule_based_segment_storage .get_segment_names ()
158+ for rb_segment in segment_names :
159+ rb_segment_obj = await rule_based_segment_storage .get (rb_segment )
160+ segment_list .update (set (rb_segment_obj .excluded .get_excluded_standard_segments ()))
161+ segment_list .update (rb_segment_obj .get_condition_segment_names ())
162+
163+ return segment_list
164+
151165def get_valid_flag_sets (flag_sets , flag_set_filter ):
152166 """
153167 Check each flag set in given array, return it if exist in a given config flag set array, if config array is empty return all
0 commit comments