Skip to content

Commit 9b60cbc

Browse files
authored
down: idempotent delete (#4627)
This addresses the incorrect behavior of: when deleting a resource group in `azd down`, azd currently fails. A delete on a resource group that does not exist should result in a no-opt. Fixes #4628
1 parent ef05268 commit 9b60cbc

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

cli/azd/pkg/azapi/resource_service.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package azapi
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67

8+
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
79
"github.com/Azure/azure-sdk-for-go/sdk/azcore/arm"
810
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
911
"github.com/azure/azure-dev/cli/azd/pkg/account"
@@ -194,6 +196,11 @@ func (rs *ResourceService) DeleteResourceGroup(ctx context.Context, subscription
194196
}
195197

196198
poller, err := client.BeginDelete(ctx, resourceGroupName, nil)
199+
var respErr *azcore.ResponseError
200+
if errors.As(err, &respErr) && respErr.StatusCode == 404 { // Resource group is already deleted
201+
return nil
202+
}
203+
197204
if err != nil {
198205
return fmt.Errorf("beginning resource group deletion: %w", err)
199206
}

0 commit comments

Comments
 (0)