Fix race condition in plugin auth (#2652)

# What this PR does

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
This commit is contained in:
Ildar Iskhakov 2023-07-27 15:50:33 +08:00 committed by GitHub
parent abc1c94355
commit e16677608b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -50,7 +50,8 @@ def check_gcom_permission(token_string: str, context) -> GcomToken:
name="allow_plugin_organization_signup", defaults={"boolean_value": True}
)[0].boolean_value
if allow_signup:
organization = Organization.objects.create(
# Get org from db or create a new one
organization = Organization.objects.get_or_create(
stack_id=str(instance_info["id"]),
stack_slug=instance_info["slug"],
grafana_url=instance_info["url"],
@ -60,7 +61,7 @@ def check_gcom_permission(token_string: str, context) -> GcomToken:
region_slug=instance_info["regionSlug"],
cluster_slug=instance_info["clusterSlug"],
gcom_token=token_string,
gcom_token_org_last_time_synced=timezone.now(),
defaults={"gcom_token_org_last_time_synced": timezone.now()},
)
else:
organization.stack_slug = instance_info["slug"]