diff options
| author | 2024-11-05 19:28:23 +0000 | |
|---|---|---|
| committer | 2024-11-05 19:37:36 +0000 | |
| commit | a5bec26ceb0211efe701c40efc54340531b5d815 (patch) | |
| tree | 20d0a92520686731a5aa9b102374c6959dc96263 | |
| parent | fe4906450c784d6ab9ee13a048f52f9a0cee4940 (diff) | |
Rollout edit monitor to 10% users
Simplified the logic in whether to enable edit monitor by passing the
rollout percentage directly instead of reading from a env variable as
now we do not rely on any env var to control the rollout precentage.
Test: atest edit_monitor_utils_test
Bug: 365617369
Change-Id: Ia04d5737dafe2c9715a02f84eb5d75ba6119ceb4
| -rw-r--r-- | tools/edit_monitor/daemon_manager.py | 2 | ||||
| -rw-r--r-- | tools/edit_monitor/utils.py | 22 | ||||
| -rw-r--r-- | tools/edit_monitor/utils_test.py | 41 |
3 files changed, 5 insertions, 60 deletions
diff --git a/tools/edit_monitor/daemon_manager.py b/tools/edit_monitor/daemon_manager.py index 9a0abb6097..2775b58372 100644 --- a/tools/edit_monitor/daemon_manager.py +++ b/tools/edit_monitor/daemon_manager.py @@ -84,7 +84,7 @@ class DaemonManager: "edit_monitor", self.user_name, "ENABLE_EDIT_MONITOR", - "EDIT_MONITOR_ROLLOUT_PERCENTAGE", + 10, ): logging.warning("Edit monitor is disabled, exiting...") return diff --git a/tools/edit_monitor/utils.py b/tools/edit_monitor/utils.py index 1a3275c6e2..b88949d300 100644 --- a/tools/edit_monitor/utils.py +++ b/tools/edit_monitor/utils.py @@ -21,7 +21,7 @@ def is_feature_enabled( feature_name: str, user_name: str, enable_flag: str = None, - rollout_flag: str = None, + rollout_percent: int = 100, ) -> bool: """Determine whether the given feature is enabled. @@ -46,26 +46,8 @@ def is_feature_enabled( logging.info("feature: %s is enabled", feature_name) return True - if not rollout_flag: - return True - hash_object = hashlib.sha256() hash_object.update((user_name + feature_name).encode("utf-8")) hash_number = int(hash_object.hexdigest(), 16) % 100 - roll_out_percentage = os.environ.get(rollout_flag, "0") - try: - percentage = int(roll_out_percentage) - if percentage < 0 or percentage > 100: - logging.warning( - "Rollout percentage: %s out of range, disable the feature.", - roll_out_percentage, - ) - return False - return hash_number < percentage - except ValueError: - logging.warning( - "Invalid rollout percentage: %s, disable the feature.", - roll_out_percentage, - ) - return False + return hash_number < rollout_percent diff --git a/tools/edit_monitor/utils_test.py b/tools/edit_monitor/utils_test.py index 7d7e4b207c..1c30aa1acc 100644 --- a/tools/edit_monitor/utils_test.py +++ b/tools/edit_monitor/utils_test.py @@ -46,60 +46,23 @@ class EnableFeatureTest(unittest.TestCase): ) ) - @mock.patch.dict( - os.environ, {ROLLOUT_TEST_FEATURE_FLAG: 'invalid'}, clear=True - ) - def test_feature_disabled_with_invalid_rollout_percentage(self): - self.assertFalse( - utils.is_feature_enabled( - TEST_FEATURE, - TEST_USER, - ENABLE_TEST_FEATURE_FLAG, - ROLLOUT_TEST_FEATURE_FLAG, - ) - ) - - @mock.patch.dict(os.environ, {ROLLOUT_TEST_FEATURE_FLAG: '101'}, clear=True) - def test_feature_disabled_with_rollout_percentage_too_high(self): - self.assertFalse( - utils.is_feature_enabled( - TEST_FEATURE, - TEST_USER, - ENABLE_TEST_FEATURE_FLAG, - ROLLOUT_TEST_FEATURE_FLAG, - ) - ) - - @mock.patch.dict(os.environ, {ROLLOUT_TEST_FEATURE_FLAG: '-1'}, clear=True) - def test_feature_disabled_with_rollout_percentage_too_low(self): - self.assertFalse( - utils.is_feature_enabled( - TEST_FEATURE, - TEST_USER, - ENABLE_TEST_FEATURE_FLAG, - ROLLOUT_TEST_FEATURE_FLAG, - ) - ) - - @mock.patch.dict(os.environ, {ROLLOUT_TEST_FEATURE_FLAG: '90'}, clear=True) def test_feature_enabled_with_rollout_percentage(self): self.assertTrue( utils.is_feature_enabled( TEST_FEATURE, TEST_USER, ENABLE_TEST_FEATURE_FLAG, - ROLLOUT_TEST_FEATURE_FLAG, + 90, ) ) - @mock.patch.dict(os.environ, {ROLLOUT_TEST_FEATURE_FLAG: '10'}, clear=True) def test_feature_disabled_with_rollout_percentage(self): self.assertFalse( utils.is_feature_enabled( TEST_FEATURE, TEST_USER, ENABLE_TEST_FEATURE_FLAG, - ROLLOUT_TEST_FEATURE_FLAG, + 10, ) ) |