awspec 0.59.0 → 0.60.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/doc/resource_types.md +58 -0
- data/lib/awspec/generator/doc/type/ecr_repository.rb +15 -0
- data/lib/awspec/generator/doc/type/ecs_cluster.rb +15 -0
- data/lib/awspec/generator/doc/type/ecs_container_instance.rb +15 -0
- data/lib/awspec/generator/doc/type/ecs_service.rb +15 -0
- data/lib/awspec/generator/doc/type/ecs_task_definition.rb +15 -0
- data/lib/awspec/helper/finder.rb +6 -0
- data/lib/awspec/helper/finder/ecr.rb +10 -0
- data/lib/awspec/helper/finder/ecs.rb +37 -0
- data/lib/awspec/helper/type.rb +2 -1
- data/lib/awspec/stub/ecr_repository.rb +13 -0
- data/lib/awspec/stub/ecs.rb +199 -0
- data/lib/awspec/stub/ecs_cluster.rb +24 -0
- data/lib/awspec/stub/ecs_container_instance.rb +78 -0
- data/lib/awspec/stub/ecs_service.rb +51 -0
- data/lib/awspec/stub/ecs_task_definition.rb +58 -0
- data/lib/awspec/type/ecr_repository.rb +18 -0
- data/lib/awspec/type/ecs_cluster.rb +37 -0
- data/lib/awspec/type/ecs_container_instance.rb +32 -0
- data/lib/awspec/type/ecs_service.rb +30 -0
- data/lib/awspec/type/ecs_task_definition.rb +26 -0
- data/lib/awspec/version.rb +1 -1
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: deca32adffdfa628b35762a4d68d56f9c734a66c
|
4
|
+
data.tar.gz: 961a666bc6bb27c406da5cd13204a19f016d284c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57da3f4ff92d9ecc26d1a203991e45639e24d3f535d1511bb6e39dd42f180836d2e1a350054d706060c523d7d29bbfcd13f2d0bba254ab92ae6b25ae08c44a41
|
7
|
+
data.tar.gz: 7106413e99f13bcbf185d8129770b80fb082e98a4093e42ab85a3e790b02eea22efc722d91a761e8395c3fe2f3aa7eb8e743b0f2f04d552a904f68472dd0205b
|
data/.gitignore
CHANGED
data/doc/resource_types.md
CHANGED
@@ -8,6 +8,11 @@
|
|
8
8
|
| [directconnect_virtual_interface](#directconnect_virtual_interface)
|
9
9
|
| [ebs](#ebs)
|
10
10
|
| [ec2](#ec2)
|
11
|
+
| [ecr_repository](#ecr_repository)
|
12
|
+
| [ecs_cluster](#ecs_cluster)
|
13
|
+
| [ecs_container_instance](#ecs_container_instance)
|
14
|
+
| [ecs_service](#ecs_service)
|
15
|
+
| [ecs_task_definition](#ecs_task_definition)
|
11
16
|
| [elasticache](#elasticache)
|
12
17
|
| [elasticache_cache_parameter_group](#elasticache_cache_parameter_group)
|
13
18
|
| [elasticsearch](#elasticsearch)
|
@@ -455,6 +460,59 @@ describe ec2('my-ec2') do
|
|
455
460
|
end
|
456
461
|
```
|
457
462
|
|
463
|
+
## <a name="ecr_repository">ecr_repository</a>
|
464
|
+
|
465
|
+
EcrRepository resource type.
|
466
|
+
|
467
|
+
### exist
|
468
|
+
|
469
|
+
|
470
|
+
## <a name="ecs_cluster">ecs_cluster</a>
|
471
|
+
|
472
|
+
EcsCluster resource type.
|
473
|
+
|
474
|
+
### exist
|
475
|
+
|
476
|
+
### be_active
|
477
|
+
|
478
|
+
### be_inactive
|
479
|
+
|
480
|
+
|
481
|
+
## <a name="ecs_container_instance">ecs_container_instance</a>
|
482
|
+
|
483
|
+
EcsContainerInstance resource type.
|
484
|
+
|
485
|
+
### exist
|
486
|
+
|
487
|
+
### be_active
|
488
|
+
|
489
|
+
### be_inactive
|
490
|
+
|
491
|
+
|
492
|
+
## <a name="ecs_service">ecs_service</a>
|
493
|
+
|
494
|
+
EcsService resource type.
|
495
|
+
|
496
|
+
### exist
|
497
|
+
|
498
|
+
### be_active
|
499
|
+
|
500
|
+
### be_draining
|
501
|
+
|
502
|
+
### be_inactive
|
503
|
+
|
504
|
+
|
505
|
+
## <a name="ecs_task_definition">ecs_task_definition</a>
|
506
|
+
|
507
|
+
EcsTaskDefinition resource type.
|
508
|
+
|
509
|
+
### exist
|
510
|
+
|
511
|
+
### be_active
|
512
|
+
|
513
|
+
### be_inactive
|
514
|
+
|
515
|
+
|
458
516
|
## <a name="elasticache">elasticache</a>
|
459
517
|
|
460
518
|
Elasticache resource type.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class EcrRepository < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type = Awspec::Type::EcrRepository.new('my-ecr-repository')
|
8
|
+
@matchers = []
|
9
|
+
@ignore_matchers = []
|
10
|
+
@describes = []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class EcsCluster < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type = Awspec::Type::EcsCluster.new('my-ecs-cluster')
|
8
|
+
@matchers = []
|
9
|
+
@ignore_matchers = []
|
10
|
+
@describes = []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class EcsContainerInstance < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type = Awspec::Type::EcsContainerInstance.new('my-ecs-container-instance')
|
8
|
+
@matchers = []
|
9
|
+
@ignore_matchers = []
|
10
|
+
@describes = []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class EcsService < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type = Awspec::Type::EcsService.new('my-ecs-service')
|
8
|
+
@matchers = []
|
9
|
+
@ignore_matchers = []
|
10
|
+
@describes = []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class EcsTaskDefinition < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type = Awspec::Type::EcsTaskDefinition.new('my-ecs-taskdef')
|
8
|
+
@matchers = []
|
9
|
+
@ignore_matchers = []
|
10
|
+
@describes = []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/awspec/helper/finder.rb
CHANGED
@@ -2,6 +2,8 @@ require 'aws-sdk'
|
|
2
2
|
require 'awspec/helper/finder/vpc'
|
3
3
|
require 'awspec/helper/finder/subnet'
|
4
4
|
require 'awspec/helper/finder/ec2'
|
5
|
+
require 'awspec/helper/finder/ecr'
|
6
|
+
require 'awspec/helper/finder/ecs'
|
5
7
|
require 'awspec/helper/finder/security_group'
|
6
8
|
require 'awspec/helper/finder/rds'
|
7
9
|
require 'awspec/helper/finder/route53'
|
@@ -29,6 +31,8 @@ module Awspec::Helper
|
|
29
31
|
include Awspec::Helper::Finder::Vpc
|
30
32
|
include Awspec::Helper::Finder::Subnet
|
31
33
|
include Awspec::Helper::Finder::Ec2
|
34
|
+
include Awspec::Helper::Finder::Ecr
|
35
|
+
include Awspec::Helper::Finder::Ecs
|
32
36
|
include Awspec::Helper::Finder::SecurityGroup
|
33
37
|
include Awspec::Helper::Finder::Rds
|
34
38
|
include Awspec::Helper::Finder::Route53
|
@@ -53,6 +57,8 @@ module Awspec::Helper
|
|
53
57
|
|
54
58
|
CLIENTS = {
|
55
59
|
ec2_client: Aws::EC2::Client,
|
60
|
+
ecr_client: Aws::ECR::Client,
|
61
|
+
ecs_client: Aws::ECS::Client,
|
56
62
|
rds_client: Aws::RDS::Client,
|
57
63
|
route53_client: Aws::Route53::Client,
|
58
64
|
s3_client: Aws::S3::Client,
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Awspec::Helper
|
2
|
+
module Finder
|
3
|
+
module Ecs
|
4
|
+
def find_ecs_cluster(cluster_name)
|
5
|
+
res = ecs_client.describe_clusters(clusters: [cluster_name])
|
6
|
+
res.clusters.first if res.clusters.count == 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def list_ecs_container_instances(cluster_name)
|
10
|
+
req = { cluster: cluster_name }
|
11
|
+
container_instances = []
|
12
|
+
loop do
|
13
|
+
res = ecs_client.list_container_instances(req)
|
14
|
+
container_instances.push(*res.container_instance_arns)
|
15
|
+
break if res.next_token.nil?
|
16
|
+
req[:next_token] = res.next_token
|
17
|
+
end
|
18
|
+
container_instances
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_ecs_container_instances(cluster_name, container_instances)
|
22
|
+
res = ecs_client.describe_container_instances(cluster: cluster_name, container_instances: container_instances)
|
23
|
+
res.container_instances if res.container_instances
|
24
|
+
end
|
25
|
+
|
26
|
+
def find_ecs_task_definition(taskdef)
|
27
|
+
res = ecs_client.describe_task_definition(task_definition: taskdef)
|
28
|
+
res.task_definition
|
29
|
+
end
|
30
|
+
|
31
|
+
def find_ecs_service(service)
|
32
|
+
res = ecs_client.describe_services(services: [service])
|
33
|
+
res.services.first if res.services.count == 1
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/awspec/helper/type.rb
CHANGED
@@ -5,7 +5,8 @@ module Awspec
|
|
5
5
|
|
6
6
|
TYPES = %w(
|
7
7
|
ami autoscaling_group cloudtrail cloudwatch_alarm cloudwatch_event directconnect_virtual_interface
|
8
|
-
ebs ec2
|
8
|
+
ebs ec2 ecr_repository ecs_cluster ecs_container_instance ecs_service ecs_task_definition
|
9
|
+
elasticache elasticache_cache_parameter_group elasticsearch elb iam_group
|
9
10
|
iam_policy iam_role iam_user kms lambda launch_configuration nat_gateway
|
10
11
|
network_acl network_interface rds rds_db_cluster_parameter_group rds_db_parameter_group route53_hosted_zone
|
11
12
|
route_table s3_bucket security_group ses_identity subnet vpc cloudfront_distribution
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Aws.config[:ecr] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_repositories: {
|
4
|
+
repositories: [
|
5
|
+
{
|
6
|
+
registry_id: '123456789012',
|
7
|
+
repository_arn: 'arn:aws:ecr:us-east-1:123456789012:repository/my-ecr-repository',
|
8
|
+
repository_name: 'my-ecr-repository'
|
9
|
+
}
|
10
|
+
]
|
11
|
+
}
|
12
|
+
}
|
13
|
+
}
|
@@ -0,0 +1,199 @@
|
|
1
|
+
Aws.config[:ecs] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_clusters: {
|
4
|
+
clusters: [
|
5
|
+
{
|
6
|
+
cluster_arn: 'arn:aws:ecs:us-east-1:123456789012:cluster/my-ecs-cluster',
|
7
|
+
cluster_name: 'my-ecs-cluster',
|
8
|
+
status: 'ACTIVE',
|
9
|
+
registered_container_instances_count: 0,
|
10
|
+
pending_tasks_count: 0,
|
11
|
+
running_tasks_count: 0,
|
12
|
+
active_services_count: 0
|
13
|
+
}
|
14
|
+
],
|
15
|
+
failures: [
|
16
|
+
]
|
17
|
+
},
|
18
|
+
list_container_instances: {
|
19
|
+
container_instance_arns: [
|
20
|
+
'arn:aws:ecs:us-east-1:123456789012:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7'
|
21
|
+
]
|
22
|
+
},
|
23
|
+
describe_container_instances: {
|
24
|
+
container_instances: [
|
25
|
+
{
|
26
|
+
agent_connected: true,
|
27
|
+
container_instance_arn:
|
28
|
+
'arn:aws:ecs:us-east-1:123456789012:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7',
|
29
|
+
ec2_instance_id: 'i-01234567',
|
30
|
+
pending_tasks_count: 0,
|
31
|
+
registered_resources: [
|
32
|
+
{
|
33
|
+
name: 'CPU',
|
34
|
+
type: 'INTEGER',
|
35
|
+
double_value: 0.0,
|
36
|
+
integer_value: 2048,
|
37
|
+
long_value: 0
|
38
|
+
},
|
39
|
+
{
|
40
|
+
name: 'MEMORY',
|
41
|
+
type: 'INTEGER',
|
42
|
+
double_value: 0.0,
|
43
|
+
integer_value: 3768,
|
44
|
+
long_value: 0
|
45
|
+
},
|
46
|
+
{
|
47
|
+
name: 'PORTS',
|
48
|
+
type: 'STRINGSET',
|
49
|
+
double_value: 0.0,
|
50
|
+
integer_value: 0,
|
51
|
+
long_value: 0,
|
52
|
+
string_set_value: %w[
|
53
|
+
'2376',
|
54
|
+
'22',
|
55
|
+
'51678',
|
56
|
+
'2375'
|
57
|
+
]
|
58
|
+
}
|
59
|
+
],
|
60
|
+
remaining_resources: [
|
61
|
+
{
|
62
|
+
name: 'CPU',
|
63
|
+
type: 'INTEGER',
|
64
|
+
double_value: 0.0,
|
65
|
+
integer_value: 1948,
|
66
|
+
long_value: 0
|
67
|
+
},
|
68
|
+
{
|
69
|
+
name: 'MEMORY',
|
70
|
+
type: 'INTEGER',
|
71
|
+
double_value: 0.0,
|
72
|
+
integer_value: 3668,
|
73
|
+
long_value: 0
|
74
|
+
},
|
75
|
+
{
|
76
|
+
name: 'PORTS',
|
77
|
+
type: 'STRINGSET',
|
78
|
+
double_value: 0.0,
|
79
|
+
integer_value: 0,
|
80
|
+
long_value: 0,
|
81
|
+
string_set_value: %w[
|
82
|
+
'2376',
|
83
|
+
'22',
|
84
|
+
'80',
|
85
|
+
'51678',
|
86
|
+
'2375'
|
87
|
+
]
|
88
|
+
}
|
89
|
+
],
|
90
|
+
running_tasks_count: 1,
|
91
|
+
status: 'ACTIVE'
|
92
|
+
}
|
93
|
+
],
|
94
|
+
failures: [
|
95
|
+
]
|
96
|
+
},
|
97
|
+
describe_task_definition: {
|
98
|
+
task_definition: {
|
99
|
+
container_definitions: [
|
100
|
+
{
|
101
|
+
name: 'wordpress',
|
102
|
+
cpu: 10,
|
103
|
+
environment: [
|
104
|
+
],
|
105
|
+
essential: true,
|
106
|
+
image: 'wordpress',
|
107
|
+
links: [
|
108
|
+
'mysql'
|
109
|
+
],
|
110
|
+
memory: 500,
|
111
|
+
mount_points: [
|
112
|
+
],
|
113
|
+
port_mappings: [
|
114
|
+
{
|
115
|
+
container_port: 80,
|
116
|
+
host_port: 80
|
117
|
+
}
|
118
|
+
],
|
119
|
+
volumes_from: [
|
120
|
+
]
|
121
|
+
},
|
122
|
+
{
|
123
|
+
name: 'mysql',
|
124
|
+
cpu: 10,
|
125
|
+
environment: [
|
126
|
+
{
|
127
|
+
name: 'MYSQL_ROOT_PASSWORD',
|
128
|
+
value: 'password'
|
129
|
+
}
|
130
|
+
],
|
131
|
+
essential: true,
|
132
|
+
image: 'mysql',
|
133
|
+
memory: 500,
|
134
|
+
mount_points: [
|
135
|
+
],
|
136
|
+
port_mappings: [
|
137
|
+
],
|
138
|
+
volumes_from: [
|
139
|
+
]
|
140
|
+
}
|
141
|
+
],
|
142
|
+
status: 'ACTIVE',
|
143
|
+
family: 'my-ecs-task-definition',
|
144
|
+
revision: 8,
|
145
|
+
task_definition_arn: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8',
|
146
|
+
task_role_arn: 'arn:aws:iam::123456789012:role/my-iam-role',
|
147
|
+
volumes: [
|
148
|
+
]
|
149
|
+
}
|
150
|
+
},
|
151
|
+
describe_services: {
|
152
|
+
failures: [
|
153
|
+
],
|
154
|
+
services: [
|
155
|
+
{
|
156
|
+
cluster_arn: 'arn:aws:ecs:us-east-1:123456789012:cluster/my-ecs-cluster',
|
157
|
+
created_at: Time.parse('2016-08-29T16:25:52.130Z'),
|
158
|
+
deployment_configuration: {
|
159
|
+
maximum_percent: 200,
|
160
|
+
minimum_healthy_percent: 100
|
161
|
+
},
|
162
|
+
deployments: [
|
163
|
+
{
|
164
|
+
created_at: Time.parse('2016-08-29T16:25:52.130Z'),
|
165
|
+
desired_count: 1,
|
166
|
+
id: 'ecs-svc/9223370564341623665',
|
167
|
+
pending_count: 0,
|
168
|
+
running_count: 0,
|
169
|
+
status: 'PRIMARY',
|
170
|
+
task_definition: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8',
|
171
|
+
updated_at: Time.parse('2016-08-29T16:25:52.130Z')
|
172
|
+
}
|
173
|
+
],
|
174
|
+
desired_count: 1,
|
175
|
+
events: [
|
176
|
+
{
|
177
|
+
created_at: Time.parse('2016-08-29T16:25:58.520Z'),
|
178
|
+
id: '38c285e5-d335-4b68-8b15-e46dedc8e88d',
|
179
|
+
message: '(service my-ecs-service) was unable to place a task ' \
|
180
|
+
'because no container instance met all of its requirements. The ' \
|
181
|
+
'closest matching (container-instance ' \
|
182
|
+
'3f4de1c5-ffdd-4954-af7e-75b4be0c8841) is already using a port ' \
|
183
|
+
'required by your task. For more information, see the ' \
|
184
|
+
'Troubleshooting section of the Amazon ECS Developer Guide.'
|
185
|
+
}
|
186
|
+
],
|
187
|
+
load_balancers: [
|
188
|
+
],
|
189
|
+
pending_count: 0,
|
190
|
+
running_count: 0,
|
191
|
+
service_arn: 'arn:aws:ecs:us-east-1:123456789012:service/my-ecs-service',
|
192
|
+
service_name: 'my-ecs-service',
|
193
|
+
status: 'ACTIVE',
|
194
|
+
task_definition: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8'
|
195
|
+
}
|
196
|
+
]
|
197
|
+
}
|
198
|
+
}
|
199
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Aws.config[:ecs] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_clusters: {
|
4
|
+
clusters: [
|
5
|
+
{
|
6
|
+
cluster_arn: 'arn:aws:ecs:us-east-1:123456789012:cluster/my-ecs-cluster',
|
7
|
+
cluster_name: 'my-ecs-cluster',
|
8
|
+
status: 'ACTIVE',
|
9
|
+
registered_container_instances_count: 0,
|
10
|
+
pending_tasks_count: 0,
|
11
|
+
running_tasks_count: 0,
|
12
|
+
active_services_count: 0
|
13
|
+
}
|
14
|
+
],
|
15
|
+
failures: [
|
16
|
+
]
|
17
|
+
},
|
18
|
+
list_container_instances: {
|
19
|
+
container_instance_arns: [
|
20
|
+
'arn:aws:ecs:us-east-1:123456789012:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7'
|
21
|
+
]
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
Aws.config[:ecs] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_container_instances: {
|
4
|
+
container_instances: [
|
5
|
+
{
|
6
|
+
agent_connected: true,
|
7
|
+
container_instance_arn:
|
8
|
+
'arn:aws:ecs:us-east-1:123456789012:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7',
|
9
|
+
ec2_instance_id: 'i-01234567',
|
10
|
+
pending_tasks_count: 0,
|
11
|
+
registered_resources: [
|
12
|
+
{
|
13
|
+
name: 'CPU',
|
14
|
+
type: 'INTEGER',
|
15
|
+
double_value: 0.0,
|
16
|
+
integer_value: 2048,
|
17
|
+
long_value: 0
|
18
|
+
},
|
19
|
+
{
|
20
|
+
name: 'MEMORY',
|
21
|
+
type: 'INTEGER',
|
22
|
+
double_value: 0.0,
|
23
|
+
integer_value: 3768,
|
24
|
+
long_value: 0
|
25
|
+
},
|
26
|
+
{
|
27
|
+
name: 'PORTS',
|
28
|
+
type: 'STRINGSET',
|
29
|
+
double_value: 0.0,
|
30
|
+
integer_value: 0,
|
31
|
+
long_value: 0,
|
32
|
+
string_set_value: %w[
|
33
|
+
'2376',
|
34
|
+
'22',
|
35
|
+
'51678',
|
36
|
+
'2375'
|
37
|
+
]
|
38
|
+
}
|
39
|
+
],
|
40
|
+
remaining_resources: [
|
41
|
+
{
|
42
|
+
name: 'CPU',
|
43
|
+
type: 'INTEGER',
|
44
|
+
double_value: 0.0,
|
45
|
+
integer_value: 1948,
|
46
|
+
long_value: 0
|
47
|
+
},
|
48
|
+
{
|
49
|
+
name: 'MEMORY',
|
50
|
+
type: 'INTEGER',
|
51
|
+
double_value: 0.0,
|
52
|
+
integer_value: 3668,
|
53
|
+
long_value: 0
|
54
|
+
},
|
55
|
+
{
|
56
|
+
name: 'PORTS',
|
57
|
+
type: 'STRINGSET',
|
58
|
+
double_value: 0.0,
|
59
|
+
integer_value: 0,
|
60
|
+
long_value: 0,
|
61
|
+
string_set_value: %w[
|
62
|
+
'2376',
|
63
|
+
'22',
|
64
|
+
'80',
|
65
|
+
'51678',
|
66
|
+
'2375'
|
67
|
+
]
|
68
|
+
}
|
69
|
+
],
|
70
|
+
running_tasks_count: 1,
|
71
|
+
status: 'ACTIVE'
|
72
|
+
}
|
73
|
+
],
|
74
|
+
failures: [
|
75
|
+
]
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
Aws.config[:ecs] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_services: {
|
4
|
+
failures: [
|
5
|
+
],
|
6
|
+
services: [
|
7
|
+
{
|
8
|
+
cluster_arn: 'arn:aws:ecs:us-east-1:123456789012:cluster/my-ecs-cluster',
|
9
|
+
created_at: Time.parse('2016-08-29T16:25:52.130Z'),
|
10
|
+
deployment_configuration: {
|
11
|
+
maximum_percent: 200,
|
12
|
+
minimum_healthy_percent: 100
|
13
|
+
},
|
14
|
+
deployments: [
|
15
|
+
{
|
16
|
+
created_at: Time.parse('2016-08-29T16:25:52.130Z'),
|
17
|
+
desired_count: 1,
|
18
|
+
id: 'ecs-svc/9223370564341623665',
|
19
|
+
pending_count: 0,
|
20
|
+
running_count: 0,
|
21
|
+
status: 'PRIMARY',
|
22
|
+
task_definition: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8',
|
23
|
+
updated_at: Time.parse('2016-08-29T16:25:52.130Z')
|
24
|
+
}
|
25
|
+
],
|
26
|
+
desired_count: 1,
|
27
|
+
events: [
|
28
|
+
{
|
29
|
+
created_at: Time.parse('2016-08-29T16:25:58.520Z'),
|
30
|
+
id: '38c285e5-d335-4b68-8b15-e46dedc8e88d',
|
31
|
+
message: '(service my-ecs-service) was unable to place a task ' \
|
32
|
+
'because no container instance met all of its requirements. The ' \
|
33
|
+
'closest matching (container-instance ' \
|
34
|
+
'3f4de1c5-ffdd-4954-af7e-75b4be0c8841) is already using a port ' \
|
35
|
+
'required by your task. For more information, see the ' \
|
36
|
+
'Troubleshooting section of the Amazon ECS Developer Guide.'
|
37
|
+
}
|
38
|
+
],
|
39
|
+
load_balancers: [
|
40
|
+
],
|
41
|
+
pending_count: 0,
|
42
|
+
running_count: 0,
|
43
|
+
service_arn: 'arn:aws:ecs:us-east-1:123456789012:service/my-ecs-service',
|
44
|
+
service_name: 'my-ecs-service',
|
45
|
+
status: 'ACTIVE',
|
46
|
+
task_definition: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8'
|
47
|
+
}
|
48
|
+
]
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Aws.config[:ecs] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_task_definition: {
|
4
|
+
task_definition: {
|
5
|
+
container_definitions: [
|
6
|
+
{
|
7
|
+
name: 'wordpress',
|
8
|
+
cpu: 10,
|
9
|
+
environment: [
|
10
|
+
],
|
11
|
+
essential: true,
|
12
|
+
image: 'wordpress',
|
13
|
+
links: [
|
14
|
+
'mysql'
|
15
|
+
],
|
16
|
+
memory: 500,
|
17
|
+
mount_points: [
|
18
|
+
],
|
19
|
+
port_mappings: [
|
20
|
+
{
|
21
|
+
container_port: 80,
|
22
|
+
host_port: 80
|
23
|
+
}
|
24
|
+
],
|
25
|
+
volumes_from: [
|
26
|
+
]
|
27
|
+
},
|
28
|
+
{
|
29
|
+
name: 'mysql',
|
30
|
+
cpu: 10,
|
31
|
+
environment: [
|
32
|
+
{
|
33
|
+
name: 'MYSQL_ROOT_PASSWORD',
|
34
|
+
value: 'password'
|
35
|
+
}
|
36
|
+
],
|
37
|
+
essential: true,
|
38
|
+
image: 'mysql',
|
39
|
+
memory: 500,
|
40
|
+
mount_points: [
|
41
|
+
],
|
42
|
+
port_mappings: [
|
43
|
+
],
|
44
|
+
volumes_from: [
|
45
|
+
]
|
46
|
+
}
|
47
|
+
],
|
48
|
+
status: 'ACTIVE',
|
49
|
+
family: 'my-ecs-task-definition',
|
50
|
+
revision: 8,
|
51
|
+
task_definition_arn: 'arn:aws:ecs:us-east-1:123456789012:task-definition/my-ecs-task-definition:8',
|
52
|
+
task_role_arn: 'arn:aws:iam::123456789012:role/my-iam-role',
|
53
|
+
volumes: [
|
54
|
+
]
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class EcrRepository < Base
|
3
|
+
aws_resource Aws::ECR::Types::Repository
|
4
|
+
|
5
|
+
def initialize(repository_name)
|
6
|
+
super
|
7
|
+
@display_name = repository_name
|
8
|
+
end
|
9
|
+
|
10
|
+
def resource_via_client
|
11
|
+
@resource_via_client ||= find_ecr_repository(@display_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def id
|
15
|
+
@id ||= resource_via_client.repository_name if resource_via_client
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class EcsCluster < Base
|
3
|
+
aws_resource Aws::ECS::Types::Cluster
|
4
|
+
|
5
|
+
def initialize(name)
|
6
|
+
super
|
7
|
+
@display_name = name
|
8
|
+
end
|
9
|
+
|
10
|
+
def resource_via_client
|
11
|
+
@resource_via_client ||= find_ecs_cluster(@display_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def id
|
15
|
+
@id ||= resource_via_client.cluster_name if resource_via_client
|
16
|
+
end
|
17
|
+
|
18
|
+
def active?
|
19
|
+
resource_via_client.status == 'ACTIVE'
|
20
|
+
end
|
21
|
+
|
22
|
+
def inactive?
|
23
|
+
resource_via_client.status == 'INACTIVE'
|
24
|
+
end
|
25
|
+
|
26
|
+
def container_instance_arns
|
27
|
+
@container_instance_arns ||= list_ecs_container_instances(id)
|
28
|
+
end
|
29
|
+
|
30
|
+
def container_instances
|
31
|
+
return @container_instances if @container_instances
|
32
|
+
arns = container_instance_arns
|
33
|
+
@container_instances ||=
|
34
|
+
arns.empty? ? [] : find_ecs_container_instances(id, arns).map! { |ci| EcsContainerInstance.new(id, ci) }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class EcsContainerInstance < Base
|
3
|
+
aws_resource Aws::ECS::Types::ContainerInstance
|
4
|
+
|
5
|
+
attr_accessor :cluster_name
|
6
|
+
|
7
|
+
def initialize(container_instance)
|
8
|
+
super
|
9
|
+
@display_name = container_instance.split('/').last
|
10
|
+
end
|
11
|
+
|
12
|
+
def resource_via_client
|
13
|
+
@resource_via_client ||= find_ecs_container_instances(@cluster_name, [@display_name]).first
|
14
|
+
end
|
15
|
+
|
16
|
+
def id
|
17
|
+
@id ||= resource_via_client.container_instance_arn if resource_via_client
|
18
|
+
end
|
19
|
+
|
20
|
+
def cluster_name
|
21
|
+
@cluster_name || 'default'
|
22
|
+
end
|
23
|
+
|
24
|
+
def active?
|
25
|
+
resource_via_client.status == 'ACTIVE'
|
26
|
+
end
|
27
|
+
|
28
|
+
def inactive?
|
29
|
+
resource_via_client.status == 'INACTIVE'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class EcsService < Base
|
3
|
+
aws_resource Aws::ECS::Types::Service
|
4
|
+
|
5
|
+
def initialize(service)
|
6
|
+
super
|
7
|
+
@display_name = service
|
8
|
+
end
|
9
|
+
|
10
|
+
def resource_via_client
|
11
|
+
@resource_via_client ||= find_ecs_service(@display_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def id
|
15
|
+
@id ||= resource_via_client.service_name if resource_via_client
|
16
|
+
end
|
17
|
+
|
18
|
+
def active?
|
19
|
+
resource_via_client.status == 'ACTIVE'
|
20
|
+
end
|
21
|
+
|
22
|
+
def draining?
|
23
|
+
resource_via_client.status == 'DRAINING'
|
24
|
+
end
|
25
|
+
|
26
|
+
def inactive?
|
27
|
+
resource_via_client.status == 'INACTIVE'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class EcsTaskDefinition < Base
|
3
|
+
aws_resource Aws::ECS::Types::TaskDefinition
|
4
|
+
|
5
|
+
def initialize(taskdef)
|
6
|
+
super
|
7
|
+
@display_name = taskdef
|
8
|
+
end
|
9
|
+
|
10
|
+
def resource_via_client
|
11
|
+
@resource_via_client ||= find_ecs_task_definition(@display_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def id
|
15
|
+
@id ||= "#{resource_via_client.family}:#{resource_via_client.revision}" if resource_via_client
|
16
|
+
end
|
17
|
+
|
18
|
+
def active?
|
19
|
+
resource_via_client.status == 'ACTIVE'
|
20
|
+
end
|
21
|
+
|
22
|
+
def inactive?
|
23
|
+
resource_via_client.status == 'INACTIVE'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/awspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.60.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -266,6 +266,11 @@ files:
|
|
266
266
|
- lib/awspec/generator/doc/type/directconnect_virtual_interface.rb
|
267
267
|
- lib/awspec/generator/doc/type/ebs.rb
|
268
268
|
- lib/awspec/generator/doc/type/ec2.rb
|
269
|
+
- lib/awspec/generator/doc/type/ecr_repository.rb
|
270
|
+
- lib/awspec/generator/doc/type/ecs_cluster.rb
|
271
|
+
- lib/awspec/generator/doc/type/ecs_container_instance.rb
|
272
|
+
- lib/awspec/generator/doc/type/ecs_service.rb
|
273
|
+
- lib/awspec/generator/doc/type/ecs_task_definition.rb
|
269
274
|
- lib/awspec/generator/doc/type/elasticache.rb
|
270
275
|
- lib/awspec/generator/doc/type/elasticache_cache_parameter_group.rb
|
271
276
|
- lib/awspec/generator/doc/type/elasticsearch.rb
|
@@ -330,6 +335,8 @@ files:
|
|
330
335
|
- lib/awspec/helper/finder/directconnect.rb
|
331
336
|
- lib/awspec/helper/finder/ebs.rb
|
332
337
|
- lib/awspec/helper/finder/ec2.rb
|
338
|
+
- lib/awspec/helper/finder/ecr.rb
|
339
|
+
- lib/awspec/helper/finder/ecs.rb
|
333
340
|
- lib/awspec/helper/finder/elasticache.rb
|
334
341
|
- lib/awspec/helper/finder/elasticsearch.rb
|
335
342
|
- lib/awspec/helper/finder/elastictranscoder.rb
|
@@ -383,6 +390,12 @@ files:
|
|
383
390
|
- lib/awspec/stub/duplicated_resource_type.rb
|
384
391
|
- lib/awspec/stub/ebs.rb
|
385
392
|
- lib/awspec/stub/ec2.rb
|
393
|
+
- lib/awspec/stub/ecr_repository.rb
|
394
|
+
- lib/awspec/stub/ecs.rb
|
395
|
+
- lib/awspec/stub/ecs_cluster.rb
|
396
|
+
- lib/awspec/stub/ecs_container_instance.rb
|
397
|
+
- lib/awspec/stub/ecs_service.rb
|
398
|
+
- lib/awspec/stub/ecs_task_definition.rb
|
386
399
|
- lib/awspec/stub/elasticache.rb
|
387
400
|
- lib/awspec/stub/elasticache_cache_parameter_group.rb
|
388
401
|
- lib/awspec/stub/elasticsearch.rb
|
@@ -423,6 +436,11 @@ files:
|
|
423
436
|
- lib/awspec/type/directconnect_virtual_interface.rb
|
424
437
|
- lib/awspec/type/ebs.rb
|
425
438
|
- lib/awspec/type/ec2.rb
|
439
|
+
- lib/awspec/type/ecr_repository.rb
|
440
|
+
- lib/awspec/type/ecs_cluster.rb
|
441
|
+
- lib/awspec/type/ecs_container_instance.rb
|
442
|
+
- lib/awspec/type/ecs_service.rb
|
443
|
+
- lib/awspec/type/ecs_task_definition.rb
|
426
444
|
- lib/awspec/type/elasticache.rb
|
427
445
|
- lib/awspec/type/elasticache_cache_parameter_group.rb
|
428
446
|
- lib/awspec/type/elasticsearch.rb
|