From 5a5751c9ebb86ed61fb7c3beff6dbf8c4de64b7d Mon Sep 17 00:00:00 2001 From: galt Date: Tue, 1 Mar 2022 17:31:05 +0200 Subject: [PATCH 1/3] Adding 'ShieldedInstanceConfig' to ocean_gke_import resource --- service/ocean/providers/gcp/cluster.go | 63 ++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/service/ocean/providers/gcp/cluster.go b/service/ocean/providers/gcp/cluster.go index 2f8c38ae..688214f2 100644 --- a/service/ocean/providers/gcp/cluster.go +++ b/service/ocean/providers/gcp/cluster.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "io/ioutil" + "log" "net/http" "time" @@ -166,14 +167,23 @@ type InstanceTypes struct { } type LaunchSpecification struct { - Labels []*Label `json:"labels,omitempty"` - IPForwarding *bool `json:"ipForwarding,omitempty"` - Metadata []*Metadata `json:"metadata,omitempty"` - RootVolumeSizeInGB *int `json:"rootVolumeSizeInGb,omitempty"` - ServiceAccount *string `json:"serviceAccount,omitempty"` - SourceImage *string `json:"sourceImage,omitempty"` - Tags []string `json:"tags,omitempty"` - RootVolumeType *string `json:"rootVolumeType,omitempty"` + Labels []*Label `json:"labels,omitempty"` + IPForwarding *bool `json:"ipForwarding,omitempty"` + Metadata []*Metadata `json:"metadata,omitempty"` + RootVolumeSizeInGB *int `json:"rootVolumeSizeInGb,omitempty"` + ServiceAccount *string `json:"serviceAccount,omitempty"` + SourceImage *string `json:"sourceImage,omitempty"` + Tags []string `json:"tags,omitempty"` + RootVolumeType *string `json:"rootVolumeType,omitempty"` + ShieldedInstanceConfig *LaunchSpecShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"` + + forceSendFields []string + nullFields []string +} + +type LaunchSpecShieldedInstanceConfig struct { + EnableSecureBoot *bool `json:"enableSecureBoot,omitempty"` + EnableIntegrityMonitoring *bool `json:"enableIntegrityMonitoring,omitempty"` forceSendFields []string nullFields []string @@ -975,6 +985,15 @@ func (o *LaunchSpecification) SetRootVolumeType(v *string) *LaunchSpecification return o } +func (o *LaunchSpecification) SetShieldedInstanceConfig(v *LaunchSpecShieldedInstanceConfig) *LaunchSpecification { + log.Printf("in sdk 1") + if o.ShieldedInstanceConfig = v; o.ShieldedInstanceConfig == nil { + log.Printf("in sdk 2") + o.nullFields = append(o.nullFields, "ShieldedInstanceConfig") + } + return o +} + // endregion // region BackendService @@ -1340,3 +1359,31 @@ func (o *RollSpec) SetInstanceNames(v []string) *RollSpec { } // endregion + +// region ShieldedInstanceConfig + +func (o LaunchSpecShieldedInstanceConfig) MarshalJSON() ([]byte, error) { + type noMethod LaunchSpecShieldedInstanceConfig + raw := noMethod(o) + return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields) +} + +func (o *LaunchSpecShieldedInstanceConfig) SetEnableIntegrityMonitoring(v *bool) *LaunchSpecShieldedInstanceConfig { + log.Printf("in sdk 3") + if o.EnableIntegrityMonitoring = v; o.EnableIntegrityMonitoring == nil { + log.Printf("in sdk 4") + o.nullFields = append(o.nullFields, "EnableIntegrityMonitoring") + } + return o +} + +func (o *LaunchSpecShieldedInstanceConfig) SetEnableSecureBoot(v *bool) *LaunchSpecShieldedInstanceConfig { + log.Printf("in sdk 5") + if o.EnableSecureBoot = v; o.EnableSecureBoot == nil { + log.Printf("in sdk 6") + o.nullFields = append(o.nullFields, "EnableSecureBoot") + } + return o +} + +//endregion From 58aee078a3fede06922870aec92d2deb7e2eb81f Mon Sep 17 00:00:00 2001 From: galt Date: Wed, 2 Mar 2022 11:18:13 +0200 Subject: [PATCH 2/3] adding `ShieldedInstanceConfig` to ocean_gke resource --- service/ocean/providers/gcp/cluster.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/service/ocean/providers/gcp/cluster.go b/service/ocean/providers/gcp/cluster.go index 688214f2..578bd663 100644 --- a/service/ocean/providers/gcp/cluster.go +++ b/service/ocean/providers/gcp/cluster.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "io/ioutil" - "log" "net/http" "time" @@ -986,9 +985,7 @@ func (o *LaunchSpecification) SetRootVolumeType(v *string) *LaunchSpecification } func (o *LaunchSpecification) SetShieldedInstanceConfig(v *LaunchSpecShieldedInstanceConfig) *LaunchSpecification { - log.Printf("in sdk 1") if o.ShieldedInstanceConfig = v; o.ShieldedInstanceConfig == nil { - log.Printf("in sdk 2") o.nullFields = append(o.nullFields, "ShieldedInstanceConfig") } return o @@ -1369,18 +1366,14 @@ func (o LaunchSpecShieldedInstanceConfig) MarshalJSON() ([]byte, error) { } func (o *LaunchSpecShieldedInstanceConfig) SetEnableIntegrityMonitoring(v *bool) *LaunchSpecShieldedInstanceConfig { - log.Printf("in sdk 3") if o.EnableIntegrityMonitoring = v; o.EnableIntegrityMonitoring == nil { - log.Printf("in sdk 4") o.nullFields = append(o.nullFields, "EnableIntegrityMonitoring") } return o } func (o *LaunchSpecShieldedInstanceConfig) SetEnableSecureBoot(v *bool) *LaunchSpecShieldedInstanceConfig { - log.Printf("in sdk 5") if o.EnableSecureBoot = v; o.EnableSecureBoot == nil { - log.Printf("in sdk 6") o.nullFields = append(o.nullFields, "EnableSecureBoot") } return o From 56b788390da08c8bb006236b66caa956910f254e Mon Sep 17 00:00:00 2001 From: galt Date: Wed, 2 Mar 2022 11:31:05 +0200 Subject: [PATCH 3/3] remove 'extendedresourcedefinition' resource as an indepenent resource --- .../extendedresourcedefinition.go | 242 ------------------ service/extendedresourcedefinition/service.go | 36 --- 2 files changed, 278 deletions(-) delete mode 100644 service/extendedresourcedefinition/extendedresourcedefinition.go delete mode 100644 service/extendedresourcedefinition/service.go diff --git a/service/extendedresourcedefinition/extendedresourcedefinition.go b/service/extendedresourcedefinition/extendedresourcedefinition.go deleted file mode 100644 index b7f72315..00000000 --- a/service/extendedresourcedefinition/extendedresourcedefinition.go +++ /dev/null @@ -1,242 +0,0 @@ -package extendedresourcedefinition - -import ( - "context" - "encoding/json" - "io/ioutil" - "net/http" - - "github.com/spotinst/spotinst-sdk-go/spotinst" - "github.com/spotinst/spotinst-sdk-go/spotinst/client" - "github.com/spotinst/spotinst-sdk-go/spotinst/util/jsonutil" - "github.com/spotinst/spotinst-sdk-go/spotinst/util/uritemplates" -) - -type ExtendedResourceDefinition struct { - ID *string `json:"id,omitempty"` - Name *string `json:"name,omitempty"` - Mapping map[string]interface{} `json:"mapping,omitempty"` - - forceSendFields []string - nullFields []string -} - -type ListExtendedResourceDefinitionsInput struct{} - -type ListExtendedResourceDefinitionsOutput struct { - ExtendedResourceDefinitions []*ExtendedResourceDefinition `json:"extendedResourceDefinitions,omitempty"` -} - -type CreateExtendedResourceDefinitionInput struct { - ExtendedResourceDefinition *ExtendedResourceDefinition `json:"extendedResourceDefinition,omitempty"` -} - -type CreateExtendedResourceDefinitionOutput struct { - ExtendedResourceDefinition *ExtendedResourceDefinition `json:"extendedResourceDefinition,omitempty"` -} - -type ReadExtendedResourceDefinitionInput struct { - ExtendedResourceDefinitionID *string `json:"oceanExtendedResourceDefinitionId,omitempty"` -} - -type ReadExtendedResourceDefinitionOutput struct { - ExtendedResourceDefinition *ExtendedResourceDefinition `json:"extendedResourceDefinition,omitempty"` -} - -type UpdateExtendedResourceDefinitionInput struct { - ExtendedResourceDefinition *ExtendedResourceDefinition `json:"extendedResourceDefinition,omitempty"` -} - -type UpdateExtendedResourceDefinitionOutput struct { - ExtendedResourceDefinition *ExtendedResourceDefinition `json:"extendedResourceDefinition,omitempty"` -} - -type DeleteExtendedResourceDefinitionInput struct { - ExtendedResourceDefinitionID *string `json:"extendedResourceDefinitionId,omitempty"` -} - -type DeleteExtendedResourceDefinitionOutput struct{} - -func extendedResourceDefinitionFromJSON(in []byte) (*ExtendedResourceDefinition, error) { - b := new(ExtendedResourceDefinition) - if err := json.Unmarshal(in, b); err != nil { - return nil, err - } - return b, nil -} - -func extendedResourceDefinitionsFromJSON(in []byte) ([]*ExtendedResourceDefinition, error) { - var rw client.Response - if err := json.Unmarshal(in, &rw); err != nil { - return nil, err - } - out := make([]*ExtendedResourceDefinition, len(rw.Response.Items)) - if len(out) == 0 { - return out, nil - } - for i, rb := range rw.Response.Items { - b, err := extendedResourceDefinitionFromJSON(rb) - if err != nil { - return nil, err - } - out[i] = b - } - return out, nil -} - -func extendedResourceDefinitionsFromHttpResponse(resp *http.Response) ([]*ExtendedResourceDefinition, error) { - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, err - } - return extendedResourceDefinitionsFromJSON(body) -} - -func (s *ServiceOp) List(ctx context.Context, input *ListExtendedResourceDefinitionsInput) (*ListExtendedResourceDefinitionsOutput, error) { - r := client.NewRequest(http.MethodGet, "/ocean/k8s/extendedResourceDefinition") - resp, err := client.RequireOK(s.Client.Do(ctx, r)) - - if err != nil { - return nil, err - } - defer resp.Body.Close() - erds, err := extendedResourceDefinitionsFromHttpResponse(resp) - - if err != nil { - return nil, err - } - - return &ListExtendedResourceDefinitionsOutput{ExtendedResourceDefinitions: erds}, nil -} - -func (s *ServiceOp) Create(ctx context.Context, input *CreateExtendedResourceDefinitionInput) (*CreateExtendedResourceDefinitionOutput, error) { - r := client.NewRequest(http.MethodPost, "/ocean/k8s/extendedResourceDefinition") - r.Obj = input - resp, err := client.RequireOK(s.Client.Do(ctx, r)) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - erds, err := extendedResourceDefinitionsFromHttpResponse(resp) - if err != nil { - return nil, err - } - - output := new(CreateExtendedResourceDefinitionOutput) - if len(erds) > 0 { - output.ExtendedResourceDefinition = erds[0] - } - - return output, nil -} - -func (s *ServiceOp) Read(ctx context.Context, input *ReadExtendedResourceDefinitionInput) (*ReadExtendedResourceDefinitionOutput, error) { - path, err := uritemplates.Expand("/ocean/k8s/extendedResourceDefinition/{oceanExtendedResourceDefinitionId}", uritemplates.Values{ - "oceanExtendedResourceDefinitionId": spotinst.StringValue(input.ExtendedResourceDefinitionID), - }) - if err != nil { - return nil, err - } - - r := client.NewRequest(http.MethodGet, path) - resp, err := client.RequireOK(s.Client.Do(ctx, r)) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - erds, err := extendedResourceDefinitionsFromHttpResponse(resp) - if err != nil { - return nil, err - } - - output := new(ReadExtendedResourceDefinitionOutput) - if len(erds) > 0 { - output.ExtendedResourceDefinition = erds[0] - } - - return output, nil -} - -func (s *ServiceOp) Update(ctx context.Context, input *UpdateExtendedResourceDefinitionInput) (*UpdateExtendedResourceDefinitionOutput, error) { - path, err := uritemplates.Expand("/ocean/k8s/extendedResourceDefinition/{oceanExtendedResourceDefinitionId}", uritemplates.Values{ - "oceanExtendedResourceDefinitionId": spotinst.StringValue(input.ExtendedResourceDefinition.ID), - }) - if err != nil { - return nil, err - } - - // We do not need the ID anymore so let's drop it. - input.ExtendedResourceDefinition.ID = nil - - r := client.NewRequest(http.MethodPut, path) - r.Obj = input - - resp, err := client.RequireOK(s.Client.Do(ctx, r)) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - erds, err := extendedResourceDefinitionsFromHttpResponse(resp) - if err != nil { - return nil, err - } - - output := new(UpdateExtendedResourceDefinitionOutput) - if len(erds) > 0 { - output.ExtendedResourceDefinition = erds[0] - } - - return output, nil -} - -func (s *ServiceOp) Delete(ctx context.Context, input *DeleteExtendedResourceDefinitionInput) (*DeleteExtendedResourceDefinitionOutput, error) { - path, err := uritemplates.Expand("/ocean/k8s/extendedResourceDefinition/{oceanExtendedResourceDefinitionId}", uritemplates.Values{ - "oceanExtendedResourceDefinitionId": spotinst.StringValue(input.ExtendedResourceDefinitionID), - }) - if err != nil { - return nil, err - } - - r := client.NewRequest(http.MethodDelete, path) - resp, err := client.RequireOK(s.Client.Do(ctx, r)) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - return &DeleteExtendedResourceDefinitionOutput{}, nil -} - -// region ExtendedResourceDefinition - -func (o ExtendedResourceDefinition) MarshalJSON() ([]byte, error) { - type noMethod ExtendedResourceDefinition - raw := noMethod(o) - return jsonutil.MarshalJSON(raw, o.forceSendFields, o.nullFields) -} - -func (o *ExtendedResourceDefinition) SetId(v *string) *ExtendedResourceDefinition { - if o.ID = v; o.ID == nil { - o.nullFields = append(o.nullFields, "ID") - } - return o -} - -func (o *ExtendedResourceDefinition) SetName(v *string) *ExtendedResourceDefinition { - if o.Name = v; o.Name == nil { - o.nullFields = append(o.nullFields, "Name") - } - return o -} - -func (o *ExtendedResourceDefinition) SetMapping(v map[string]interface{}) *ExtendedResourceDefinition { - if o.Mapping = v; o.Mapping == nil { - o.nullFields = append(o.nullFields, "Mapping") - } - return o -} - -// endregion diff --git a/service/extendedresourcedefinition/service.go b/service/extendedresourcedefinition/service.go deleted file mode 100644 index 08c2183a..00000000 --- a/service/extendedresourcedefinition/service.go +++ /dev/null @@ -1,36 +0,0 @@ -package extendedresourcedefinition - -import ( - "context" - - "github.com/spotinst/spotinst-sdk-go/spotinst" - "github.com/spotinst/spotinst-sdk-go/spotinst/client" - "github.com/spotinst/spotinst-sdk-go/spotinst/session" -) - -// Service provides the API operation methods for making requests to endpoints -// of the Spotinst API. See this package's package overview docs for details on -// the service. -type Service interface { - List(context.Context, *ListExtendedResourceDefinitionsInput) (*ListExtendedResourceDefinitionsOutput, error) - Create(context.Context, *CreateExtendedResourceDefinitionInput) (*CreateExtendedResourceDefinitionOutput, error) - Read(context.Context, *ReadExtendedResourceDefinitionInput) (*ReadExtendedResourceDefinitionOutput, error) - Update(context.Context, *UpdateExtendedResourceDefinitionInput) (*UpdateExtendedResourceDefinitionOutput, error) - Delete(context.Context, *DeleteExtendedResourceDefinitionInput) (*DeleteExtendedResourceDefinitionOutput, error) -} - -type ServiceOp struct { - Client *client.Client -} - -var _ Service = &ServiceOp{} - -func New(sess *session.Session, cfgs ...*spotinst.Config) *ServiceOp { - cfg := &spotinst.Config{} - cfg.Merge(sess.Config) - cfg.Merge(cfgs...) - - return &ServiceOp{ - Client: client.New(sess.Config), - } -}