diff --git a/go.mod b/go.mod index 8a0524a1..b5434dc0 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/BurntSushi/toml v1.2.1 - github.com/cloudbase/garm-provider-common v0.0.0-20230723165408-5d5ccbe7637e + github.com/cloudbase/garm-provider-common v0.0.0-20230723225907-c058d92fd686 github.com/go-openapi/errors v0.20.4 github.com/go-openapi/runtime v0.26.0 github.com/go-openapi/strfmt v0.21.7 diff --git a/go.sum b/go.sum index 433711ef..b2f99a53 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudbase/garm-provider-common v0.0.0-20230723165408-5d5ccbe7637e h1:AHNNe59or9d67WF5muZrifFTIf3NGohzNCER1mjY8co= -github.com/cloudbase/garm-provider-common v0.0.0-20230723165408-5d5ccbe7637e/go.mod h1:RKzgL0MXkNeGfloQpE2swz/y4LWJr5+2Wd45bSXPB0k= +github.com/cloudbase/garm-provider-common v0.0.0-20230723225907-c058d92fd686 h1:WpIcNMQV6eCTfppWiylhp6+NKgKvoWhbcMyvLRlYfnc= +github.com/cloudbase/garm-provider-common v0.0.0-20230723225907-c058d92fd686/go.mod h1:RKzgL0MXkNeGfloQpE2swz/y4LWJr5+2Wd45bSXPB0k= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= diff --git a/vendor/github.com/cloudbase/garm-provider-common/cloudconfig/util.go b/vendor/github.com/cloudbase/garm-provider-common/cloudconfig/util.go index 0e75a9e4..e8b6d1f8 100644 --- a/vendor/github.com/cloudbase/garm-provider-common/cloudconfig/util.go +++ b/vendor/github.com/cloudbase/garm-provider-common/cloudconfig/util.go @@ -35,6 +35,10 @@ type CloudConfigSpec struct { // GetSpecs returns the cloud config specific extra specs from the bootstrap params. func GetSpecs(bootstrapParams commonParams.BootstrapInstance) (CloudConfigSpec, error) { var extraSpecs CloudConfigSpec + if len(bootstrapParams.ExtraSpecs) == 0 { + return extraSpecs, nil + } + if err := json.Unmarshal(bootstrapParams.ExtraSpecs, &extraSpecs); err != nil { return CloudConfigSpec{}, errors.Wrap(err, "unmarshaling extra specs") } diff --git a/vendor/github.com/cloudbase/garm-provider-common/execution/execution.go b/vendor/github.com/cloudbase/garm-provider-common/execution/execution.go index fb80ad59..448ea84e 100644 --- a/vendor/github.com/cloudbase/garm-provider-common/execution/execution.go +++ b/vendor/github.com/cloudbase/garm-provider-common/execution/execution.go @@ -4,10 +4,12 @@ import ( "bytes" "context" "encoding/json" + "errors" "fmt" "io" "os" + gErrors "github.com/cloudbase/garm-provider-common/errors" "github.com/cloudbase/garm-provider-common/params" "github.com/mattn/go-isatty" @@ -20,6 +22,18 @@ const ( ExitCodeDuplicate int = 31 ) +func ResolveErrorToExitCode(err error) int { + if err != nil { + if errors.Is(err, gErrors.ErrNotFound) { + return ExitCodeNotFound + } else if errors.Is(err, gErrors.ErrDuplicateEntity) { + return ExitCodeDuplicate + } + return 1 + } + return 0 +} + func GetEnvironment() (Environment, error) { env := Environment{ Command: ExecutionCommand(os.Getenv("GARM_COMMAND")), diff --git a/vendor/modules.txt b/vendor/modules.txt index fe6fe009..e94db1fb 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -34,7 +34,7 @@ github.com/cespare/xxhash/v2 # github.com/chzyer/readline v1.5.1 ## explicit; go 1.15 github.com/chzyer/readline -# github.com/cloudbase/garm-provider-common v0.0.0-20230723165408-5d5ccbe7637e +# github.com/cloudbase/garm-provider-common v0.0.0-20230723225907-c058d92fd686 ## explicit; go 1.20 github.com/cloudbase/garm-provider-common/cloudconfig github.com/cloudbase/garm-provider-common/defaults