Skip to content

Commit

Permalink
Renaming layers to rollouts
Browse files Browse the repository at this point in the history
  • Loading branch information
aliabbasrizvi committed Aug 23, 2017
1 parent 138cb0d commit 515c3c6
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 74 deletions.
6 changes: 3 additions & 3 deletions optimizely/decision_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,9 @@ def get_variation_for_feature(self, feature, user_id, attributes=None):
'User "%s" is in variation %s of experiment %s.' % (user_id, variation.key, experiment.key))

# Next check if user is part of a rollout
if not variation and feature.layerId:
layer = self.config.get_layer_from_id(feature.layerId)
variation = self.get_variation_for_layer(layer, user_id, attributes, ignore_user_profile=True)
if not variation and feature.rolloutId:
rollout = self.config.get_layer_from_id(feature.rolloutId)
variation = self.get_variation_for_layer(rollout, user_id, attributes, ignore_user_profile=True)

return variation

Expand Down
9 changes: 4 additions & 5 deletions optimizely/entities.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ def __init__(self, id, key, status, audienceIds, variations, forcedVariations,
self.groupPolicy = groupPolicy


class Feature(BaseEntity):
class FeatureFlag(BaseEntity):

def __init__(self, id, key, experimentIds, layerId, variables, groupId=None, **kwargs):
def __init__(self, id, key, experimentIds, rolloutId, variables, groupId=None, **kwargs):
self.id = id
self.key = key
self.experimentIds = experimentIds
self.layerId = layerId
self.rolloutId = rolloutId
self.variables = variables
self.groupId = groupId

Expand All @@ -81,9 +81,8 @@ def __init__(self, id, policy, experiments, trafficAllocation, **kwargs):

class Layer(BaseEntity):

def __init__(self, id, policy, experiments, **kwargs):
def __init__(self, id, experiments, **kwargs):
self.id = id
self.policy = policy
self.experiments = experiments


Expand Down
8 changes: 4 additions & 4 deletions optimizely/project_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,16 @@ def __init__(self, datafile, logger, error_handler):
self.events = config.get('events', [])
self.attributes = config.get('attributes', [])
self.audiences = config.get('audiences', [])
self.features = config.get('features', [])
self.layers = config.get('layers', [])
self.feature_flags = config.get('featureFlags', [])
self.rollouts = config.get('rollouts', [])

# Utility maps for quick lookup
self.group_id_map = self._generate_key_map(self.groups, 'id', entities.Group)
self.experiment_key_map = self._generate_key_map(self.experiments, 'key', entities.Experiment)
self.event_key_map = self._generate_key_map(self.events, 'key', entities.Event)
self.attribute_key_map = self._generate_key_map(self.attributes, 'key', entities.Attribute)
self.audience_id_map = self._generate_key_map(self.audiences, 'id', entities.Audience)
self.layer_id_map = self._generate_key_map(self.layers, 'id', entities.Layer)
self.layer_id_map = self._generate_key_map(self.rollouts, 'id', entities.Layer)
for layer in self.layer_id_map.values():
for experiment in layer.experiments:
self.experiment_key_map[experiment['key']] = entities.Experiment(**experiment)
Expand Down Expand Up @@ -94,7 +94,7 @@ def __init__(self, datafile, logger, error_handler):
variation.variables, 'id', entities.Variation.VariableUsage
)

self.feature_key_map = self._generate_key_map(self.features, 'key', entities.Feature)
self.feature_key_map = self._generate_key_map(self.feature_flags, 'key', entities.FeatureFlag)
for feature in self.feature_key_map.values():
feature.variables = self._generate_key_map(feature.variables, 'key', entities.Variable)

Expand Down
46 changes: 22 additions & 24 deletions tests/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,11 @@ def setUp(self):
'{"name": "test_attribute", "type": "custom_attribute", "value": "test_value"}]]]',
'id': '11154'
}],
'layers': [{
'rollouts': [{
'id': '211111',
'policy': 'ordered',
'experiments': [{
'key': 'test_rollout_exp_1',
'id': '211127',
'key': '211127',
'status': 'Running',
'forcedVariations': {},
'layerId': '211111',
Expand All @@ -263,21 +263,20 @@ def setUp(self):
'entityId': '211129',
'endOfRange': 9000
}],
'id': '211127',
'variations': [{
'key': 'control',
'key': '211128',
'id': '211128'
}, {
'key': 'variation',
'key': '211129',
'id': '211129'
}]
}]
}],
'features': [{
'featureFlags': [{
'id': '91111',
'key': 'test_feature_1',
'experimentIds': ['111127'],
'layerId': '',
'rolloutId': '',
'variables': [{
'id': '127',
'key': 'is_working',
Expand All @@ -293,19 +292,19 @@ def setUp(self):
'id': '91112',
'key': 'test_feature_2',
'experimentIds': [],
'layerId': '211111',
'rolloutId': '211111',
'variables': [],
}, {
'id': '91113',
'key': 'test_feature_in_group',
'experimentIds': ['32222'],
'layerId': '',
'rolloutId': '',
'variables': [],
}, {
'id': '91114',
'key': 'test_feature_in_experiment_and_rollout',
'experimentIds': ['111127'],
'layerId': '211111',
'rolloutId': '211111',
'variables': [],
}]
}
Expand Down Expand Up @@ -480,11 +479,11 @@ def setUp(self):
'{"name": "test_attribute", "type": "custom_attribute", "value": "test_value"}]]]',
'id': '11154'
}],
'layers': [{
'rollouts': [{
'id': '211111',
'policy': 'ordered',
'experiments': [{
'key': 'test_rollout_exp_1',
'id': '211127',
'key': '211127',
'status': 'Running',
'forcedVariations': {},
'layerId': '211111',
Expand All @@ -496,37 +495,36 @@ def setUp(self):
'entityId': '211129',
'endOfRange': 9000
}],
'id': '211127',
'variations': [{
'key': 'control',
'key': '211128',
'id': '211128'
}, {
'key': 'variation',
'key': '211129',
'id': '211129'
}]
}]
}],
'features': [{
'featureFlags': [{
'id': '91111',
'key': 'test_feature_1',
'key': '91111',
'experimentIds': ['111127'],
'layerId': '',
'rolloutId': '',
'variables': [{
'id': '127',
'key': 'is_working',
'key': '127',
'defaultValue': 'true',
'type': 'boolean',
}, {
'id': '128',
'key': 'environment',
'key': '128',
'defaultValue': 'devel',
'type': 'string',
}]
}, {
'id': '91112',
'key': 'test_feature_2',
'key': '91112',
'experimentIds': [],
'layerId': '211111',
'rolloutId': '211111',
'variables': [],
}]
}
Expand Down
Loading

0 comments on commit 515c3c6

Please sign in to comment.