awspec 0.29.0 → 0.30.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/doc/_resource_types/ami.md +19 -0
- data/doc/_resource_types/ec2.md +0 -8
- data/doc/resource_types.md +29 -1
- data/lib/awspec/generator/doc/type/ami.rb +19 -0
- data/lib/awspec/helper/finder.rb +2 -0
- data/lib/awspec/helper/finder/ami.rb +20 -0
- data/lib/awspec/helper/type.rb +1 -1
- data/lib/awspec/resource_reader.rb +3 -2
- data/lib/awspec/stub/ami.rb +53 -0
- data/lib/awspec/type/ami.rb +22 -0
- data/lib/awspec/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a905721558237afba127319af4db1276f903347
|
4
|
+
data.tar.gz: 13acb88e7253a96c4bd8eb23afea29c5fb934c37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5af22547903d27edce8b88bba5b627578ba1b5e1d0783d549bb48e024e3a30e8aaedd61ea922685155009f9c9143791e84784f6dc6731990102b1578baa1542
|
7
|
+
data.tar.gz: 74fbb35e7cb25517623416b245e48fea042c381356960562f63ec387a6f2eb6e2a3f72e8496e0884796635fe93ddffe0a72a721cbd5d06a132ede3571509811e
|
@@ -0,0 +1,19 @@
|
|
1
|
+
### exist
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
describe ami('my-ami') do
|
5
|
+
it { should exist }
|
6
|
+
end
|
7
|
+
```
|
8
|
+
|
9
|
+
### be_pending, be_available, be_invalid, be_deregistered, be_transient, be_failed, be_error
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
describe ami('my-ami') do
|
13
|
+
it { should be_available }
|
14
|
+
end
|
15
|
+
```
|
16
|
+
|
17
|
+
### advanced
|
18
|
+
|
19
|
+
`ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
|
data/doc/_resource_types/ec2.md
CHANGED
@@ -14,14 +14,6 @@ describe ec2('my-ec2') do
|
|
14
14
|
end
|
15
15
|
```
|
16
16
|
|
17
|
-
### be_pending
|
18
|
-
|
19
|
-
```ruby
|
20
|
-
describe ec2('my-ec2') do
|
21
|
-
it { should be_pending }
|
22
|
-
end
|
23
|
-
```
|
24
|
-
|
25
17
|
### be_pending, be_running, be_shutting_down, be_terminated, be_stopping, be_stopped
|
26
18
|
|
27
19
|
```ruby
|
data/doc/resource_types.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Resource Types
|
2
2
|
|
3
|
-
[
|
3
|
+
[ami](#ami)
|
4
|
+
| [autoscaling_group](#autoscaling_group)
|
4
5
|
| [cloudwatch_alarm](#cloudwatch_alarm)
|
5
6
|
| [directconnect_virtual_interface](#directconnect_virtual_interface)
|
6
7
|
| [ebs](#ebs)
|
@@ -26,6 +27,33 @@
|
|
26
27
|
| [subnet](#subnet)
|
27
28
|
| [vpc](#vpc)
|
28
29
|
|
30
|
+
## <a name="ami">ami</a>
|
31
|
+
|
32
|
+
AMI resource type.
|
33
|
+
|
34
|
+
### exist
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
describe ami('my-ami') do
|
38
|
+
it { should exist }
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
### be_pending, be_available, be_invalid, be_deregistered, be_transient, be_failed, be_error
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
describe ami('my-ami') do
|
47
|
+
it { should be_available }
|
48
|
+
end
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
### its(:image_id), its(:image_location), its(:state), its(:owner_id), its(:creation_date), its(:public), its(:architecture), its(:image_type), its(:kernel_id), its(:ramdisk_id), its(:platform), its(:sriov_net_support), its(:state_reason), its(:image_owner_alias), its(:name), its(:description), its(:root_device_type), its(:root_device_name), its(:virtualization_type), its(:hypervisor)
|
53
|
+
### :unlock: Advanced use
|
54
|
+
|
55
|
+
`ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
|
56
|
+
|
29
57
|
## <a name="autoscaling_group">autoscaling_group</a>
|
30
58
|
|
31
59
|
AutoscalingGroup resource type.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Awspec::Generator
|
2
|
+
module Doc
|
3
|
+
module Type
|
4
|
+
class Ami < Base
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@type_name = 'AMI'
|
8
|
+
@type = Awspec::Type::Ami.new('my-ami')
|
9
|
+
@ret = @type.resource_via_client
|
10
|
+
@matchers = [
|
11
|
+
Awspec::Type::Ami::STATES.map { |state| 'be_' + state }.join(', ')
|
12
|
+
]
|
13
|
+
@ignore_matchers = Awspec::Type::Ami::STATES.map { |state| 'be_' + state.tr('-', '_') }
|
14
|
+
@describes = []
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/awspec/helper/finder.rb
CHANGED
@@ -14,6 +14,7 @@ require 'awspec/helper/finder/elasticache'
|
|
14
14
|
require 'awspec/helper/finder/cloudwatch'
|
15
15
|
require 'awspec/helper/finder/ses'
|
16
16
|
require 'awspec/helper/finder/directconnect'
|
17
|
+
require 'awspec/helper/finder/ami'
|
17
18
|
|
18
19
|
module Awspec::Helper
|
19
20
|
module Finder
|
@@ -32,6 +33,7 @@ module Awspec::Helper
|
|
32
33
|
include Awspec::Helper::Finder::Cloudwatch
|
33
34
|
include Awspec::Helper::Finder::Ses
|
34
35
|
include Awspec::Helper::Finder::Directconnect
|
36
|
+
include Awspec::Helper::Finder::Ami
|
35
37
|
|
36
38
|
CLIENTS = {
|
37
39
|
ec2_client: Aws::EC2::Client,
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Awspec::Helper
|
2
|
+
module Finder
|
3
|
+
module Ami
|
4
|
+
def find_ami(image_id)
|
5
|
+
res = ec2_client.describe_images({
|
6
|
+
filters: [{ name: 'image-id', values: [image_id] }]
|
7
|
+
})
|
8
|
+
return res[:images].first if res[:images].count == 1
|
9
|
+
res = ec2_client.describe_images({
|
10
|
+
filters: [{ name: 'name', values: [image_id] }]
|
11
|
+
})
|
12
|
+
return res[:images].first if res[:images].count == 1
|
13
|
+
res = ec2_client.describe_images({
|
14
|
+
filters: [{ name: 'tag:Name', values: [image_id] }]
|
15
|
+
})
|
16
|
+
return res[:images].first if res[:images].count == 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/awspec/helper/type.rb
CHANGED
@@ -4,7 +4,7 @@ module Awspec
|
|
4
4
|
require 'awspec/type/base'
|
5
5
|
|
6
6
|
TYPES = %w(
|
7
|
-
autoscaling_group cloudwatch_alarm directconnect_virtual_interface
|
7
|
+
ami autoscaling_group cloudwatch_alarm directconnect_virtual_interface
|
8
8
|
ebs ec2 elasticache elasticache_cache_parameter_group elb iam_group
|
9
9
|
iam_policy iam_role iam_user lambda launch_configuration nat_gateway
|
10
10
|
network_acl rds rds_db_parameter_group route53_hosted_zone route_table
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Aws.config[:ec2] = {
|
2
|
+
stub_responses: {
|
3
|
+
describe_images: {
|
4
|
+
images: [
|
5
|
+
{
|
6
|
+
image_id: 'ami-82640282',
|
7
|
+
image_location:
|
8
|
+
'aws-marketplace/CentOS Linux 6 x86_64 20150928_0-74e73035-3435-48d6-88e0-89cc02ad83ee-ami-2b35794e.2',
|
9
|
+
state: 'available',
|
10
|
+
owner_id: '123456789012',
|
11
|
+
creation_date: '2015-10-13T23:00:25.000Z',
|
12
|
+
public: true,
|
13
|
+
product_codes: [
|
14
|
+
{
|
15
|
+
product_code_id: 'abcdefghijklmn01234567890',
|
16
|
+
product_code_type: 'marketplace'
|
17
|
+
}
|
18
|
+
],
|
19
|
+
architecture: 'x86_64',
|
20
|
+
image_type: 'machine',
|
21
|
+
kernel_id: nil,
|
22
|
+
ramdisk_id: nil,
|
23
|
+
platform: nil,
|
24
|
+
sriov_net_support: nil,
|
25
|
+
state_reason: nil,
|
26
|
+
image_owner_alias: 'aws-marketplace',
|
27
|
+
name: 'my-ami',
|
28
|
+
description: 'CentOS Linux 6 x86_64 HVM EBS 20150928_01',
|
29
|
+
root_device_type: 'ebs',
|
30
|
+
root_device_name: '/dev/sda1',
|
31
|
+
block_device_mappings: [
|
32
|
+
{
|
33
|
+
virtual_name: nil,
|
34
|
+
device_name: '/dev/sda1',
|
35
|
+
ebs: {
|
36
|
+
snapshot_id: 'snap-be484c23',
|
37
|
+
volume_size: 8,
|
38
|
+
delete_on_termination: false,
|
39
|
+
volume_type: 'standard',
|
40
|
+
iops: nil,
|
41
|
+
encrypted: false
|
42
|
+
},
|
43
|
+
no_device: nil
|
44
|
+
}
|
45
|
+
],
|
46
|
+
virtualization_type: 'hvm',
|
47
|
+
tags: [],
|
48
|
+
hypervisor: 'xen'
|
49
|
+
}
|
50
|
+
]
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Awspec::Type
|
2
|
+
class Ami < Base
|
3
|
+
aws_resource Aws::EC2::Image
|
4
|
+
|
5
|
+
def initialize(id)
|
6
|
+
super
|
7
|
+
@resource_via_client = find_ami(id)
|
8
|
+
@id = @resource_via_client[:image_id] if @resource_via_client
|
9
|
+
end
|
10
|
+
|
11
|
+
STATES = %w(
|
12
|
+
pending available invalid deregistered
|
13
|
+
transient failed error
|
14
|
+
)
|
15
|
+
|
16
|
+
STATES.each do |state|
|
17
|
+
define_method state + '?' do
|
18
|
+
@resource_via_client[:state] == state
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
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.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -200,6 +200,7 @@ files:
|
|
200
200
|
- bin/console
|
201
201
|
- bin/setup
|
202
202
|
- bin/toolbox
|
203
|
+
- doc/_resource_types/ami.md
|
203
204
|
- doc/_resource_types/autoscaling_group.md
|
204
205
|
- doc/_resource_types/cloudwatch_alarm.md
|
205
206
|
- doc/_resource_types/directconnect_virtual_interface.md
|
@@ -235,6 +236,7 @@ files:
|
|
235
236
|
- lib/awspec/ext/struct.rb
|
236
237
|
- lib/awspec/generator.rb
|
237
238
|
- lib/awspec/generator/doc/type.rb
|
239
|
+
- lib/awspec/generator/doc/type/ami.rb
|
238
240
|
- lib/awspec/generator/doc/type/autoscaling_group.rb
|
239
241
|
- lib/awspec/generator/doc/type/base.rb
|
240
242
|
- lib/awspec/generator/doc/type/cloudwatch_alarm.rb
|
@@ -281,6 +283,7 @@ files:
|
|
281
283
|
- lib/awspec/helper/color.rb
|
282
284
|
- lib/awspec/helper/credentials_loader.rb
|
283
285
|
- lib/awspec/helper/finder.rb
|
286
|
+
- lib/awspec/helper/finder/ami.rb
|
284
287
|
- lib/awspec/helper/finder/autoscaling.rb
|
285
288
|
- lib/awspec/helper/finder/cloudwatch.rb
|
286
289
|
- lib/awspec/helper/finder/directconnect.rb
|
@@ -314,6 +317,7 @@ files:
|
|
314
317
|
- lib/awspec/resource_reader.rb
|
315
318
|
- lib/awspec/setup.rb
|
316
319
|
- lib/awspec/stub.rb
|
320
|
+
- lib/awspec/stub/ami.rb
|
317
321
|
- lib/awspec/stub/autoscaling_group.rb
|
318
322
|
- lib/awspec/stub/cloudwatch_alarm.rb
|
319
323
|
- lib/awspec/stub/directconnect_virtual_interface.rb
|
@@ -340,6 +344,7 @@ files:
|
|
340
344
|
- lib/awspec/stub/subnet.rb
|
341
345
|
- lib/awspec/stub/vpc.rb
|
342
346
|
- lib/awspec/toolbox.rb
|
347
|
+
- lib/awspec/type/ami.rb
|
343
348
|
- lib/awspec/type/autoscaling_group.rb
|
344
349
|
- lib/awspec/type/base.rb
|
345
350
|
- lib/awspec/type/cloudwatch_alarm.rb
|