From ec6458fcc5e8ae5e98dfc35d04ffd75448d62691 Mon Sep 17 00:00:00 2001 From: Chris Kuchin Date: Tue, 22 Aug 2023 11:05:01 -0600 Subject: [PATCH] Add Delete support to Site resource --- internal/bowtie/client/site.go | 11 +++++++++++ internal/bowtie/resources/site.go | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/internal/bowtie/client/site.go b/internal/bowtie/client/site.go index 6d59b2f..3144696 100644 --- a/internal/bowtie/client/site.go +++ b/internal/bowtie/client/site.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/google/uuid" + "golang.org/x/vuln/client" ) func (c *Client) ListSites() ([]Site, error) { @@ -84,6 +85,16 @@ type siteRangePayload struct { Metric int64 `json:"metric"` } +func (c *Client) DeleteSite(siteID string) error { + req, err := http.NewRequest(http.MethodDelete, c.getHostURL(fmt.Sprintf("/site/%s", siteID)), nil) + if err != nil { + return err + } + + _, err = c.doRequest(req) + return err +} + func (c *Client) CreateSiteRange(siteID, name, description, cidr string, isV4, isV6 bool, weight, metric int64) (string, error) { id := uuid.NewString() diff --git a/internal/bowtie/resources/site.go b/internal/bowtie/resources/site.go index 8a043e4..f72012d 100644 --- a/internal/bowtie/resources/site.go +++ b/internal/bowtie/resources/site.go @@ -147,7 +147,13 @@ func (s *siteResource) Delete(ctx context.Context, req resource.DeleteRequest, r return } - // TODO Implement Delete on API support + err := s.client.DeleteSite(state.ID.ValueString()) + if err != nil { + resp.Diagnostics.AddError( + "Failed deleting the site", + "Unexpected failure deleting the site: "+state.ID.ValueString()+" error: "+err.Error(), + ) + } } func (s *siteResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) {