Change labels feature flag to work per oncall org (#3493)
It's needed because anyway labels plugin provisioned per stack, not per org --------- Co-authored-by: Yulya Artyukhina <Ferril.darkdiver@gmail.com>
This commit is contained in:
parent
ea4f692646
commit
a3e3d8bc9d
4 changed files with 8 additions and 11 deletions
|
|
@ -16,18 +16,18 @@ def test_labels_feature_flag(mock_is_labels_feature_enabled_for_org, make_organi
|
|||
organization = make_organization()
|
||||
# returns True if feature flag is enabled
|
||||
assert settings.FEATURE_LABELS_ENABLED_FOR_ALL
|
||||
assert organization.id not in settings.FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS
|
||||
assert organization.id not in settings.FEATURE_LABELS_ENABLED_PER_ORG
|
||||
assert is_labels_feature_enabled(organization)
|
||||
|
||||
mock_is_labels_feature_enabled_for_org(organization.org_id)
|
||||
mock_is_labels_feature_enabled_for_org(organization.id)
|
||||
# returns True if feature flag is disabled and organization is in the feature list
|
||||
assert not settings.FEATURE_LABELS_ENABLED_FOR_ALL
|
||||
assert organization.org_id in settings.FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS
|
||||
assert organization.id in settings.FEATURE_LABELS_ENABLED_PER_ORG
|
||||
assert is_labels_feature_enabled(organization)
|
||||
|
||||
mock_is_labels_feature_enabled_for_org(12345)
|
||||
# returns False if feature flag is disabled and organization is not in the feature list
|
||||
assert organization.org_id not in settings.FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS
|
||||
assert organization.org_id not in settings.FEATURE_LABELS_ENABLED_PER_ORG
|
||||
assert not is_labels_feature_enabled(organization)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,10 +51,7 @@ def get_associating_label_model(obj_model_name: str) -> typing.Type["AssociatedL
|
|||
|
||||
|
||||
def is_labels_feature_enabled(organization: "Organization") -> bool:
|
||||
return (
|
||||
settings.FEATURE_LABELS_ENABLED_FOR_ALL
|
||||
or organization.org_id in settings.FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS # Grafana org ID, not OnCall org ID
|
||||
)
|
||||
return settings.FEATURE_LABELS_ENABLED_FOR_ALL or organization.id in settings.FEATURE_LABELS_ENABLED_PER_ORG
|
||||
|
||||
|
||||
def get_labels_dict(labelable) -> dict[str, str]:
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ def clear_ical_users_cache():
|
|||
def mock_is_labels_feature_enabled_for_org(settings):
|
||||
def _mock_is_labels_feature_enabled_for_org(org_id):
|
||||
settings.FEATURE_LABELS_ENABLED_FOR_ALL = False
|
||||
settings.FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS = [org_id]
|
||||
settings.FEATURE_LABELS_ENABLED_PER_ORG = [org_id]
|
||||
|
||||
return _mock_is_labels_feature_enabled_for_org
|
||||
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ GRAFANA_CLOUD_ONCALL_HEARTBEAT_ENABLED = getenv_boolean("GRAFANA_CLOUD_ONCALL_HE
|
|||
GRAFANA_CLOUD_NOTIFICATIONS_ENABLED = getenv_boolean("GRAFANA_CLOUD_NOTIFICATIONS_ENABLED", default=True)
|
||||
# Enable labels feature fo all organizations. This flag overrides FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS
|
||||
FEATURE_LABELS_ENABLED_FOR_ALL = getenv_boolean("FEATURE_LABELS_ENABLED_FOR_ALL", default=False)
|
||||
# Enable labels feature for organizations from the list. Use Grafana org_id, not OnCall id, for this flag
|
||||
FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS = getenv_list("FEATURE_LABELS_ENABLED_FOR_GRAFANA_ORGS", default=list())
|
||||
# Enable labels feature for organizations from the list. Use OnCall organization ID, for this flag
|
||||
FEATURE_LABELS_ENABLED_PER_ORG = getenv_list("FEATURE_LABELS_ENABLED_PER_ORG", default=list())
|
||||
|
||||
TWILIO_API_KEY_SID = os.environ.get("TWILIO_API_KEY_SID")
|
||||
TWILIO_API_KEY_SECRET = os.environ.get("TWILIO_API_KEY_SECRET")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue