From fa5d4f2674c880903c2738297b34ae3376cb8b37 Mon Sep 17 00:00:00 2001 From: Michael Derynck Date: Tue, 11 Oct 2022 12:04:33 -0600 Subject: [PATCH] Add region_slug column to organization --- engine/apps/api/serializers/organization.py | 12 +++++++++++- engine/apps/grafana_plugin/helpers/gcom.py | 3 +++ .../views/self_hosted_install.py | 1 + .../0004_organization_region_slug.py | 18 ++++++++++++++++++ .../user_management/models/organization.py | 1 + engine/apps/user_management/sync.py | 2 ++ engine/settings/base.py | 1 + 7 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 engine/apps/user_management/migrations/0004_organization_region_slug.py diff --git a/engine/apps/api/serializers/organization.py b/engine/apps/api/serializers/organization.py index 58013052..30241a45 100644 --- a/engine/apps/api/serializers/organization.py +++ b/engine/apps/api/serializers/organization.py @@ -170,4 +170,14 @@ class PluginOrganizationSerializer(serializers.ModelSerializer): class Meta: model = Organization - fields = ["pk", "stack_id", "stack_slug", "grafana_url", "org_id", "org_slug", "org_title", "grafana_token"] + fields = [ + "pk", + "stack_id", + "stack_slug", + "grafana_url", + "org_id", + "org_slug", + "org_title", + "region_slug", + "grafana_token", + ] diff --git a/engine/apps/grafana_plugin/helpers/gcom.py b/engine/apps/grafana_plugin/helpers/gcom.py index 2fbdf44b..58577fc0 100644 --- a/engine/apps/grafana_plugin/helpers/gcom.py +++ b/engine/apps/grafana_plugin/helpers/gcom.py @@ -57,6 +57,7 @@ def check_gcom_permission(token_string: str, context) -> Optional["GcomToken"]: org_id=str(instance_info["orgId"]), org_slug=instance_info["orgSlug"], org_title=instance_info["orgName"], + region_slug=instance_info["regionSlug"], gcom_token=token_string, gcom_token_org_last_time_synced=timezone.now(), ) @@ -64,6 +65,7 @@ def check_gcom_permission(token_string: str, context) -> Optional["GcomToken"]: organization.stack_slug = instance_info["slug"] organization.org_slug = instance_info["orgSlug"] organization.org_title = instance_info["orgName"] + organization.region_slug = instance_info["regionSlug"] organization.grafana_url = instance_info["url"] organization.gcom_token = token_string organization.gcom_token_org_last_time_synced = timezone.now() @@ -72,6 +74,7 @@ def check_gcom_permission(token_string: str, context) -> Optional["GcomToken"]: "stack_slug", "org_slug", "org_title", + "region_slug", "grafana_url", "gcom_token", "gcom_token_org_last_time_synced", diff --git a/engine/apps/grafana_plugin/views/self_hosted_install.py b/engine/apps/grafana_plugin/views/self_hosted_install.py index 16dbd7bc..f4159ea6 100644 --- a/engine/apps/grafana_plugin/views/self_hosted_install.py +++ b/engine/apps/grafana_plugin/views/self_hosted_install.py @@ -46,6 +46,7 @@ class SelfHostedInstallView(GrafanaHeadersMixin, APIView): org_id=org_id, org_slug=settings.SELF_HOSTED_SETTINGS["ORG_SLUG"], org_title=settings.SELF_HOSTED_SETTINGS["ORG_TITLE"], + region_slug=settings.SELF_HOSTED_SETTINGS["REGION_SLUG"], grafana_url=self.instance_context["grafana_url"], api_token=self.instance_context["grafana_token"], ) diff --git a/engine/apps/user_management/migrations/0004_organization_region_slug.py b/engine/apps/user_management/migrations/0004_organization_region_slug.py new file mode 100644 index 00000000..06f02630 --- /dev/null +++ b/engine/apps/user_management/migrations/0004_organization_region_slug.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.15 on 2022-10-11 17:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('user_management', '0003_user_hide_phone_number'), + ] + + operations = [ + migrations.AddField( + model_name='organization', + name='region_slug', + field=models.CharField(default=None, max_length=300, null=True), + ), + ] diff --git a/engine/apps/user_management/models/organization.py b/engine/apps/user_management/models/organization.py index fd37ba81..a7a8c40b 100644 --- a/engine/apps/user_management/models/organization.py +++ b/engine/apps/user_management/models/organization.py @@ -53,6 +53,7 @@ class Organization(MaintainableObject): stack_slug = models.CharField(max_length=300) org_slug = models.CharField(max_length=300) org_title = models.CharField(max_length=300) + region_slug = models.CharField(max_length=300, null=True, default=None) grafana_url = models.URLField() diff --git a/engine/apps/user_management/sync.py b/engine/apps/user_management/sync.py index 7b0c91d7..80826c5a 100644 --- a/engine/apps/user_management/sync.py +++ b/engine/apps/user_management/sync.py @@ -29,6 +29,7 @@ def sync_organization(organization): "stack_slug", "org_slug", "org_title", + "region_slug", "grafana_url", "last_time_synced", "api_token_status", @@ -47,6 +48,7 @@ def sync_instance_info(organization): organization.stack_slug = instance_info["slug"] organization.org_slug = instance_info["orgSlug"] organization.org_title = instance_info["orgName"] + organization.region_slug = instance_info["regionSlug"] organization.grafana_url = instance_info["url"] organization.gcom_token_org_last_time_synced = timezone.now() diff --git a/engine/settings/base.py b/engine/settings/base.py index d9ec9f36..cdc511f0 100644 --- a/engine/settings/base.py +++ b/engine/settings/base.py @@ -558,6 +558,7 @@ SELF_HOSTED_SETTINGS = { "ORG_ID": 100, "ORG_SLUG": "self_hosted_org", "ORG_TITLE": "Self-Hosted Organization", + "REGION_SLUG": "self_hosted_region", } GRAFANA_INCIDENT_STATIC_API_KEY = os.environ.get("GRAFANA_INCIDENT_STATIC_API_KEY", None)