From 03ea013ee531795e9d71317a10e48b066c341dcb Mon Sep 17 00:00:00 2001 From: Diego Bonfigli Date: Thu, 8 May 2025 15:55:46 +0200 Subject: [PATCH] fix(posture/zones): correctly handle api errors --- sysdig/internal/client/v2/posture_controls.go | 3 +++ sysdig/internal/client/v2/posture_policies.go | 4 ++++ sysdig/internal/client/v2/posture_zones.go | 3 +++ sysdig/internal/client/v2/zones.go | 6 ++++++ 4 files changed, 16 insertions(+) diff --git a/sysdig/internal/client/v2/posture_controls.go b/sysdig/internal/client/v2/posture_controls.go index 42883c271..2dc997697 100644 --- a/sysdig/internal/client/v2/posture_controls.go +++ b/sysdig/internal/client/v2/posture_controls.go @@ -48,6 +48,9 @@ func (c *Client) GetPostureControl(ctx context.Context, id int64) (*PostureContr } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, c.ErrorFromResponse(response) + } wrapper, err := Unmarshal[SaveControlResponse](response.Body) if err != nil { return nil, err diff --git a/sysdig/internal/client/v2/posture_policies.go b/sysdig/internal/client/v2/posture_policies.go index 1d0d16ecd..e1f4a375b 100644 --- a/sysdig/internal/client/v2/posture_policies.go +++ b/sysdig/internal/client/v2/posture_policies.go @@ -28,6 +28,10 @@ func (client *Client) ListPosturePolicies(ctx context.Context) ([]PosturePolicy, } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, client.ErrorFromResponse(response) + } + resp, err := Unmarshal[PostureZonePolicyListResponse](response.Body) if err != nil { return nil, err diff --git a/sysdig/internal/client/v2/posture_zones.go b/sysdig/internal/client/v2/posture_zones.go index 263d83b1c..7a6fd245c 100644 --- a/sysdig/internal/client/v2/posture_zones.go +++ b/sysdig/internal/client/v2/posture_zones.go @@ -54,6 +54,9 @@ func (client *Client) GetPostureZone(ctx context.Context, id int) (*PostureZone, } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, client.ErrorFromResponse(response) + } wrapper, err := Unmarshal[PostureZoneResponse](response.Body) if err != nil { return nil, err diff --git a/sysdig/internal/client/v2/zones.go b/sysdig/internal/client/v2/zones.go index 52fa19955..eafd15d87 100644 --- a/sysdig/internal/client/v2/zones.go +++ b/sysdig/internal/client/v2/zones.go @@ -31,6 +31,9 @@ func (client *Client) GetZones(ctx context.Context, name string) ([]Zone, error) } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, client.ErrorFromResponse(response) + } wrapper, err := Unmarshal[ZonesWrapper](response.Body) if err != nil { return nil, err @@ -46,6 +49,9 @@ func (client *Client) GetZoneById(ctx context.Context, id int) (*Zone, error) { } defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, client.ErrorFromResponse(response) + } zone, err := Unmarshal[Zone](response.Body) if err != nil { return nil, err