summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/goamz/goamz/ecs/ecs_test.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-05-12 23:56:07 -0400
committerChristopher Speller <crspeller@gmail.com>2016-05-12 23:56:07 -0400
commit38ee83e45b4de7edf89bf9f0ef629eb4c6ad0fa8 (patch)
treea4fde09672192b97d453ad605b030bd5a10c5a45 /vendor/github.com/goamz/goamz/ecs/ecs_test.go
parent84d2482ddbff9564c9ad75b2d30af66e3ddfd44d (diff)
downloadchat-38ee83e45b4de7edf89bf9f0ef629eb4c6ad0fa8.tar.gz
chat-38ee83e45b4de7edf89bf9f0ef629eb4c6ad0fa8.tar.bz2
chat-38ee83e45b4de7edf89bf9f0ef629eb4c6ad0fa8.zip
Moving to glide
Diffstat (limited to 'vendor/github.com/goamz/goamz/ecs/ecs_test.go')
-rw-r--r--vendor/github.com/goamz/goamz/ecs/ecs_test.go806
1 files changed, 806 insertions, 0 deletions
diff --git a/vendor/github.com/goamz/goamz/ecs/ecs_test.go b/vendor/github.com/goamz/goamz/ecs/ecs_test.go
new file mode 100644
index 000000000..7fe4a74ae
--- /dev/null
+++ b/vendor/github.com/goamz/goamz/ecs/ecs_test.go
@@ -0,0 +1,806 @@
+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")
+}