diff --git a/openstack/aom/v1/icagents/requests.go b/openstack/aom/v1/icagents/requests.go new file mode 100644 index 000000000..bc54db56c --- /dev/null +++ b/openstack/aom/v1/icagents/requests.go @@ -0,0 +1,34 @@ +package icagents + +import ( + "github.com/huaweicloud/golangsdk" +) + +type CreateOptsBuilder interface { + ToIcAgentIstallMap() (map[string]interface{}, error) +} + +// Installing parameters for ICagent in cce cluster +type InstallParam struct { + // The ID of Cluster + ClusterId string `json:"clusterId" required:"true"` + // Namespace for agent + NameSpace string `json:"nameSpace" required:"true"` +} + +// ToIcAgentIstallMap builds a create request body from InstallParam. +func (installParam InstallParam) ToIcAgentIstallMap() (map[string]interface{}, error) { + return golangsdk.BuildRequestBody(installParam, "") +} + +// Create accepts a CreateOpts struct and uses the values to intall ic agent in cluster. +func Create(c *golangsdk.ServiceClient, opts CreateOptsBuilder) (r CreateResult) { + b, err := opts.ToIcAgentIstallMap() + if err != nil { + r.Err = err + return + } + reqOpt := &golangsdk.RequestOpts{OkCodes: []int{200}} + _, r.Err = c.Post(rootURL(c), b, &r.Body, reqOpt) + return +} diff --git a/openstack/aom/v1/icagents/results.go b/openstack/aom/v1/icagents/results.go new file mode 100644 index 000000000..b3902ddb6 --- /dev/null +++ b/openstack/aom/v1/icagents/results.go @@ -0,0 +1,12 @@ +package icagents + +import ( + "github.com/huaweicloud/golangsdk" +) + +type commonResult struct { + golangsdk.Result +} +type CreateResult struct { + commonResult +} diff --git a/openstack/aom/v1/icagents/urls.go b/openstack/aom/v1/icagents/urls.go new file mode 100644 index 000000000..2abc42a89 --- /dev/null +++ b/openstack/aom/v1/icagents/urls.go @@ -0,0 +1,11 @@ +package icagents + +import "github.com/huaweicloud/golangsdk" + +const ( + rootPath = "agents" +) + +func rootURL(client *golangsdk.ServiceClient) string { + return client.ServiceURL(rootPath) +}