fog-aws 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/fog/aws.rb +2 -0
- data/lib/fog/aws/ecs.rb +187 -0
- data/lib/fog/aws/models/compute/flavors.rb +10 -0
- data/lib/fog/aws/parsers/ecs/base.rb +28 -0
- data/lib/fog/aws/parsers/ecs/container_instance.rb +75 -0
- data/lib/fog/aws/parsers/ecs/create_cluster.rb +30 -0
- data/lib/fog/aws/parsers/ecs/create_service.rb +31 -0
- data/lib/fog/aws/parsers/ecs/delete_cluster.rb +30 -0
- data/lib/fog/aws/parsers/ecs/delete_service.rb +31 -0
- data/lib/fog/aws/parsers/ecs/deregister_container_instance.rb +31 -0
- data/lib/fog/aws/parsers/ecs/deregister_task_definition.rb +32 -0
- data/lib/fog/aws/parsers/ecs/describe_clusters.rb +55 -0
- data/lib/fog/aws/parsers/ecs/describe_container_instances.rb +38 -0
- data/lib/fog/aws/parsers/ecs/describe_services.rb +24 -0
- data/lib/fog/aws/parsers/ecs/describe_task_definition.rb +32 -0
- data/lib/fog/aws/parsers/ecs/describe_tasks.rb +24 -0
- data/lib/fog/aws/parsers/ecs/list_clusters.rb +27 -0
- data/lib/fog/aws/parsers/ecs/list_container_instances.rb +27 -0
- data/lib/fog/aws/parsers/ecs/list_services.rb +27 -0
- data/lib/fog/aws/parsers/ecs/list_task_definition_families.rb +27 -0
- data/lib/fog/aws/parsers/ecs/list_task_definitions.rb +27 -0
- data/lib/fog/aws/parsers/ecs/list_tasks.rb +27 -0
- data/lib/fog/aws/parsers/ecs/register_task_definition.rb +32 -0
- data/lib/fog/aws/parsers/ecs/run_task.rb +24 -0
- data/lib/fog/aws/parsers/ecs/service.rb +82 -0
- data/lib/fog/aws/parsers/ecs/start_task.rb +24 -0
- data/lib/fog/aws/parsers/ecs/stop_task.rb +23 -0
- data/lib/fog/aws/parsers/ecs/task.rb +77 -0
- data/lib/fog/aws/parsers/ecs/task_definition.rb +95 -0
- data/lib/fog/aws/parsers/ecs/update_service.rb +31 -0
- data/lib/fog/aws/requests/compute/create_vpc.rb +1 -1
- data/lib/fog/aws/requests/ecs/create_cluster.rb +64 -0
- data/lib/fog/aws/requests/ecs/create_service.rb +118 -0
- data/lib/fog/aws/requests/ecs/delete_cluster.rb +61 -0
- data/lib/fog/aws/requests/ecs/delete_service.rb +72 -0
- data/lib/fog/aws/requests/ecs/deregister_container_instance.rb +63 -0
- data/lib/fog/aws/requests/ecs/deregister_task_definition.rb +58 -0
- data/lib/fog/aws/requests/ecs/describe_clusters.rb +83 -0
- data/lib/fog/aws/requests/ecs/describe_container_instances.rb +64 -0
- data/lib/fog/aws/requests/ecs/describe_services.rb +76 -0
- data/lib/fog/aws/requests/ecs/describe_task_definition.rb +64 -0
- data/lib/fog/aws/requests/ecs/describe_tasks.rb +65 -0
- data/lib/fog/aws/requests/ecs/list_clusters.rb +45 -0
- data/lib/fog/aws/requests/ecs/list_container_instances.rb +46 -0
- data/lib/fog/aws/requests/ecs/list_services.rb +59 -0
- data/lib/fog/aws/requests/ecs/list_task_definition_families.rb +56 -0
- data/lib/fog/aws/requests/ecs/list_task_definitions.rb +55 -0
- data/lib/fog/aws/requests/ecs/list_tasks.rb +50 -0
- data/lib/fog/aws/requests/ecs/register_task_definition.rb +68 -0
- data/lib/fog/aws/requests/ecs/run_task.rb +114 -0
- data/lib/fog/aws/requests/ecs/start_task.rb +130 -0
- data/lib/fog/aws/requests/ecs/stop_task.rb +64 -0
- data/lib/fog/aws/requests/ecs/update_service.rb +81 -0
- data/lib/fog/aws/version.rb +1 -1
- data/tests/requests/compute/vpc_tests.rb +7 -0
- data/tests/requests/ecs/cluster_tests.rb +112 -0
- data/tests/requests/ecs/container_instance_tests.rb +119 -0
- data/tests/requests/ecs/helper.rb +276 -0
- data/tests/requests/ecs/sample_task_definition1.json +56 -0
- data/tests/requests/ecs/service_tests.rb +132 -0
- data/tests/requests/ecs/task_definitions_tests.rb +97 -0
- data/tests/requests/ecs/task_tests.rb +145 -0
- metadata +59 -2
@@ -0,0 +1,64 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/describe_task_definition'
|
6
|
+
|
7
|
+
# Describes a task definition
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskDefinition.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * taskDefinition <~String> - The family for the latest revision, family and revision (family:revision) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition that you want to describe.
|
11
|
+
# ==== Returns
|
12
|
+
# * response<~Excon::Response>:
|
13
|
+
# * body<~Hash>:
|
14
|
+
# * 'taskDefinition' <~Hash> - full task definition description
|
15
|
+
def describe_task_definition(params={})
|
16
|
+
request({
|
17
|
+
'Action' => 'DescribeTaskDefinition',
|
18
|
+
:parser => Fog::Parsers::AWS::ECS::DescribeTaskDefinition.new
|
19
|
+
}.merge(params))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Mock
|
24
|
+
def describe_task_definition(params={})
|
25
|
+
response = Excon::Response.new
|
26
|
+
response.status = 200
|
27
|
+
|
28
|
+
taskdef_error = "ClientException => Task Definition can not be blank."
|
29
|
+
raise Fog::AWS::ECS::Error, taskdef_error unless params['taskDefinition']
|
30
|
+
|
31
|
+
task_def_name = params['taskDefinition']
|
32
|
+
|
33
|
+
case task_def_name
|
34
|
+
when /^arn:aws:ecs:.+:\d{1,12}:task-definition\/(.+:.+)$/
|
35
|
+
result = self.data[:task_definitions].select { |t| t['taskDefinitionArn'].eql?(task_def_name) }
|
36
|
+
when /^(.+:.+)$/
|
37
|
+
result = self.data[:task_definitions].select { |t| t['taskDefinitionArn'].match(/task-definition\/#{task_def_name}/) }
|
38
|
+
else
|
39
|
+
result = self.data[:task_definitions].select { |t| t['family'].eql?(task_def_name) }
|
40
|
+
if !result.empty?
|
41
|
+
result = [] << (result.max_by { |t| t['revision'] })
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
if result.empty?
|
46
|
+
raise Fog::AWS::ECS::Error, 'ClientException => Unable to describe task definition.'
|
47
|
+
end
|
48
|
+
|
49
|
+
task_definition = result.first
|
50
|
+
|
51
|
+
response.body = {
|
52
|
+
'DescribeTaskDefinitionResult' => {
|
53
|
+
'taskDefinition' => task_definition
|
54
|
+
},
|
55
|
+
'ResponseMetadata' => {
|
56
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
57
|
+
}
|
58
|
+
}
|
59
|
+
response
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/describe_tasks'
|
6
|
+
|
7
|
+
# Describes a specified task or tasks.
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * cluster <~String> - short name or full Amazon Resource Name (ARN) of the cluster that hosts the task you want to describe
|
11
|
+
# * tasks <~Array> - space-separated list of task UUIDs or full Amazon Resource Name (ARN) entries
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
# * 'tasks' <~Array> - The list of tasks
|
16
|
+
# * 'failures' <~Array> - The list of failures (if any)
|
17
|
+
def describe_tasks(params={})
|
18
|
+
if tasks = params.delete('tasks')
|
19
|
+
params.merge!(Fog::AWS.indexed_param('tasks.member', [*tasks]))
|
20
|
+
end
|
21
|
+
|
22
|
+
request({
|
23
|
+
'Action' => 'DescribeTasks',
|
24
|
+
:parser => Fog::Parsers::AWS::ECS::DescribeTasks.new
|
25
|
+
}.merge(params))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Mock
|
30
|
+
def describe_tasks(params={})
|
31
|
+
response = Excon::Response.new
|
32
|
+
response.status = 200
|
33
|
+
|
34
|
+
unless tasks = params.delete('tasks')
|
35
|
+
msg = 'InvalidParameterException => Tasks cannot be empty.'
|
36
|
+
raise Fog::AWS::ECS::Error, msg
|
37
|
+
end
|
38
|
+
|
39
|
+
cluster = params.delete('cluster') || 'default'
|
40
|
+
|
41
|
+
result = []
|
42
|
+
[*tasks].each do |tid|
|
43
|
+
if match = tid.match(/^arn:aws:ecs:.+:\d{1,12}:task\/(.+)$/)
|
44
|
+
result = self.data[:tasks].select { |t| t['taskArn'].eql?(tid) }
|
45
|
+
else
|
46
|
+
result = self.data[:tasks].select { |t| t['taskArn'].match(/#{tid}$/) }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
tasks = result
|
51
|
+
response.body = {
|
52
|
+
'DescribeTasksResult' => {
|
53
|
+
'failures' => [],
|
54
|
+
'tasks' => tasks
|
55
|
+
},
|
56
|
+
'ResponseMetadata' => {
|
57
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
58
|
+
}
|
59
|
+
}
|
60
|
+
response
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_clusters'
|
6
|
+
|
7
|
+
# Returns a list of existing clusters
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListClusters.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * maxResults <~Integer> - The maximum number of cluster results returned by ListClusters in paginated output.
|
11
|
+
# * nextToken <~String> - The nextToken value returned from a previous paginated ListClusters request where maxResults was used.
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
# * 'ClusterArns' <~Array> - list of full Amazon Resource Name (ARN) entries for each cluster associated with your account.
|
16
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListClusters request.
|
17
|
+
def list_clusters(params={})
|
18
|
+
request({
|
19
|
+
'Action' => 'ListClusters',
|
20
|
+
:parser => Fog::Parsers::AWS::ECS::ListClusters.new
|
21
|
+
}.merge(params))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Mock
|
26
|
+
def list_clusters(params={})
|
27
|
+
response = Excon::Response.new
|
28
|
+
response.status = 200
|
29
|
+
|
30
|
+
cluster_arns = self.data[:clusters].map { |c| c['clusterArn'] }
|
31
|
+
|
32
|
+
response.body = {
|
33
|
+
'ListClustersResult' => {
|
34
|
+
'clusterArns' => cluster_arns
|
35
|
+
},
|
36
|
+
'ResponseMetadata' => {
|
37
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
38
|
+
}
|
39
|
+
}
|
40
|
+
response
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_container_instances'
|
6
|
+
|
7
|
+
# Returns a list of container instances in a specified cluster.
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * cluster <~String> - short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances you want to list.
|
11
|
+
# * maxResults <~Integer> - maximum number of container instance results returned by ListContainerInstances in paginated output.
|
12
|
+
# * nextToken <~String> - nextToken value returned from a previous paginated ListContainerInstances request where maxResults was used.
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'ContainerInstanceArns' <~Array> - list of container instance full ARN entries for each container instance associated with the specified cluster.
|
17
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListContainerInstances request.
|
18
|
+
def list_container_instances(params={})
|
19
|
+
request({
|
20
|
+
'Action' => 'ListContainerInstances',
|
21
|
+
:parser => Fog::Parsers::AWS::ECS::ListContainerInstances.new
|
22
|
+
}.merge(params))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def list_container_instances(params={})
|
28
|
+
response = Excon::Response.new
|
29
|
+
response.status = 200
|
30
|
+
|
31
|
+
instance_arns = self.data[:container_instances].map { |i| i['containerInstanceArn'] }
|
32
|
+
|
33
|
+
response.body = {
|
34
|
+
'ListContainerInstancesResult' => {
|
35
|
+
'containerInstanceArns' => instance_arns
|
36
|
+
},
|
37
|
+
'ResponseMetadata' => {
|
38
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
39
|
+
}
|
40
|
+
}
|
41
|
+
response
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_services'
|
6
|
+
|
7
|
+
# Lists the services that are running in a specified cluster.
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * cluster <~String> - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services you want to list.
|
11
|
+
# * maxResults <~Integer> - The maximum number of container instance results returned by ListServices in paginated output.
|
12
|
+
# * nextToken <~String> - The nextToken value returned from a previous paginated ListServices request where maxResults was used.
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'ServiceArns' <~Array> - list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster.
|
17
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListServices request.
|
18
|
+
def list_services(params={})
|
19
|
+
request({
|
20
|
+
'Action' => 'ListServices',
|
21
|
+
:parser => Fog::Parsers::AWS::ECS::ListServices.new
|
22
|
+
}.merge(params))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def list_services(params={})
|
28
|
+
response = Excon::Response.new
|
29
|
+
response.status = 200
|
30
|
+
|
31
|
+
owner_id = Fog::AWS::Mock.owner_id
|
32
|
+
|
33
|
+
cluster = params.delete('cluster') || 'default'
|
34
|
+
if !cluster.match(/^arn:aws:ecs:.+:.+:cluster\/(.+)$/)
|
35
|
+
cluster_path = "cluster/#{cluster}"
|
36
|
+
cluster_arn = Fog::AWS::Mock.arn('ecs', owner_id, cluster_path, region)
|
37
|
+
else
|
38
|
+
cluster_arn = cluster
|
39
|
+
end
|
40
|
+
|
41
|
+
result = self.data[:services].select do |s|
|
42
|
+
s['clusterArn'].eql?(cluster_arn)
|
43
|
+
end
|
44
|
+
service_arns = result.map { |s| s['serviceArn'] }
|
45
|
+
|
46
|
+
response.body = {
|
47
|
+
'ListServicesResult' => {
|
48
|
+
'serviceArns' => service_arns
|
49
|
+
},
|
50
|
+
'ResponseMetadata' => {
|
51
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
52
|
+
}
|
53
|
+
}
|
54
|
+
response
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_task_definition_families'
|
6
|
+
|
7
|
+
# Returns a list of task definition families that are registered to your account.
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitionFamilies.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * familyPrefix <~String> - familyPrefix is a string that is used to filter the results of ListTaskDefinitionFamilies.
|
11
|
+
# * maxResults <~Integer> - maximum number of task definition family results returned by ListTaskDefinitionFamilies in paginated output.
|
12
|
+
# * nextToken <~String> - nextToken value returned from a previous paginated ListTaskDefinitionFamilies request where maxResults was used.
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'Families' <~Array> - list of task definition family names that match the ListTaskDefinitionFamilies request.
|
17
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListTaskDefinitionFamilies request.
|
18
|
+
def list_task_definition_families(params={})
|
19
|
+
request({
|
20
|
+
'Action' => 'ListTaskDefinitionFamilies',
|
21
|
+
:parser => Fog::Parsers::AWS::ECS::ListTaskDefinitionFamilies.new
|
22
|
+
}.merge(params))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def list_task_definition_families(params={})
|
28
|
+
response = Excon::Response.new
|
29
|
+
response.status = 200
|
30
|
+
|
31
|
+
family_prefix = params['familyPrefix']
|
32
|
+
|
33
|
+
if family_prefix
|
34
|
+
result = self.data[:task_definitions].select do |t|
|
35
|
+
t['family'].match(/^#{family_prefix}/)
|
36
|
+
end
|
37
|
+
else
|
38
|
+
result = self.data[:task_definitions].dup
|
39
|
+
end
|
40
|
+
result.map! { |t| t['family'] }
|
41
|
+
result.uniq!
|
42
|
+
|
43
|
+
response.body = {
|
44
|
+
'ListTaskDefinitionFamiliesResult' => {
|
45
|
+
'families' => result
|
46
|
+
},
|
47
|
+
'ResponseMetadata' => {
|
48
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
49
|
+
}
|
50
|
+
}
|
51
|
+
response
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_task_definitions'
|
6
|
+
|
7
|
+
# Returns a list of task definitions that are registered to your account
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitions.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * familyPrefix <~String> - The full family name that you want to filter the ListTaskDefinitions results with.
|
11
|
+
# * maxResults <~Integer> - The maximum number of task definition results returned by ListTaskDefinitions in paginated output.
|
12
|
+
# * nextToken <~String> - The nextToken value returned from a previous paginated ListTaskDefinitions request.
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'TaskDefinitionArns' <~Array> - list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefintions request.
|
17
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListTaskDefinitions request
|
18
|
+
def list_task_definitions(params={})
|
19
|
+
request({
|
20
|
+
'Action' => 'ListTaskDefinitions',
|
21
|
+
:parser => Fog::Parsers::AWS::ECS::ListTaskDefinitions.new
|
22
|
+
}.merge(params))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Mock
|
27
|
+
def list_task_definitions(params={})
|
28
|
+
if %w(
|
29
|
+
familyPrefix
|
30
|
+
maxResults
|
31
|
+
nextToken
|
32
|
+
).any? { |k| params.has_key?(k) }
|
33
|
+
Fog::Logger.warning("list_task_definitions filters are not yet mocked [light_black](#{caller.first})[/]")
|
34
|
+
Fog::Mock.not_implemented
|
35
|
+
end
|
36
|
+
|
37
|
+
response = Excon::Response.new
|
38
|
+
response.status = 200
|
39
|
+
|
40
|
+
taskdef_arns = self.data[:task_definitions].map { |c| c['taskDefinitionArn'] }
|
41
|
+
|
42
|
+
response.body = {
|
43
|
+
'ListTaskDefinitionsResult' => {
|
44
|
+
'taskDefinitionArns' => taskdef_arns
|
45
|
+
},
|
46
|
+
'ResponseMetadata' => {
|
47
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
48
|
+
}
|
49
|
+
}
|
50
|
+
response
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ECS
|
4
|
+
class Real
|
5
|
+
require 'fog/aws/parsers/ecs/list_tasks'
|
6
|
+
|
7
|
+
# Returns a list of tasks for a specified cluster.
|
8
|
+
# http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html
|
9
|
+
# ==== Parameters
|
10
|
+
# * cluster <~String> - short name or full Amazon Resource Name (ARN) of the cluster that hosts the tasks you want to list.
|
11
|
+
# * containerInstance <~String> - container instance UUID or full Amazon Resource Name (ARN) of the container instance that you want to filter the ListTasks results with.
|
12
|
+
# * family <~String> - name of the family that you want to filter the ListTasks results with.
|
13
|
+
# * maxResults <~Integer> - maximum number of task results returned by ListTasks in paginated output.
|
14
|
+
# * nextToken <~String> - nextToken value returned from a previous paginated ListTasks request where maxResults was used.
|
15
|
+
# * serviceName <~String> - name of the service that you want to filter the ListTasks results with.
|
16
|
+
# * startedBy <~String> - startedBy value that you want to filter the task results with.
|
17
|
+
# ==== Returns
|
18
|
+
# * response<~Excon::Response>:
|
19
|
+
# * body<~Hash>:
|
20
|
+
# * 'TaskArns' <~Array> - list of task Amazon Resource Name (ARN) entries for the ListTasks request.
|
21
|
+
# * 'NextToken' <~String> - nextToken value to include in a future ListTasks request.
|
22
|
+
def list_tasks(params={})
|
23
|
+
request({
|
24
|
+
'Action' => 'ListTasks',
|
25
|
+
:parser => Fog::Parsers::AWS::ECS::ListTasks.new
|
26
|
+
}.merge(params))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Mock
|
31
|
+
def list_tasks(params={})
|
32
|
+
response = Excon::Response.new
|
33
|
+
response.status = 200
|
34
|
+
|
35
|
+
task_arns = self.data[:tasks].map { |t| t['taskArn'] }
|
36
|
+
|
37
|
+
response.body = {
|
38
|
+
'ListTasksResult' => {
|
39
|
+
'taskArns' => task_arns
|
40
|
+
},
|
41
|
+
'ResponseMetadata' => {
|
42
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
43
|
+
}
|
44
|
+
}
|
45
|
+
response
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|