diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-03-13 16:43:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-13 16:43:00 -0400 |
commit | 24496cd0b278352b44e9411d924185e306fa346b (patch) | |
tree | 171f670e432b02309d0963fae811aec079fc128e /vendor/github.com/goamz/goamz/ecs | |
parent | 3b081bda080eceeb05c63e74cf2803821f1330ab (diff) | |
download | chat-24496cd0b278352b44e9411d924185e306fa346b.tar.gz chat-24496cd0b278352b44e9411d924185e306fa346b.tar.bz2 chat-24496cd0b278352b44e9411d924185e306fa346b.zip |
Removing goamz (#5753)
Diffstat (limited to 'vendor/github.com/goamz/goamz/ecs')
-rw-r--r-- | vendor/github.com/goamz/goamz/ecs/ecs.go | 1075 | ||||
-rw-r--r-- | vendor/github.com/goamz/goamz/ecs/ecs_test.go | 806 | ||||
-rw-r--r-- | vendor/github.com/goamz/goamz/ecs/responses_test.go | 637 |
3 files changed, 0 insertions, 2518 deletions
diff --git a/vendor/github.com/goamz/goamz/ecs/ecs.go b/vendor/github.com/goamz/goamz/ecs/ecs.go deleted file mode 100644 index 89c7243d4..000000000 --- a/vendor/github.com/goamz/goamz/ecs/ecs.go +++ /dev/null @@ -1,1075 +0,0 @@ -// -// ecs: This package provides types and functions to interact with the AWS EC2 Container Service API -// -// Depends on https://github.com/goamz/goamz -// -// Author Boyan Dimitrov <boyann@gmail.com> -// - -package ecs - -import ( - "encoding/xml" - "fmt" - "log" - "net/http" - "net/http/httputil" - "net/url" - "strconv" - "strings" - "time" - - "github.com/goamz/goamz/aws" -) - -const debug = false - -var timeNow = time.Now - -// ECS contains the details of the AWS region to perform operations against. -type ECS struct { - aws.Auth - aws.Region -} - -// New creates a new ECS Client. -func New(auth aws.Auth, region aws.Region) *ECS { - return &ECS{auth, region} -} - -// ---------------------------------------------------------------------------- -// Request dispatching logic. - -// Error encapsulates an error returned by the AWS ECS API. -// -// See http://goo.gl/VZGuC for more details. -type Error struct { - // HTTP status code (200, 403, ...) - StatusCode int - // ECS error code ("UnsupportedOperation", ...) - Code string - // The error type - Type string - // The human-oriented error message - Message string - RequestId string `xml:"RequestID"` -} - -func (err *Error) Error() string { - if err.Code == "" { - return err.Message - } - - return fmt.Sprintf("%s (%s)", err.Message, err.Code) -} - -type xmlErrors struct { - RequestId string `xml:"RequestId"` - Errors []Error `xml:"Error"` -} - -func (e *ECS) query(params map[string]string, resp interface{}) error { - params["Version"] = "2014-11-13" - data := strings.NewReader(multimap(params).Encode()) - - hreq, err := http.NewRequest("POST", e.Region.ECSEndpoint+"/", data) - if err != nil { - return err - } - - hreq.Header.Set("Content-Type", "application/x-www-form-urlencoded; param=value") - - token := e.Auth.Token() - if token != "" { - hreq.Header.Set("X-Amz-Security-Token", token) - } - - signer := aws.NewV4Signer(e.Auth, "ecs", e.Region) - signer.Sign(hreq) - - if debug { - log.Printf("%v -> {\n", hreq) - } - r, err := http.DefaultClient.Do(hreq) - - if err != nil { - log.Printf("Error calling Amazon %v", err) - return err - } - - defer r.Body.Close() - - if debug { - dump, _ := httputil.DumpResponse(r, true) - log.Printf("response:\n") - log.Printf("%v\n}\n", string(dump)) - } - if r.StatusCode != 200 { - return buildError(r) - } - err = xml.NewDecoder(r.Body).Decode(resp) - return err -} - -func buildError(r *http.Response) error { - var ( - err Error - errors xmlErrors - ) - xml.NewDecoder(r.Body).Decode(&errors) - if len(errors.Errors) > 0 { - err = errors.Errors[0] - } - - err.RequestId = errors.RequestId - err.StatusCode = r.StatusCode - if err.Message == "" { - err.Message = r.Status - } - return &err -} - -func multimap(p map[string]string) url.Values { - q := make(url.Values, len(p)) - for k, v := range p { - q[k] = []string{v} - } - return q -} - -func makeParams(action string) map[string]string { - params := make(map[string]string) - params["Action"] = action - return params -} - -func addParamsList(params map[string]string, label string, ids []string) { - for i, id := range ids { - params[label+"."+strconv.Itoa(i+1)] = id - } -} - -// ---------------------------------------------------------------------------- -// ECS types and related functions. - -// SimpleResp is the beic response from most actions. -type SimpleResp struct { - XMLName xml.Name - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// Cluster encapsulates the cluster datatype -// -// See -type Cluster struct { - ClusterArn string `xml:"clusterArn"` - ClusterName string `xml:"clusterName"` - Status string `xml:"status"` -} - -// CreateClusterReq encapsulates the createcluster req params -type CreateClusterReq struct { - ClusterName string -} - -// CreateClusterResp encapsulates the createcluster response -type CreateClusterResp struct { - Cluster Cluster `xml:"CreateClusterResult>cluster"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// CreateCluster creates a new Amazon ECS cluster. By default, your account -// will receive a default cluster when you launch your first container instance -func (e *ECS) CreateCluster(req *CreateClusterReq) (resp *CreateClusterResp, err error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("CreateCluster") - params["clusterName"] = req.ClusterName - - resp = new(CreateClusterResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// Resource describes the resources available for a container instance. -type Resource struct { - DoubleValue float64 `xml:"doubleValue"` - IntegerValue int32 `xml:"integerValue"` - LongValue int64 `xml:"longValue"` - Name string `xml:"name"` - StringSetValue []string `xml:"stringSetValue>member"` - Type string `xml:"type"` -} - -// ContainerInstance represents n Amazon EC2 instance that is running -// the Amazon ECS agent and has been registered with a cluster -type ContainerInstance struct { - AgentConnected bool `xml:"agentConnected"` - ContainerInstanceArn string `xml:"containerInstanceArn"` - Ec2InstanceId string `xml:"ec2InstanceId"` - RegisteredResources []Resource `xml:"registeredResources>member"` - RemainingResources []Resource `xml:"remainingResources>member"` - Status string `xml:"status"` -} - -// DeregisterContainerInstanceReq encapsulates DeregisterContainerInstance request params -type DeregisterContainerInstanceReq struct { - Cluster string - // arn:aws:ecs:region:aws_account_id:container-instance/container_instance_UUID. - ContainerInstance string - Force bool -} - -// DeregisterContainerInstanceResp encapsulates DeregisterContainerInstance response -type DeregisterContainerInstanceResp struct { - ContainerInstance ContainerInstance `xml:"DeregisterContainerInstanceResult>containerInstance"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DeregisterContainerInstance deregisters an Amazon ECS container instance from the specified cluster -func (e *ECS) DeregisterContainerInstance(req *DeregisterContainerInstanceReq) ( - resp *DeregisterContainerInstanceResp, err error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DeregisterContainerInstance") - params["containerInstance"] = req.ContainerInstance - params["force"] = strconv.FormatBool(req.Force) - - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - - resp = new(DeregisterContainerInstanceResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// PortMapping encapsulates the PortMapping data type -type PortMapping struct { - ContainerPort int32 `xml:containerPort` - HostPort int32 `xml:hostPort` -} - -// KeyValuePair encapsulates the KeyValuePair data type -type KeyValuePair struct { - Name string `xml:"name"` - Value string `xml:"value"` -} - -// MountPoint encapsulates the MountPoint data type -type MountPoint struct { - ContainerPath string `xml:"containerPath"` - ReadOnly bool `xml:"readOnly"` - SourceVolume string `xml:"sourceVolume"` -} - -// VolumeFrom encapsulates the VolumeFrom data type -type VolumeFrom struct { - ReadOnly bool `xml:"readOnly"` - SourceContainer string `xml:"sourceContainer"` -} - -// HostVolumeProperties encapsulates the HostVolumeProperties data type -type HostVolumeProperties struct { - SourcePath string `xml:"sourcePath"` -} - -// Volume encapsulates the Volume data type -type Volume struct { - Host HostVolumeProperties `xml:"host"` - Name string `xml:"name"` -} - -// ContainerDefinition encapsulates the container definition type -// Container definitions are used in task definitions to describe -// the different containers that are launched as part of a task -type ContainerDefinition struct { - Command []string `xml:"command>member"` - Cpu int32 `xml:"cpu"` - EntryPoint []string `xml:"entryPoint>member"` - Environment []KeyValuePair `xml:"environment>member"` - Essential bool `xml:"essential"` - Image string `xml:"image"` - Links []string `xml:"links>member"` - Memory int32 `xml:"memory"` - MountPoints []MountPoint `xml:"mountPoints>member"` - Name string `xml:"name"` - PortMappings []PortMapping `xml:"portMappings>member"` - VolumesFrom []VolumeFrom `xml:"volumesFrom>member"` -} - -// TaskDefinition encapsulates the task definition type -type TaskDefinition struct { - ContainerDefinitions []ContainerDefinition `xml:"containerDefinitions>member"` - Family string `xml:"family"` - Revision int32 `xml:"revision"` - TaskDefinitionArn string `xml:"taskDefinitionArn"` - Status string `xml:"status"` - Volumes []Volume `xml:"volumes>member"` -} - -// DeregisterTaskDefinitionReq encapsulates DeregisterTaskDefinition req params -type DeregisterTaskDefinitionReq struct { - TaskDefinition string -} - -// DeregisterTaskDefinitionResp encapsuates the DeregisterTaskDefinition response -type DeregisterTaskDefinitionResp struct { - TaskDefinition TaskDefinition `xml:"DeregisterTaskDefinitionResult>taskDefinition"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DeregisterTaskDefinition deregisters the specified task definition -func (e *ECS) DeregisterTaskDefinition(req *DeregisterTaskDefinitionReq) ( - *DeregisterTaskDefinitionResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DeregisterTaskDefinition") - params["taskDefinition"] = req.TaskDefinition - - resp := new(DeregisterTaskDefinitionResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// Failure encapsulates the failure type -type Failure struct { - Arn string `xml:"arn"` - Reason string `xml:"reason"` -} - -// DescribeClustersReq encapsulates DescribeClusters req params -type DescribeClustersReq struct { - Clusters []string -} - -// DescribeClustersResp encapsuates the DescribeClusters response -type DescribeClustersResp struct { - Clusters []Cluster `xml:"DescribeClustersResult>clusters>member"` - Failures []Failure `xml:"DescribeClustersResult>failures>member"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DescribeClusters describes one or more of your clusters -func (e *ECS) DescribeClusters(req *DescribeClustersReq) (*DescribeClustersResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DescribeClusters") - if len(req.Clusters) > 0 { - addParamsList(params, "clusters.member", req.Clusters) - } - - resp := new(DescribeClustersResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// DescribeContainerInstancesReq ecapsulates DescribeContainerInstances req params -type DescribeContainerInstancesReq struct { - Cluster string - ContainerInstances []string -} - -// DescribeContainerInstancesResp ecapsulates DescribeContainerInstances response -type DescribeContainerInstancesResp struct { - ContainerInstances []ContainerInstance `xml:"DescribeContainerInstancesResult>containerInstances>member"` - Failures []Failure `xml:"DescribeContainerInstancesResult>failures>member"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DescribeContainerInstances describes Amazon EC2 Container Service container instances -// Returns metadata about registered and remaining resources on each container instance requested -func (e *ECS) DescribeContainerInstances(req *DescribeContainerInstancesReq) ( - *DescribeContainerInstancesResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DescribeContainerInstances") - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if len(req.ContainerInstances) > 0 { - addParamsList(params, "containerInstances.member", req.ContainerInstances) - } - - resp := new(DescribeContainerInstancesResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// DescribeTaskDefinitionReq encapsulates DescribeTaskDefinition req params -type DescribeTaskDefinitionReq struct { - TaskDefinition string -} - -// DescribeTaskDefinitionResp encapsuates the DescribeTaskDefinition response -type DescribeTaskDefinitionResp struct { - TaskDefinition TaskDefinition `xml:"DescribeTaskDefinitionResult>taskDefinition"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DescribeTaskDefinition describes a task definition -func (e *ECS) DescribeTaskDefinition(req *DescribeTaskDefinitionReq) ( - *DescribeTaskDefinitionResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DescribeTaskDefinition") - params["taskDefinition"] = req.TaskDefinition - - resp := new(DescribeTaskDefinitionResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// NetworkBinding encapsulates the network binding data type -type NetworkBinding struct { - BindIp string `xml:"bindIp"` - ContainerPort int32 `xml:"containerPort"` - HostPort int32 `xml:"hostPort"` -} - -// Container encapsulates the container data type -type Container struct { - ContainerArn string `xml:"containerArn"` - ExitCode int32 `xml:"exitCode"` - LastStatus string `xml:"lastStatus"` - Name string `xml:"name"` - NetworkBindings []NetworkBinding `xml:"networkBindings>member"` - Reason string `xml:"reason"` - TaskArn string `xml:"taskArn"` -} - -// ContainerOverride encapsulates the container override data type -type ContainerOverride struct { - Command []string `xml:"command>member"` - Environment []KeyValuePair `xml:"environment>member"` - Name string `xml:"name"` -} - -// TaskOverride encapsulates the task override data type -type TaskOverride struct { - ContainerOverrides []ContainerOverride `xml:"containerOverrides>member"` -} - -// Task encapsulates the task data type -type Task struct { - ClusterArn string `xml:"clusterArn"` - ContainerInstanceArn string `xml:"containerInstanceArn"` - Containers []Container `xml:"containers>member"` - DesiredStatus string `xml:"desiredStatus"` - LastStatus string `xml:"lastStatus"` - Overrides TaskOverride `xml:"overrides"` - TaskArn string `xml:"taskArn"` - TaskDefinitionArn string `xml:"taskDefinitionArn"` -} - -// DescribeTasksReq encapsulates DescribeTasks req params -type DescribeTasksReq struct { - Cluster string - Tasks []string -} - -// DescribeTasksResp encapsuates the DescribeTasks response -type DescribeTasksResp struct { - Tasks []Task `xml:"DescribeTasksResult>tasks>member"` - Failures []Failure `xml:"DescribeTasksResult>failures>member"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DescribeTasks describes a task definition -func (e *ECS) DescribeTasks(req *DescribeTasksReq) (*DescribeTasksResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DescribeTasks") - if len(req.Tasks) > 0 { - addParamsList(params, "tasks.member", req.Tasks) - } - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - - resp := new(DescribeTasksResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// DiscoverPollEndpointReq encapsulates DiscoverPollEndpoint req params -type DiscoverPollEndpointReq struct { - ContainerInstance string -} - -// DiscoverPollEndpointResp encapsuates the DiscoverPollEndpoint response -type DiscoverPollEndpointResp struct { - Endpoint string `xml:"DiscoverPollEndpointResult>endpoint"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// DiscoverPollEndpoint returns an endpoint for the Amazon EC2 Container Service agent -// to poll for updates -func (e *ECS) DiscoverPollEndpoint(req *DiscoverPollEndpointReq) ( - *DiscoverPollEndpointResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("DiscoverPollEndpoint") - if req.ContainerInstance != "" { - params["containerInstance"] = req.ContainerInstance - } - - resp := new(DiscoverPollEndpointResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// ListClustersReq encapsulates ListClusters req params -type ListClustersReq struct { - MaxResults int32 - NextToken string -} - -// ListClustersResp encapsuates the ListClusters response -type ListClustersResp struct { - ClusterArns []string `xml:"ListClustersResult>clusterArns>member"` - NextToken string `xml:"ListClustersResult>nextToken"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// ListClusters returns a list of existing clusters -func (e *ECS) ListClusters(req *ListClustersReq) ( - *ListClustersResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("ListClusters") - if req.MaxResults > 0 { - params["maxResults"] = strconv.Itoa(int(req.MaxResults)) - } - if req.NextToken != "" { - params["nextToken"] = req.NextToken - } - - resp := new(ListClustersResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// ListContainerInstancesReq encapsulates ListContainerInstances req params -type ListContainerInstancesReq struct { - Cluster string - MaxResults int32 - NextToken string -} - -// ListContainerInstancesResp encapsuates the ListContainerInstances response -type ListContainerInstancesResp struct { - ContainerInstanceArns []string `xml:"ListContainerInstancesResult>containerInstanceArns>member"` - NextToken string `xml:"ListContainerInstancesResult>nextToken"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// ListContainerInstances returns a list of container instances in a specified cluster. -func (e *ECS) ListContainerInstances(req *ListContainerInstancesReq) ( - *ListContainerInstancesResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("ListContainerInstances") - if req.MaxResults > 0 { - params["maxResults"] = strconv.Itoa(int(req.MaxResults)) - } - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.NextToken != "" { - params["nextToken"] = req.NextToken - } - - resp := new(ListContainerInstancesResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// ListTaskDefinitionsReq encapsulates ListTaskDefinitions req params -type ListTaskDefinitionsReq struct { - FamilyPrefix string - MaxResults int32 - NextToken string -} - -// ListTaskDefinitionsResp encapsuates the ListTaskDefinitions response -type ListTaskDefinitionsResp struct { - TaskDefinitionArns []string `xml:"ListTaskDefinitionsResult>taskDefinitionArns>member"` - NextToken string `xml:"ListTaskDefinitionsResult>nextToken"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// ListTaskDefinitions Returns a list of task definitions that are registered to your account. -func (e *ECS) ListTaskDefinitions(req *ListTaskDefinitionsReq) ( - *ListTaskDefinitionsResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("ListTaskDefinitions") - if req.MaxResults > 0 { - params["maxResults"] = strconv.Itoa(int(req.MaxResults)) - } - if req.FamilyPrefix != "" { - params["familyPrefix"] = req.FamilyPrefix - } - if req.NextToken != "" { - params["nextToken"] = req.NextToken - } - - resp := new(ListTaskDefinitionsResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// ListTasksReq encapsulates ListTasks req params -type ListTasksReq struct { - Cluster string - ContainerInstance string - Family string - MaxResults int32 - NextToken string -} - -// ListTasksResp encapsuates the ListTasks response -type ListTasksResp struct { - TaskArns []string `xml:"ListTasksResult>taskArns>member"` - NextToken string `xml:"ListTasksResult>nextToken"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// ListTasks Returns a list of tasks for a specified cluster. -// You can filter the results by family name or by a particular container instance -// with the family and containerInstance parameters. -func (e *ECS) ListTasks(req *ListTasksReq) ( - *ListTasksResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("ListTasks") - if req.MaxResults > 0 { - params["maxResults"] = strconv.Itoa(int(req.MaxResults)) - } - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.ContainerInstance != "" { - params["containerInstance"] = req.ContainerInstance - } - if req.Family != "" { - params["family"] = req.Family - } - if req.NextToken != "" { - params["nextToken"] = req.NextToken - } - - resp := new(ListTasksResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// RegisterContainerInstanceReq encapsulates RegisterContainerInstance req params -type RegisterContainerInstanceReq struct { - Cluster string - InstanceIdentityDocument string - InstanceIdentityDocumentSignature string - TotalResources []Resource -} - -// DeregisterContainerInstanceResp encapsulates RegisterContainerInstance response -type RegisterContainerInstanceResp struct { - ContainerInstance ContainerInstance `xml:"RegisterContainerInstanceResult>containerInstance"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// RegisterContainerInstance registers an Amazon EC2 instance into the specified cluster. -// This instance will become available to place containers on. -func (e *ECS) RegisterContainerInstance(req *RegisterContainerInstanceReq) ( - resp *RegisterContainerInstanceResp, err error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("RegisterContainerInstance") - if req.InstanceIdentityDocument != "" { - params["instanceIdentityDocument"] = req.InstanceIdentityDocument - } - if req.InstanceIdentityDocumentSignature != "" { - params["instanceIdentityDocumentSignature"] = req.InstanceIdentityDocumentSignature - } - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - // Marshal Resources - for i, r := range req.TotalResources { - key := fmt.Sprintf("totalResources.member.%d", i+1) - params[fmt.Sprintf("%s.doubleValue", key)] = strconv.FormatFloat(r.DoubleValue, 'f', 1, 64) - params[fmt.Sprintf("%s.integerValue", key)] = strconv.Itoa(int(r.IntegerValue)) - params[fmt.Sprintf("%s.longValue", key)] = strconv.Itoa(int(r.LongValue)) - params[fmt.Sprintf("%s.name", key)] = r.Name - params[fmt.Sprintf("%s.type", key)] = r.Type - for k, sv := range r.StringSetValue { - params[fmt.Sprintf("%s.stringSetValue.member.%d", key, k+1)] = sv - } - } - - resp = new(RegisterContainerInstanceResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// RegisterTaskDefinitionReq encapsulates RegisterTaskDefinition req params -type RegisterTaskDefinitionReq struct { - Family string - ContainerDefinitions []ContainerDefinition - Volumes []Volume -} - -// RegisterTaskDefinitionResp encapsulates RegisterTaskDefinition response -type RegisterTaskDefinitionResp struct { - TaskDefinition TaskDefinition `xml:"RegisterTaskDefinitionResult>taskDefinition"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// RegisterTaskDefinition registers a new task definition from the supplied family and containerDefinitions. -func (e *ECS) RegisterTaskDefinition(req *RegisterTaskDefinitionReq) ( - resp *RegisterTaskDefinitionResp, err error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - params := makeParams("RegisterTaskDefinition") - if req.Family != "" { - params["family"] = req.Family - } - - // Marshal Container Definitions - for i, c := range req.ContainerDefinitions { - key := fmt.Sprintf("containerDefinitions.member.%d", i+1) - params[fmt.Sprintf("%s.cpu", key)] = strconv.Itoa(int(c.Cpu)) - params[fmt.Sprintf("%s.essential", key)] = strconv.FormatBool(c.Essential) - params[fmt.Sprintf("%s.image", key)] = c.Image - params[fmt.Sprintf("%s.memory", key)] = strconv.Itoa(int(c.Memory)) - params[fmt.Sprintf("%s.name", key)] = c.Name - - for k, cmd := range c.Command { - params[fmt.Sprintf("%s.command.member.%d", key, k+1)] = cmd - } - for k, ep := range c.EntryPoint { - params[fmt.Sprintf("%s.entryPoint.member.%d", key, k+1)] = ep - } - for k, env := range c.Environment { - params[fmt.Sprintf("%s.environment.member.%d.name", key, k+1)] = env.Name - params[fmt.Sprintf("%s.environment.member.%d.value", key, k+1)] = env.Value - } - for k, l := range c.Links { - params[fmt.Sprintf("%s.links.member.%d", key, k+1)] = l - } - for k, p := range c.PortMappings { - params[fmt.Sprintf("%s.portMappings.member.%d.containerPort", key, k+1)] = strconv.Itoa(int(p.ContainerPort)) - params[fmt.Sprintf("%s.portMappings.member.%d.hostPort", key, k+1)] = strconv.Itoa(int(p.HostPort)) - } - for k, m := range c.MountPoints { - params[fmt.Sprintf("%s.mountPoints.member.%d.containerPath", key, k+1)] = m.ContainerPath - params[fmt.Sprintf("%s.mountPoints.member.%d.readOnly", key, k+1)] = strconv.FormatBool(m.ReadOnly) - params[fmt.Sprintf("%s.mountPoints.member.%d.sourceVolume", key, k+1)] = m.SourceVolume - } - for k, v := range c.VolumesFrom { - params[fmt.Sprintf("%s.volumesFrom.member.%d.readOnly", key, k+1)] = strconv.FormatBool(v.ReadOnly) - params[fmt.Sprintf("%s.volumesFrom.member.%d.sourceContainer", key, k+1)] = v.SourceContainer - } - } - - for k, v := range req.Volumes { - params[fmt.Sprintf("volumes.member.%d.name", k+1)] = v.Name - params[fmt.Sprintf("volumes.member.%d.host.sourcePath", k+1)] = v.Host.SourcePath - } - - resp = new(RegisterTaskDefinitionResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// RunTaskReq encapsulates RunTask req params -type RunTaskReq struct { - Cluster string - Count int32 - Overrides TaskOverride - TaskDefinition string -} - -// RunTaskResp encapsuates the RunTask response -type RunTaskResp struct { - Tasks []Task `xml:"RunTaskResult>tasks>member"` - Failures []Failure `xml:"RunTaskResult>failures>member"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// RunTask Start a task using random placement and the default Amazon ECS scheduler. -// If you want to use your own scheduler or place a task on a specific container instance, -// use StartTask instead. -func (e *ECS) RunTask(req *RunTaskReq) (*RunTaskResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("RunTask") - if req.Count > 0 { - params["count"] = strconv.Itoa(int(req.Count)) - } - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.TaskDefinition != "" { - params["taskDefinition"] = req.TaskDefinition - } - - for i, co := range req.Overrides.ContainerOverrides { - key := fmt.Sprintf("overrides.containerOverrides.member.%d", i+1) - params[fmt.Sprintf("%s.name", key)] = co.Name - for k, cmd := range co.Command { - params[fmt.Sprintf("%s.command.member.%d", key, k+1)] = cmd - } - for k, env := range co.Environment { - params[fmt.Sprintf("%s.environment.member.%d.name", key, k+1)] = env.Name - params[fmt.Sprintf("%s.environment.member.%d.value", key, k+1)] = env.Value - } - } - - resp := new(RunTaskResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// StartTaskReq encapsulates StartTask req params -type StartTaskReq struct { - Cluster string - ContainerInstances []string - Overrides TaskOverride - TaskDefinition string -} - -// StartTaskResp encapsuates the StartTask response -type StartTaskResp struct { - Tasks []Task `xml:"StartTaskResult>tasks>member"` - Failures []Failure `xml:"StartTaskResult>failures>member"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// StartTask Starts a new task from the specified task definition on the specified -// container instance or instances. If you want to use the default Amazon ECS scheduler -// to place your task, use RunTask instead. -func (e *ECS) StartTask(req *StartTaskReq) (*StartTaskResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("StartTask") - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.TaskDefinition != "" { - params["taskDefinition"] = req.TaskDefinition - } - for i, ci := range req.ContainerInstances { - params[fmt.Sprintf("containerInstances.member.%d", i+1)] = ci - } - for i, co := range req.Overrides.ContainerOverrides { - key := fmt.Sprintf("overrides.containerOverrides.member.%d", i+1) - params[fmt.Sprintf("%s.name", key)] = co.Name - for k, cmd := range co.Command { - params[fmt.Sprintf("%s.command.member.%d", key, k+1)] = cmd - } - } - - resp := new(StartTaskResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// StopTaskReq encapsulates StopTask req params -type StopTaskReq struct { - Cluster string - Task string -} - -// StopTaskResp encapsuates the StopTask response -type StopTaskResp struct { - Task Task `xml:"StopTaskResult>task"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// StopTask stops a running task -func (e *ECS) StopTask(req *StopTaskReq) (*StopTaskResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("StopTask") - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.Task != "" { - params["task"] = req.Task - } - - resp := new(StopTaskResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// SubmitContainerStateChangeReq encapsulates SubmitContainerStateChange req params -type SubmitContainerStateChangeReq struct { - Cluster string - ContainerName string - ExitCode int32 - NetworkBindings []NetworkBinding - Reason string - Status string - Task string -} - -// SubmitContainerStateChangeResp encapsuates the SubmitContainerStateChange response -type SubmitContainerStateChangeResp struct { - Acknowledgment string `xml:"SubmitContainerStateChangeResult>acknowledgment"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// SubmitContainerStateChange is used to acknowledge that a container changed states. -// Note: This action is only used by the Amazon EC2 Container Service agent, -// and it is not intended for use outside of the agent. -func (e *ECS) SubmitContainerStateChange(req *SubmitContainerStateChangeReq) ( - *SubmitContainerStateChangeResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("SubmitContainerStateChange") - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - if req.ContainerName != "" { - params["containerName"] = req.ContainerName - } - if req.Reason != "" { - params["reason"] = req.Reason - } - if req.Status != "" { - params["status"] = req.Status - } - if req.Task != "" { - params["task"] = req.Task - } - for i, nb := range req.NetworkBindings { - key := fmt.Sprintf("networkBindings.member.%d", i+1) - params[fmt.Sprintf("%s.bindIp", key)] = nb.BindIp - params[fmt.Sprintf("%s.containerPort", key)] = strconv.Itoa(int(nb.ContainerPort)) - params[fmt.Sprintf("%s.hostPort", key)] = strconv.Itoa(int(nb.HostPort)) - } - params["exitCode"] = strconv.Itoa(int(req.ExitCode)) - - resp := new(SubmitContainerStateChangeResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} - -// SubmitTaskStateChangeReq encapsulates SubmitTaskStateChange req params -type SubmitTaskStateChangeReq struct { - Cluster string - Reason string - Status string - Task string -} - -// SubmitTaskStateChangeResp encapsuates the SubmitTaskStateChange response -type SubmitTaskStateChangeResp struct { - Acknowledgment string `xml:"SubmitTaskStateChangeResult>acknowledgment"` - RequestId string `xml:"ResponseMetadata>RequestId"` -} - -// SubmitTaskStateChange is used to acknowledge that a task changed states. -// Note: This action is only used by the Amazon EC2 Container Service agent, -// and it is not intended for use outside of the agent. -func (e *ECS) SubmitTaskStateChange(req *SubmitTaskStateChangeReq) ( - *SubmitTaskStateChangeResp, error) { - if req == nil { - return nil, fmt.Errorf("The req params cannot be nil") - } - - params := makeParams("SubmitTaskStateChange") - if req.Cluster != "" { - params["cluster"] = req.Cluster - } - - if req.Reason != "" { - params["reason"] = req.Reason - } - if req.Status != "" { - params["status"] = req.Status - } - if req.Task != "" { - params["task"] = req.Task - } - - resp := new(SubmitTaskStateChangeResp) - if err := e.query(params, resp); err != nil { - return nil, err - } - return resp, nil -} diff --git a/vendor/github.com/goamz/goamz/ecs/ecs_test.go b/vendor/github.com/goamz/goamz/ecs/ecs_test.go deleted file mode 100644 index 7fe4a74ae..000000000 --- a/vendor/github.com/goamz/goamz/ecs/ecs_test.go +++ /dev/null @@ -1,806 +0,0 @@ -package ecs - -import ( - "testing" - - . "gopkg.in/check.v1" - - "github.com/goamz/goamz/aws" - "github.com/goamz/goamz/testutil" -) - -func Test(t *testing.T) { - TestingT(t) -} - -var _ = Suite(&S{}) - -type S struct { - ecs *ECS -} - -var testServer = testutil.NewHTTPServer() - -var mockTest bool - -func (s *S) SetUpSuite(c *C) { - testServer.Start() - auth := aws.Auth{AccessKey: "abc", SecretKey: "123"} - s.ecs = New(auth, aws.Region{ECSEndpoint: testServer.URL}) -} - -func (s *S) TearDownTest(c *C) { - testServer.Flush() -} - -// -------------------------------------------------------------------------- -// Detailed Unit Tests - -func (s *S) TestCreateCluster(c *C) { - testServer.Response(200, nil, CreateClusterResponse) - req := &CreateClusterReq{ - ClusterName: "default", - } - resp, err := s.ecs.CreateCluster(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "CreateCluster") - c.Assert(values.Get("clusterName"), Equals, "default") - - c.Assert(resp.Cluster.ClusterArn, Equals, "arn:aws:ecs:region:aws_account_id:cluster/default") - c.Assert(resp.Cluster.ClusterName, Equals, "default") - c.Assert(resp.Cluster.Status, Equals, "ACTIVE") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDeregisterContainerInstance(c *C) { - testServer.Response(200, nil, DeregisterContainerInstanceResponse) - req := &DeregisterContainerInstanceReq{ - Cluster: "default", - ContainerInstance: "uuid", - Force: true, - } - resp, err := s.ecs.DeregisterContainerInstance(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DeregisterContainerInstance") - c.Assert(values.Get("cluster"), Equals, "default") - c.Assert(values.Get("containerInstance"), Equals, "uuid") - c.Assert(values.Get("force"), Equals, "true") - - expectedResource := []Resource{ - { - DoubleValue: 0.0, - IntegerValue: 2048, - LongValue: 0, - Name: "CPU", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 3955, - LongValue: 0, - Name: "MEMORY", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 0, - LongValue: 0, - Name: "PORTS", - StringSetValue: []string{"2376", "22", "51678", "2375"}, - Type: "STRINGSET", - }, - } - - c.Assert(resp.ContainerInstance.AgentConnected, Equals, false) - c.Assert(resp.ContainerInstance.ContainerInstanceArn, Equals, "arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID") - c.Assert(resp.ContainerInstance.Status, Equals, "INACTIVE") - c.Assert(resp.ContainerInstance.Ec2InstanceId, Equals, "instance_id") - c.Assert(resp.ContainerInstance.RegisteredResources, DeepEquals, expectedResource) - c.Assert(resp.ContainerInstance.RemainingResources, DeepEquals, expectedResource) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDeregisterTaskDefinition(c *C) { - testServer.Response(200, nil, DeregisterTaskDefinitionResponse) - req := &DeregisterTaskDefinitionReq{ - TaskDefinition: "sleep360:2", - } - resp, err := s.ecs.DeregisterTaskDefinition(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DeregisterTaskDefinition") - c.Assert(values.Get("taskDefinition"), Equals, "sleep360:2") - - expected := TaskDefinition{ - Family: "sleep360", - Revision: 2, - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - ContainerDefinitions: []ContainerDefinition{ - { - Command: []string{"sleep", "360"}, - Cpu: 10, - EntryPoint: []string{"/bin/sh"}, - Environment: []KeyValuePair{ - { - Name: "envVar", - Value: "foo", - }, - }, - Essential: true, - Image: "busybox", - Memory: 10, - Name: "sleep", - }, - }, - } - - c.Assert(resp.TaskDefinition, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDescribeClusters(c *C) { - testServer.Response(200, nil, DescribeClustersResponse) - req := &DescribeClustersReq{ - Clusters: []string{"test", "default"}, - } - resp, err := s.ecs.DescribeClusters(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DescribeClusters") - c.Assert(values.Get("clusters.member.1"), Equals, "test") - c.Assert(values.Get("clusters.member.2"), Equals, "default") - - expected := []Cluster{ - { - ClusterName: "test", - ClusterArn: "arn:aws:ecs:us-east-1:aws_account_id:cluster/test", - Status: "ACTIVE", - }, - { - ClusterName: "default", - ClusterArn: "arn:aws:ecs:us-east-1:aws_account_id:cluster/default", - Status: "ACTIVE", - }, - } - - c.Assert(resp.Clusters, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDescribeContainerInstances(c *C) { - testServer.Response(200, nil, DescribeContainerInstancesResponse) - req := &DescribeContainerInstancesReq{ - Cluster: "test", - ContainerInstances: []string{"arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID"}, - } - resp, err := s.ecs.DescribeContainerInstances(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DescribeContainerInstances") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("containerInstances.member.1"), - Equals, "arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID") - - expected := []ContainerInstance{ - ContainerInstance{ - AgentConnected: true, - ContainerInstanceArn: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID", - Status: "ACTIVE", - Ec2InstanceId: "instance_id", - RegisteredResources: []Resource{ - { - DoubleValue: 0.0, - IntegerValue: 2048, - LongValue: 0, - Name: "CPU", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 3955, - LongValue: 0, - Name: "MEMORY", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 0, - LongValue: 0, - Name: "PORTS", - StringSetValue: []string{"2376", "22", "51678", "2375"}, - Type: "STRINGSET", - }, - }, - RemainingResources: []Resource{ - { - DoubleValue: 0.0, - IntegerValue: 2048, - LongValue: 0, - Name: "CPU", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 3955, - LongValue: 0, - Name: "MEMORY", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 0, - LongValue: 0, - Name: "PORTS", - StringSetValue: []string{"2376", "22", "51678", "2375"}, - Type: "STRINGSET", - }, - }, - }, - } - - c.Assert(resp.ContainerInstances, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDescribeTaskDefinition(c *C) { - testServer.Response(200, nil, DescribeTaskDefinitionResponse) - req := &DescribeTaskDefinitionReq{ - TaskDefinition: "sleep360:2", - } - resp, err := s.ecs.DescribeTaskDefinition(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DescribeTaskDefinition") - c.Assert(values.Get("taskDefinition"), Equals, "sleep360:2") - - expected := TaskDefinition{ - Family: "sleep360", - Revision: 2, - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - ContainerDefinitions: []ContainerDefinition{ - { - Command: []string{"sleep", "360"}, - Cpu: 10, - EntryPoint: []string{"/bin/sh"}, - Environment: []KeyValuePair{ - { - Name: "envVar", - Value: "foo", - }, - }, - Essential: true, - Image: "busybox", - Memory: 10, - Name: "sleep", - }, - }, - } - - c.Assert(resp.TaskDefinition, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDescribeTasks(c *C) { - testServer.Response(200, nil, DescribeTasksResponse) - req := &DescribeTasksReq{ - Cluster: "test", - Tasks: []string{"arn:aws:ecs:us-east-1:aws_account_id:task/UUID"}, - } - resp, err := s.ecs.DescribeTasks(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DescribeTasks") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("tasks.member.1"), - Equals, "arn:aws:ecs:us-east-1:aws_account_id:task/UUID") - - expected := []Task{ - Task{ - Containers: []Container{ - { - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - Name: "sleep", - ContainerArn: "arn:aws:ecs:us-east-1:aws_account_id:container/UUID", - LastStatus: "RUNNING", - }, - }, - Overrides: TaskOverride{ - ContainerOverrides: []ContainerOverride{ - { - Name: "sleep", - }, - }, - }, - DesiredStatus: "RUNNING", - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - ContainerInstanceArn: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID", - LastStatus: "RUNNING", - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - }, - } - - c.Assert(resp.Tasks, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestDiscoverPollEndpoint(c *C) { - testServer.Response(200, nil, DiscoverPollEndpointResponse) - req := &DiscoverPollEndpointReq{ - ContainerInstance: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID", - } - resp, err := s.ecs.DiscoverPollEndpoint(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "DiscoverPollEndpoint") - c.Assert(values.Get("containerInstance"), - Equals, "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID") - - c.Assert(resp.Endpoint, Equals, "https://ecs-x-1.us-east-1.amazonaws.com/") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestListClusters(c *C) { - testServer.Response(200, nil, ListClustersResponse) - req := &ListClustersReq{ - MaxResults: 2, - NextToken: "Token_UUID", - } - resp, err := s.ecs.ListClusters(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "ListClusters") - c.Assert(values.Get("maxResults"), Equals, "2") - c.Assert(values.Get("nextToken"), Equals, "Token_UUID") - - c.Assert(resp.ClusterArns, DeepEquals, []string{"arn:aws:ecs:us-east-1:aws_account_id:cluster/default", - "arn:aws:ecs:us-east-1:aws_account_id:cluster/test"}) - c.Assert(resp.NextToken, Equals, "token_UUID") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestListContainerInstances(c *C) { - testServer.Response(200, nil, ListContainerInstancesResponse) - req := &ListContainerInstancesReq{ - MaxResults: 2, - NextToken: "Token_UUID", - Cluster: "test", - } - resp, err := s.ecs.ListContainerInstances(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "ListContainerInstances") - c.Assert(values.Get("maxResults"), Equals, "2") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("nextToken"), Equals, "Token_UUID") - - c.Assert(resp.ContainerInstanceArns, DeepEquals, []string{ - "arn:aws:ecs:us-east-1:aws_account_id:container-instance/uuid-1", - "arn:aws:ecs:us-east-1:aws_account_id:container-instance/uuid-2"}) - c.Assert(resp.NextToken, Equals, "token_UUID") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestListTaskDefinitions(c *C) { - testServer.Response(200, nil, ListTaskDefinitionsResponse) - req := &ListTaskDefinitionsReq{ - MaxResults: 2, - NextToken: "Token_UUID", - FamilyPrefix: "sleep360", - } - resp, err := s.ecs.ListTaskDefinitions(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "ListTaskDefinitions") - c.Assert(values.Get("maxResults"), Equals, "2") - c.Assert(values.Get("familyPrefix"), Equals, "sleep360") - c.Assert(values.Get("nextToken"), Equals, "Token_UUID") - - c.Assert(resp.TaskDefinitionArns, DeepEquals, []string{ - "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:1", - "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2"}) - c.Assert(resp.NextToken, Equals, "token_UUID") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestListTasks(c *C) { - testServer.Response(200, nil, ListTasksResponse) - req := &ListTasksReq{ - MaxResults: 2, - NextToken: "Token_UUID", - Family: "sleep360", - Cluster: "test", - ContainerInstance: "container_uuid", - } - resp, err := s.ecs.ListTasks(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "ListTasks") - c.Assert(values.Get("maxResults"), Equals, "2") - c.Assert(values.Get("family"), Equals, "sleep360") - c.Assert(values.Get("containerInstance"), Equals, "container_uuid") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("nextToken"), Equals, "Token_UUID") - - c.Assert(resp.TaskArns, DeepEquals, []string{ - "arn:aws:ecs:us-east-1:aws_account_id:task/uuid_1", - "arn:aws:ecs:us-east-1:aws_account_id:task/uuid_2"}) - c.Assert(resp.NextToken, Equals, "token_UUID") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestRegisterContainerInstance(c *C) { - testServer.Response(200, nil, RegisterContainerInstanceResponse) - - resources := []Resource{ - { - DoubleValue: 0.0, - IntegerValue: 2048, - LongValue: 0, - Name: "CPU", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 3955, - LongValue: 0, - Name: "MEMORY", - Type: "INTEGER", - }, - { - DoubleValue: 0.0, - IntegerValue: 0, - LongValue: 0, - Name: "PORTS", - StringSetValue: []string{"2376", "22", "51678", "2375"}, - Type: "STRINGSET", - }, - } - - req := &RegisterContainerInstanceReq{ - Cluster: "default", - InstanceIdentityDocument: "foo", - InstanceIdentityDocumentSignature: "baz", - TotalResources: resources, - } - - resp, err := s.ecs.RegisterContainerInstance(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "RegisterContainerInstance") - c.Assert(values.Get("cluster"), Equals, "default") - c.Assert(values.Get("instanceIdentityDocument"), Equals, "foo") - c.Assert(values.Get("instanceIdentityDocumentSignature"), Equals, "baz") - c.Assert(values.Get("totalResources.member.1.doubleValue"), Equals, "0.0") - c.Assert(values.Get("totalResources.member.1.integerValue"), Equals, "2048") - c.Assert(values.Get("totalResources.member.1.longValue"), Equals, "0") - c.Assert(values.Get("totalResources.member.1.name"), Equals, "CPU") - c.Assert(values.Get("totalResources.member.1.type"), Equals, "INTEGER") - c.Assert(values.Get("totalResources.member.2.doubleValue"), Equals, "0.0") - c.Assert(values.Get("totalResources.member.2.integerValue"), Equals, "3955") - c.Assert(values.Get("totalResources.member.2.longValue"), Equals, "0") - c.Assert(values.Get("totalResources.member.2.name"), Equals, "MEMORY") - c.Assert(values.Get("totalResources.member.2.type"), Equals, "INTEGER") - c.Assert(values.Get("totalResources.member.3.doubleValue"), Equals, "0.0") - c.Assert(values.Get("totalResources.member.3.integerValue"), Equals, "0") - c.Assert(values.Get("totalResources.member.3.longValue"), Equals, "0") - c.Assert(values.Get("totalResources.member.3.name"), Equals, "PORTS") - c.Assert(values.Get("totalResources.member.3.stringSetValue.member.1"), Equals, "2376") - c.Assert(values.Get("totalResources.member.3.stringSetValue.member.2"), Equals, "22") - c.Assert(values.Get("totalResources.member.3.stringSetValue.member.3"), Equals, "51678") - c.Assert(values.Get("totalResources.member.3.stringSetValue.member.4"), Equals, "2375") - c.Assert(values.Get("totalResources.member.3.type"), Equals, "STRINGSET") - - c.Assert(resp.ContainerInstance.AgentConnected, Equals, true) - c.Assert(resp.ContainerInstance.ContainerInstanceArn, Equals, "arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID") - c.Assert(resp.ContainerInstance.Status, Equals, "ACTIVE") - c.Assert(resp.ContainerInstance.Ec2InstanceId, Equals, "instance_id") - c.Assert(resp.ContainerInstance.RegisteredResources, DeepEquals, resources) - c.Assert(resp.ContainerInstance.RemainingResources, DeepEquals, resources) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestRegisterTaskDefinition(c *C) { - testServer.Response(200, nil, RegisterTaskDefinitionResponse) - - CDefinitions := []ContainerDefinition{ - { - Command: []string{"sleep", "360"}, - Cpu: 10, - EntryPoint: []string{"/bin/sh"}, - Environment: []KeyValuePair{ - { - Name: "envVar", - Value: "foo", - }, - }, - Essential: true, - Image: "busybox", - Memory: 10, - Name: "sleep", - MountPoints: []MountPoint{ - { - ContainerPath: "/tmp/myfile", - ReadOnly: false, - SourceVolume: "/srv/myfile", - }, - { - ContainerPath: "/tmp/myfile2", - ReadOnly: true, - SourceVolume: "/srv/myfile2", - }, - }, - VolumesFrom: []VolumeFrom{ - { - ReadOnly: true, - SourceContainer: "foo", - }, - }, - }, - } - - req := &RegisterTaskDefinitionReq{ - Family: "sleep360", - ContainerDefinitions: CDefinitions, - Volumes: []Volume{ - { - Name: "/srv/myfile", - Host: HostVolumeProperties{ - SourcePath: "/srv/myfile", - }, - }, - }, - } - resp, err := s.ecs.RegisterTaskDefinition(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "RegisterTaskDefinition") - c.Assert(values.Get("containerDefinitions.member.1.command.member.1"), Equals, "sleep") - c.Assert(values.Get("containerDefinitions.member.1.command.member.2"), Equals, "360") - c.Assert(values.Get("containerDefinitions.member.1.cpu"), Equals, "10") - c.Assert(values.Get("containerDefinitions.member.1.memory"), Equals, "10") - c.Assert(values.Get("containerDefinitions.member.1.entryPoint.member.1"), Equals, "/bin/sh") - c.Assert(values.Get("containerDefinitions.member.1.environment.member.1.name"), Equals, "envVar") - c.Assert(values.Get("containerDefinitions.member.1.environment.member.1.value"), Equals, "foo") - c.Assert(values.Get("containerDefinitions.member.1.essential"), Equals, "true") - c.Assert(values.Get("containerDefinitions.member.1.image"), Equals, "busybox") - c.Assert(values.Get("containerDefinitions.member.1.memory"), Equals, "10") - c.Assert(values.Get("containerDefinitions.member.1.name"), Equals, "sleep") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.1.containerPath"), Equals, "/tmp/myfile") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.1.readOnly"), Equals, "false") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.1.sourceVolume"), Equals, "/srv/myfile") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.2.containerPath"), Equals, "/tmp/myfile2") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.2.readOnly"), Equals, "true") - c.Assert(values.Get("containerDefinitions.member.1.mountPoints.member.2.sourceVolume"), Equals, "/srv/myfile2") - c.Assert(values.Get("containerDefinitions.member.1.volumesFrom.member.1.readOnly"), Equals, "true") - c.Assert(values.Get("containerDefinitions.member.1.volumesFrom.member.1.sourceContainer"), Equals, "foo") - - c.Assert(values.Get("family"), Equals, "sleep360") - c.Assert(values.Get("volumes.member.1.name"), Equals, "/srv/myfile") - c.Assert(values.Get("volumes.member.1.host.sourcePath"), Equals, "/srv/myfile") - - expected := TaskDefinition{ - Family: "sleep360", - Revision: 2, - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - ContainerDefinitions: CDefinitions, - Volumes: []Volume{ - { - Name: "/srv/myfile", - Host: HostVolumeProperties{ - SourcePath: "/srv/myfile", - }, - }, - }, - } - - c.Assert(resp.TaskDefinition, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestRunTask(c *C) { - testServer.Response(200, nil, RunTaskResponse) - req := &RunTaskReq{ - Cluster: "test", - Count: 1, - TaskDefinition: "sleep360:2", - } - resp, err := s.ecs.RunTask(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "RunTask") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("count"), Equals, "1") - c.Assert(values.Get("taskDefinition"), Equals, "sleep360:2") - - expected := []Task{ - Task{ - Containers: []Container{ - { - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - Name: "sleep", - ContainerArn: "arn:aws:ecs:us-east-1:aws_account_id:container/UUID", - LastStatus: "RUNNING", - }, - }, - Overrides: TaskOverride{ - ContainerOverrides: []ContainerOverride{ - { - Name: "sleep", - }, - }, - }, - DesiredStatus: "RUNNING", - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - ContainerInstanceArn: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID", - LastStatus: "PENDING", - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - }, - } - - c.Assert(resp.Tasks, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestStartTask(c *C) { - testServer.Response(200, nil, StartTaskResponse) - req := &StartTaskReq{ - Cluster: "test", - ContainerInstances: []string{"containerUUID"}, - TaskDefinition: "sleep360:2", - } - resp, err := s.ecs.StartTask(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "StartTask") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("taskDefinition"), Equals, "sleep360:2") - c.Assert(values.Get("containerInstances.member.1"), Equals, "containerUUID") - - expected := []Task{ - Task{ - Containers: []Container{ - { - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - Name: "sleep", - ContainerArn: "arn:aws:ecs:us-east-1:aws_account_id:container/UUID", - LastStatus: "RUNNING", - }, - }, - Overrides: TaskOverride{ - ContainerOverrides: []ContainerOverride{ - { - Name: "sleep", - }, - }, - }, - DesiredStatus: "RUNNING", - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - ContainerInstanceArn: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID", - LastStatus: "PENDING", - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - }, - } - - c.Assert(resp.Tasks, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestStopTask(c *C) { - testServer.Response(200, nil, StopTaskResponse) - req := &StopTaskReq{ - Cluster: "test", - Task: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - } - resp, err := s.ecs.StopTask(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "StopTask") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("task"), Equals, "arn:aws:ecs:us-east-1:aws_account_id:task/UUID") - - expected := Task{ - Containers: []Container{ - { - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - Name: "sleep", - ContainerArn: "arn:aws:ecs:us-east-1:aws_account_id:container/UUID", - LastStatus: "RUNNING", - }, - }, - Overrides: TaskOverride{ - ContainerOverrides: []ContainerOverride{ - { - Name: "sleep", - }, - }, - }, - DesiredStatus: "STOPPED", - TaskArn: "arn:aws:ecs:us-east-1:aws_account_id:task/UUID", - ContainerInstanceArn: "arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID", - LastStatus: "RUNNING", - TaskDefinitionArn: "arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2", - } - - c.Assert(resp.Task, DeepEquals, expected) - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestSubmitContainerStateChange(c *C) { - testServer.Response(200, nil, SubmitContainerStateChangeResponse) - networkBindings := []NetworkBinding{ - { - BindIp: "127.0.0.1", - ContainerPort: 80, - HostPort: 80, - }, - } - req := &SubmitContainerStateChangeReq{ - Cluster: "test", - ContainerName: "container", - ExitCode: 0, - Reason: "reason", - Status: "status", - Task: "taskUUID", - NetworkBindings: networkBindings, - } - - resp, err := s.ecs.SubmitContainerStateChange(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "SubmitContainerStateChange") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("containerName"), Equals, "container") - c.Assert(values.Get("exitCode"), Equals, "0") - c.Assert(values.Get("reason"), Equals, "reason") - c.Assert(values.Get("status"), Equals, "status") - c.Assert(values.Get("task"), Equals, "taskUUID") - c.Assert(values.Get("networkBindings.member.1.bindIp"), Equals, "127.0.0.1") - c.Assert(values.Get("networkBindings.member.1.containerPort"), Equals, "80") - c.Assert(values.Get("networkBindings.member.1.hostPort"), Equals, "80") - - c.Assert(resp.Acknowledgment, Equals, "ACK") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} - -func (s *S) TestSubmitTaskStateChange(c *C) { - testServer.Response(200, nil, SubmitTaskStateChangeResponse) - req := &SubmitTaskStateChangeReq{ - Cluster: "test", - Reason: "reason", - Status: "status", - Task: "taskUUID", - } - - resp, err := s.ecs.SubmitTaskStateChange(req) - c.Assert(err, IsNil) - values := testServer.WaitRequest().PostForm - c.Assert(values.Get("Version"), Equals, "2014-11-13") - c.Assert(values.Get("Action"), Equals, "SubmitTaskStateChange") - c.Assert(values.Get("cluster"), Equals, "test") - c.Assert(values.Get("reason"), Equals, "reason") - c.Assert(values.Get("status"), Equals, "status") - c.Assert(values.Get("task"), Equals, "taskUUID") - - c.Assert(resp.Acknowledgment, Equals, "ACK") - c.Assert(resp.RequestId, Equals, "8d798a29-f083-11e1-bdfb-cb223EXAMPLE") -} diff --git a/vendor/github.com/goamz/goamz/ecs/responses_test.go b/vendor/github.com/goamz/goamz/ecs/responses_test.go deleted file mode 100644 index 6a4b0ce71..000000000 --- a/vendor/github.com/goamz/goamz/ecs/responses_test.go +++ /dev/null @@ -1,637 +0,0 @@ -package ecs - -var CreateClusterResponse = ` -<CreateClusterResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> - <CreateClusterResult> - <cluster> - <clusterArn>arn:aws:ecs:region:aws_account_id:cluster/default</clusterArn> - <clusterName>default</clusterName> - <status>ACTIVE</status> - </cluster> - </CreateClusterResult> -</CreateClusterResponse> -` -var DeregisterContainerInstanceResponse = ` -<DeregisterContainerInstanceResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> - <DeregisterContainerInstanceResult> - <containerInstance> - <agentConnected>False</agentConnected> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID</containerInstanceArn> - <ec2InstanceId>instance_id</ec2InstanceId> - <status>INACTIVE</status> - <registeredResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </registeredResources> - <remainingResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </remainingResources> - </containerInstance> - </DeregisterContainerInstanceResult> -</DeregisterContainerInstanceResponse> -` - -var DeregisterTaskDefinitionResponse = ` -<DeregisterTaskDefinitionResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <DeregisterTaskDefinitionResult> - <taskDefinition> - <revision>2</revision> - <family>sleep360</family> - <containerDefinitions> - <member> - <portMappings/> - <essential>true</essential> - <environment> - <member> - <name>envVar</name> - <value>foo</value> - </member> - </environment> - <entryPoint> - <member>/bin/sh</member> - </entryPoint> - <name>sleep</name> - <command> - <member>sleep</member> - <member>360</member> - </command> - <cpu>10</cpu> - <image>busybox</image> - <memory>10</memory> - </member> - </containerDefinitions> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </taskDefinition> - </DeregisterTaskDefinitionResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</DeregisterTaskDefinitionResponse> -` - -var DescribeClustersResponse = ` -<DescribeClustersResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <DescribeClustersResult> - <failures/> - <clusters> - <member> - <clusterName>test</clusterName> - <clusterArn>arn:aws:ecs:us-east-1:aws_account_id:cluster/test</clusterArn> - <status>ACTIVE</status> - </member> - <member> - <clusterName>default</clusterName> - <clusterArn>arn:aws:ecs:us-east-1:aws_account_id:cluster/default</clusterArn> - <status>ACTIVE</status> - </member> - </clusters> - </DescribeClustersResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</DescribeClustersResponse> -` - -var DescribeContainerInstancesResponse = ` -<DescribeContainerInstancesResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> - <DescribeContainerInstancesResult> - <failures/> - <containerInstances> - <member> - <agentConnected>true</agentConnected> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID</containerInstanceArn> - <ec2InstanceId>instance_id</ec2InstanceId> - <status>ACTIVE</status> - <registeredResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </registeredResources> - <remainingResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </remainingResources> - </member> - </containerInstances> - </DescribeContainerInstancesResult> -</DescribeContainerInstancesResponse> -` - -var DescribeTaskDefinitionResponse = ` -<DescribeTaskDefinitionResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <DescribeTaskDefinitionResult> - <taskDefinition> - <revision>2</revision> - <family>sleep360</family> - <containerDefinitions> - <member> - <portMappings/> - <essential>true</essential> - <environment> - <member> - <name>envVar</name> - <value>foo</value> - </member> - </environment> - <entryPoint> - <member>/bin/sh</member> - </entryPoint> - <name>sleep</name> - <command> - <member>sleep</member> - <member>360</member> - </command> - <cpu>10</cpu> - <image>busybox</image> - <memory>10</memory> - </member> - </containerDefinitions> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </taskDefinition> - </DescribeTaskDefinitionResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</DescribeTaskDefinitionResponse> -` - -var DescribeTasksResponse = ` -<DescribeTasksResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <DescribeTasksResult> - <failures/> - <tasks> - <member> - <containers> - <member> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <name>sleep</name> - <containerArn>arn:aws:ecs:us-east-1:aws_account_id:container/UUID</containerArn> - <networkBindings/> - <lastStatus>RUNNING</lastStatus> - </member> - </containers> - <overrides> - <containerOverrides> - <member> - <name>sleep</name> - </member> - </containerOverrides> - </overrides> - <desiredStatus>RUNNING</desiredStatus> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID</containerInstanceArn> - <lastStatus>RUNNING</lastStatus> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </member> - </tasks> - </DescribeTasksResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</DescribeTasksResponse> -` - -var DiscoverPollEndpointResponse = ` -<DiscoverPollEndpointResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <DiscoverPollEndpointResult> - <endpoint>https://ecs-x-1.us-east-1.amazonaws.com/</endpoint> - </DiscoverPollEndpointResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</DiscoverPollEndpointResponse> -` - -var ListClustersResponse = ` -<ListClustersResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ListClustersResult> - <clusterArns> - <member>arn:aws:ecs:us-east-1:aws_account_id:cluster/default</member> - <member>arn:aws:ecs:us-east-1:aws_account_id:cluster/test</member> - </clusterArns> - <nextToken>token_UUID</nextToken> - </ListClustersResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</ListClustersResponse> -` - -var ListContainerInstancesResponse = ` -<ListContainerInstancesResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ListContainerInstancesResult> - <containerInstanceArns> - <member>arn:aws:ecs:us-east-1:aws_account_id:container-instance/uuid-1</member> - <member>arn:aws:ecs:us-east-1:aws_account_id:container-instance/uuid-2</member> - </containerInstanceArns> - <nextToken>token_UUID</nextToken> - </ListContainerInstancesResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</ListContainerInstancesResponse> -` - -var ListTaskDefinitionsResponse = ` -<ListTaskDefinitionsResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ListTaskDefinitionsResult> - <taskDefinitionArns> - <member>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:1</member> - <member>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</member> - </taskDefinitionArns> - <nextToken>token_UUID</nextToken> - </ListTaskDefinitionsResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</ListTaskDefinitionsResponse> -` - -var ListTasksResponse = ` -<ListTasksResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ListTasksResult> - <taskArns> - <member>arn:aws:ecs:us-east-1:aws_account_id:task/uuid_1</member> - <member>arn:aws:ecs:us-east-1:aws_account_id:task/uuid_2</member> - </taskArns> - <nextToken>token_UUID</nextToken> - </ListTasksResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</ListTasksResponse> -` - -var RegisterContainerInstanceResponse = ` -<RegisterContainerInstanceResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> - <RegisterContainerInstanceResult> - <containerInstance> - <agentConnected>True</agentConnected> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/container_instance_UUID</containerInstanceArn> - <ec2InstanceId>instance_id</ec2InstanceId> - <status>ACTIVE</status> - <registeredResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </registeredResources> - <remainingResources> - <member> - <integerValue>2048</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>CPU</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>3955</integerValue> - <longValue>0</longValue> - <type>INTEGER</type> - <name>MEMORY</name> - <doubleValue>0.0</doubleValue> - </member> - <member> - <integerValue>0</integerValue> - <longValue>0</longValue> - <type>STRINGSET</type> - <stringSetValue> - <member>2376</member> - <member>22</member> - <member>51678</member> - <member>2375</member> - </stringSetValue> - <name>PORTS</name> - <doubleValue>0.0</doubleValue> - </member> - </remainingResources> - </containerInstance> - </RegisterContainerInstanceResult> -</RegisterContainerInstanceResponse> -` - -var RegisterTaskDefinitionResponse = ` -<RegisterTaskDefinitionResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <RegisterTaskDefinitionResult> - <taskDefinition> - <revision>2</revision> - <family>sleep360</family> - <containerDefinitions> - <member> - <portMappings/> - <essential>true</essential> - <environment> - <member> - <name>envVar</name> - <value>foo</value> - </member> - </environment> - <entryPoint> - <member>/bin/sh</member> - </entryPoint> - <name>sleep</name> - <command> - <member>sleep</member> - <member>360</member> - </command> - <cpu>10</cpu> - <image>busybox</image> - <memory>10</memory> - <mountPoints> - <member> - <containerPath>/tmp/myfile</containerPath> - <readOnly>false</readOnly> - <sourceVolume>/srv/myfile</sourceVolume> - </member> - <member> - <containerPath>/tmp/myfile2</containerPath> - <readOnly>true</readOnly> - <sourceVolume>/srv/myfile2</sourceVolume> - </member> - </mountPoints> - <volumesFrom> - <member> - <readOnly>true</readOnly> - <sourceContainer>foo</sourceContainer> - </member> - </volumesFrom> - </member> - </containerDefinitions> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - <volumes> - <member> - <name>/srv/myfile</name> - <host> - <sourcePath>/srv/myfile</sourcePath> - </host> - </member> - </volumes> - </taskDefinition> - </RegisterTaskDefinitionResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</RegisterTaskDefinitionResponse> -` - -var RunTaskResponse = ` -<RunTaskResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <RunTaskResult> - <failures/> - <tasks> - <member> - <containers> - <member> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <name>sleep</name> - <containerArn>arn:aws:ecs:us-east-1:aws_account_id:container/UUID</containerArn> - <networkBindings/> - <lastStatus>RUNNING</lastStatus> - </member> - </containers> - <overrides> - <containerOverrides> - <member> - <name>sleep</name> - </member> - </containerOverrides> - </overrides> - <desiredStatus>RUNNING</desiredStatus> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID</containerInstanceArn> - <lastStatus>PENDING</lastStatus> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </member> - </tasks> - </RunTaskResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</RunTaskResponse> -` - -var StartTaskResponse = ` -<StartTaskResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <StartTaskResult> - <failures/> - <tasks> - <member> - <containers> - <member> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <name>sleep</name> - <containerArn>arn:aws:ecs:us-east-1:aws_account_id:container/UUID</containerArn> - <networkBindings/> - <lastStatus>RUNNING</lastStatus> - </member> - </containers> - <overrides> - <containerOverrides> - <member> - <name>sleep</name> - </member> - </containerOverrides> - </overrides> - <desiredStatus>RUNNING</desiredStatus> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID</containerInstanceArn> - <lastStatus>PENDING</lastStatus> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </member> - </tasks> - </StartTaskResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</StartTaskResponse> -` - -var StopTaskResponse = ` -<StopTaskResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <StopTaskResult> - <task> - <containers> - <member> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <name>sleep</name> - <containerArn>arn:aws:ecs:us-east-1:aws_account_id:container/UUID</containerArn> - <networkBindings/> - <lastStatus>RUNNING</lastStatus> - </member> - </containers> - <overrides> - <containerOverrides> - <member> - <name>sleep</name> - </member> - </containerOverrides> - </overrides> - <desiredStatus>STOPPED</desiredStatus> - <taskArn>arn:aws:ecs:us-east-1:aws_account_id:task/UUID</taskArn> - <containerInstanceArn>arn:aws:ecs:us-east-1:aws_account_id:container-instance/UUID</containerInstanceArn> - <lastStatus>RUNNING</lastStatus> - <taskDefinitionArn>arn:aws:ecs:us-east-1:aws_account_id:task-definition/sleep360:2</taskDefinitionArn> - </task> - </StopTaskResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</StopTaskResponse> -` - -var SubmitContainerStateChangeResponse = ` -<SubmitContainerStateChangeResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <SubmitContainerStateChangeResult> - <acknowledgment>ACK</acknowledgment> - </SubmitContainerStateChangeResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</SubmitContainerStateChangeResponse> -` - -var SubmitTaskStateChangeResponse = ` -<SubmitTaskStateChangeResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/"> - <SubmitTaskStateChangeResult> - <acknowledgment>ACK</acknowledgment> - </SubmitTaskStateChangeResult> - <ResponseMetadata> - <RequestId>8d798a29-f083-11e1-bdfb-cb223EXAMPLE</RequestId> - </ResponseMetadata> -</SubmitTaskStateChangeResponse> -` |