scaleway / scaleway-sdk-go

Integrate Scaleway with your Go application

Home Page:https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inconsistant error on Delete

jtherin opened this issue · comments

When not found, some resources returns a *scw.ResourceNotFoundError and some others a *scw.ResponseError with StatusCode 404.

Using branch master (df9902c) with go 1.13.5.

To reproduce:


import (
	"fmt"
	"reflect"

	"github.com/scaleway/scaleway-sdk-go/api/instance/v1"
	"github.com/scaleway/scaleway-sdk-go/scw"
)

func main() {

	client, err := scw.NewClient(
		scw.WithDefaultOrganizationID("ORGANISATION_ID"),
		scw.WithAuth("ACCESS_KEY", "SECRET_KEY"),
	)
	if err != nil {
		panic(err)
	}

	instanceApi := instance.NewAPI(client)

	err = instanceApi.DeleteServer(&instance.DeleteServerRequest{
		ServerID: "5e858181-e9c2-4f46-8f03-0197b6eb045a",
		Zone: scw.ZoneFrPar1,
	})
	if err != nil {
		fmt.Printf("[delete instance] type: %s, value: %+v\n", reflect.TypeOf(err), err)
	}

	err = instanceApi.DeleteSecurityGroup(&instance.DeleteSecurityGroupRequest{
		SecurityGroupID: "c7b2072b-f7b5-4ae0-84b1-9c3245dbabd2",
		Zone: scw.ZoneFrPar1,
	})
	if err != nil {
		fmt.Printf("[delete sg] type: %s, value: %+v\n", reflect.TypeOf(err), err)
	}
}

Result:

[delete instance] type: *scw.ResourceNotFoundError, value: scaleway-sdk-go: resource  with ID 5e858181-e9c2-4f46-8f03-0197b6eb045a is not found
[delete sg] type: *scw.ResponseError, value: scaleway-sdk-go: http error 404 Not Found: security group "c7b2072b-f7b5-4ae0-84b1-9c3245dbabd2" not found

Expected:

[delete instance] type: *scw.ResourceNotFoundError, value: scaleway-sdk-go: resource  with ID 5e858181-e9c2-4f46-8f03-0197b6eb045a is not found
[delete sg] type: *scw.ResourceNotFoundError, value: scaleway-sdk-go: resource  with ID c7b2072b-f7b5-4ae0-84b1-9c3245dbabd2 is not found