Skip to content

Commit

Permalink
feat (AAP-29049) - before deleting credentials check if event streams…
Browse files Browse the repository at this point in the history
… attached (#997)
  • Loading branch information
hsong-rh committed Aug 9, 2024
1 parent 1b82470 commit 1c610ff
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/aap_eda/api/serializers/eda_credential.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,9 @@ def get_references(eda_credential: models.EdaCredential) -> list[dict]:
resources = []

used_activations = eda_credential.activations.all()
used_webhooks = models.Webhook.objects.filter(
eda_credential=eda_credential
)
used_decision_environments = models.DecisionEnvironment.objects.filter(
eda_credential=eda_credential
)
Expand All @@ -202,6 +205,15 @@ def get_references(eda_credential: models.EdaCredential) -> list[dict]:
}
resources.append(resource)

for webhook in used_webhooks:
resource = {
"type": "Webhook",
"id": webhook.id,
"name": webhook.name,
"url": (f"api/eda/v1/webhooks/{webhook.id}/"),
}
resources.append(resource)

for decision_environment in used_decision_environments:
resource = {
"type": "DecisionEnvironment",
Expand Down
17 changes: 17 additions & 0 deletions tests/integration/api/test_eda_credential.py
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,23 @@ def test_delete_credential_with_project_reference(
) in response.data["detail"]


@pytest.mark.django_db
def test_delete_credential_with_webhook_reference(
default_webhook: models.Webhook,
admin_client: APIClient,
preseed_credential_types,
):
eda_credential = default_webhook.eda_credential
response = admin_client.delete(
f"{api_url_v1}/eda-credentials/{eda_credential.id}/"
)
assert response.status_code == status.HTTP_409_CONFLICT
assert (
f"Credential {eda_credential.name} is being referenced by other "
"resources and cannot be deleted"
) in response.data["detail"]


@pytest.mark.django_db
def test_delete_credential_with_activation_reference(
default_activation: models.Activation,
Expand Down

0 comments on commit 1c610ff

Please sign in to comment.