awspec 0.26.2 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +13 -2
  3. data/doc/_resource_types/ebs.md +18 -0
  4. data/doc/_resource_types/ec2.md +18 -0
  5. data/doc/_resource_types/network_acl.md +18 -0
  6. data/doc/_resource_types/rds.md +18 -0
  7. data/doc/_resource_types/route_table.md +18 -0
  8. data/doc/_resource_types/security_group.md +18 -0
  9. data/doc/_resource_types/subnet.md +18 -0
  10. data/doc/_resource_types/vpc.md +18 -0
  11. data/doc/resource_types.md +152 -0
  12. data/lib/awspec/helper/finder.rb +19 -15
  13. data/lib/awspec/helper/finder/autoscaling.rb +3 -3
  14. data/lib/awspec/helper/finder/cloudwatch.rb +5 -5
  15. data/lib/awspec/helper/finder/directconnect.rb +2 -2
  16. data/lib/awspec/helper/finder/ebs.rb +7 -7
  17. data/lib/awspec/helper/finder/ec2.rb +46 -46
  18. data/lib/awspec/helper/finder/elasticache.rb +6 -6
  19. data/lib/awspec/helper/finder/elb.rb +4 -4
  20. data/lib/awspec/helper/finder/iam.rb +16 -16
  21. data/lib/awspec/helper/finder/lambda.rb +4 -4
  22. data/lib/awspec/helper/finder/rds.rb +4 -4
  23. data/lib/awspec/helper/finder/route53.rb +4 -4
  24. data/lib/awspec/helper/finder/s3.rb +6 -6
  25. data/lib/awspec/helper/finder/security_group.rb +12 -12
  26. data/lib/awspec/helper/finder/ses.rb +1 -1
  27. data/lib/awspec/helper/finder/vpc.rb +49 -49
  28. data/lib/awspec/resource_reader.rb +5 -5
  29. data/lib/awspec/type/base.rb +6 -1
  30. data/lib/awspec/type/ebs.rb +2 -0
  31. data/lib/awspec/type/ec2.rb +2 -3
  32. data/lib/awspec/type/elasticache_cache_parameter_group.rb +3 -5
  33. data/lib/awspec/type/network_acl.rb +2 -0
  34. data/lib/awspec/type/rds.rb +8 -6
  35. data/lib/awspec/type/rds_db_parameter_group.rb +3 -5
  36. data/lib/awspec/type/route53_hosted_zone.rb +0 -2
  37. data/lib/awspec/type/route_table.rb +2 -0
  38. data/lib/awspec/type/s3_bucket.rb +6 -8
  39. data/lib/awspec/type/security_group.rb +1 -2
  40. data/lib/awspec/type/ses_identity.rb +15 -15
  41. data/lib/awspec/type/subnet.rb +2 -0
  42. data/lib/awspec/type/vpc.rb +1 -2
  43. data/lib/awspec/version.rb +1 -1
  44. metadata +2 -2
@@ -2,27 +2,27 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module SecurityGroup
4
4
  def find_security_group(id)
5
- res = @ec2_client.describe_security_groups({
6
- filters: [{ name: 'group-id', values: [id] }]
7
- })
5
+ res = ec2_client.describe_security_groups({
6
+ filters: [{ name: 'group-id', values: [id] }]
7
+ })
8
8
 
9
9
  return res[:security_groups].first if res[:security_groups].count == 1
10
- res = @ec2_client.describe_security_groups({
11
- filters: [{ name: 'group-name', values: [id] }]
12
- })
10
+ res = ec2_client.describe_security_groups({
11
+ filters: [{ name: 'group-name', values: [id] }]
12
+ })
13
13
 
14
14
  return res[:security_groups].first if res[:security_groups].count == 1
15
- res = @ec2_client.describe_security_groups({
16
- filters: [{ name: 'tag:Name', values: [id] }]
17
- })
15
+ res = ec2_client.describe_security_groups({
16
+ filters: [{ name: 'tag:Name', values: [id] }]
17
+ })
18
18
 
19
19
  return res[:security_groups].first if res[:security_groups].count == 1
20
20
  end
21
21
 
22
22
  def select_security_group_by_vpc_id(vpc_id)
23
- res = @ec2_client.describe_security_groups({
24
- filters: [{ name: 'vpc-id', values: [vpc_id] }]
25
- })
23
+ res = ec2_client.describe_security_groups({
24
+ filters: [{ name: 'vpc-id', values: [vpc_id] }]
25
+ })
26
26
  res[:security_groups]
27
27
  end
28
28
  end
@@ -2,7 +2,7 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Ses
4
4
  def find_ses_identity(id)
5
- res = @ses_client.list_identities
5
+ res = ses_client.list_identities
6
6
  ret = res[:identities].select do |identity|
7
7
  identity == id
8
8
  end
@@ -2,88 +2,88 @@ module Awspec::Helper
2
2
  module Finder
3
3
  module Vpc
4
4
  def find_vpc(id)
5
- res = @ec2_client.describe_vpcs({
6
- filters: [{ name: 'vpc-id', values: [id] }]
7
- })
5
+ res = ec2_client.describe_vpcs({
6
+ filters: [{ name: 'vpc-id', values: [id] }]
7
+ })
8
8
  return res[:vpcs].first if res[:vpcs].count == 1
9
- res = @ec2_client.describe_vpcs({
10
- filters: [{ name: 'tag:Name', values: [id] }]
11
- })
9
+ res = ec2_client.describe_vpcs({
10
+ filters: [{ name: 'tag:Name', values: [id] }]
11
+ })
12
12
  return res[:vpcs].first if res[:vpcs].count == 1
13
13
  end
14
14
 
15
15
  def find_route_table(route_table_id)
16
- res = @ec2_client.describe_route_tables({
17
- filters: [{ name: 'route-table-id', values: [route_table_id] }]
18
- })
16
+ res = ec2_client.describe_route_tables({
17
+ filters: [{ name: 'route-table-id', values: [route_table_id] }]
18
+ })
19
19
  return res[:route_tables].first if res[:route_tables].count == 1
20
- res = @ec2_client.describe_route_tables({
21
- filters: [{ name: 'tag:Name', values: [route_table_id] }]
22
- })
20
+ res = ec2_client.describe_route_tables({
21
+ filters: [{ name: 'tag:Name', values: [route_table_id] }]
22
+ })
23
23
  return res[:route_tables].first if res[:route_tables].count == 1
24
24
  end
25
25
 
26
26
  def find_network_acl(id)
27
- res = @ec2_client.describe_network_acls({
28
- filters: [{ name: 'network-acl-id', values: [id] }]
29
- })
27
+ res = ec2_client.describe_network_acls({
28
+ filters: [{ name: 'network-acl-id', values: [id] }]
29
+ })
30
30
  return res[:network_acls].first if res[:network_acls].count == 1
31
- res = @ec2_client.describe_network_acls({
32
- filters: [{ name: 'tag:Name', values: [id] }]
33
- })
31
+ res = ec2_client.describe_network_acls({
32
+ filters: [{ name: 'tag:Name', values: [id] }]
33
+ })
34
34
  return res[:network_acls].first if res[:network_acls].count == 1
35
35
  end
36
36
 
37
37
  def select_route_table_by_vpc_id(vpc_id)
38
- res = @ec2_client.describe_route_tables({
39
- filters: [{ name: 'vpc-id', values: [vpc_id] }]
40
- })
38
+ res = ec2_client.describe_route_tables({
39
+ filters: [{ name: 'vpc-id', values: [vpc_id] }]
40
+ })
41
41
  res[:route_tables]
42
42
  end
43
43
 
44
44
  def select_network_acl_by_vpc_id(vpc_id)
45
- res = @ec2_client.describe_network_acls({
46
- filters: [{ name: 'vpc-id', values: [vpc_id] }]
47
- })
45
+ res = ec2_client.describe_network_acls({
46
+ filters: [{ name: 'vpc-id', values: [vpc_id] }]
47
+ })
48
48
  res[:network_acls]
49
49
  end
50
50
 
51
51
  def find_subnet(subnet_id)
52
- res = @ec2_client.describe_subnets({
53
- filters: [{ name: 'subnet-id', values: [subnet_id] }]
54
- })
52
+ res = ec2_client.describe_subnets({
53
+ filters: [{ name: 'subnet-id', values: [subnet_id] }]
54
+ })
55
55
  return res[:subnets].first if res[:subnets].count == 1
56
- res = @ec2_client.describe_subnets({
57
- filters: [{ name: 'tag:Name', values: [subnet_id] }]
58
- })
56
+ res = ec2_client.describe_subnets({
57
+ filters: [{ name: 'tag:Name', values: [subnet_id] }]
58
+ })
59
59
  return res[:subnets].first if res[:subnets].count == 1
60
60
  end
61
61
 
62
62
  def select_subnet_by_vpc_id(vpc_id)
63
- res = @ec2_client.describe_subnets({
64
- filters: [{ name: 'vpc-id', values: [vpc_id] }]
65
- })
63
+ res = ec2_client.describe_subnets({
64
+ filters: [{ name: 'vpc-id', values: [vpc_id] }]
65
+ })
66
66
  res[:subnets]
67
67
  end
68
68
 
69
69
  def find_vpc_peering_connection(vpc_peering_connection_id)
70
- res = @ec2_client.describe_vpc_peering_connections({
71
- filters: [
72
- {
73
- name: 'vpc-peering-connection-id',
74
- values: [vpc_peering_connection_id]
75
- }
76
- ]
77
- })
70
+ res = ec2_client.describe_vpc_peering_connections({
71
+ filters: [
72
+ {
73
+ name: 'vpc-peering-connection-id',
74
+ values: [vpc_peering_connection_id]
75
+ }
76
+ ]
77
+ })
78
78
  return res[:vpc_peering_connections].first if res[:vpc_peering_connections].count == 1
79
- res = @ec2_client.describe_vpc_peering_connections({
80
- filters: [
81
- {
82
- name: 'tag:Name',
83
- values: [vpc_peering_connection_id]
84
- }
85
- ]
86
- })
79
+ res = ec2_client.describe_vpc_peering_connections({
80
+ filters: [
81
+ {
82
+ name: 'tag:Name',
83
+ values: [vpc_peering_connection_id]
84
+ }
85
+ ]
86
+ })
87
87
  return res[:vpc_peering_connections].first if res[:vpc_peering_connections].count == 1
88
88
  end
89
89
  end
@@ -21,12 +21,12 @@ module Awspec
21
21
  private
22
22
 
23
23
  BLACK_LIST_RE = /
24
- create|
25
- delete|
26
24
  clear|
27
- put|
28
- update|
29
- add
25
+ create|delete|put|update|add|
26
+ attach|detach|
27
+ reboot|start|stop|
28
+ modify|reset|replace
29
+ authorize|revoke
30
30
  /ix
31
31
 
32
32
  def match_black_list?(name)
@@ -11,7 +11,6 @@ module Awspec::Type
11
11
 
12
12
  def initialize(id = nil)
13
13
  @display_name = id
14
- super
15
14
  @id = nil
16
15
  end
17
16
 
@@ -28,6 +27,12 @@ module Awspec::Type
28
27
  @id
29
28
  end
30
29
 
30
+ def self.aws_resource(resource)
31
+ define_method :resource do
32
+ @resource ||= Awspec::ResourceReader.new(resource.new(@id))
33
+ end
34
+ end
35
+
31
36
  def method_missing(name)
32
37
  describe = name.to_sym
33
38
  if @resource_via_client.members.include?(describe)
@@ -1,5 +1,7 @@
1
1
  module Awspec::Type
2
2
  class Ebs < Base
3
+ aws_resource Aws::EC2::Volume
4
+
3
5
  def initialize(id)
4
6
  super
5
7
  @resource_via_client = find_ebs(id)
@@ -1,10 +1,9 @@
1
1
  module Awspec::Type
2
2
  class Ec2 < Base
3
- attr_reader :client
3
+ aws_resource Aws::EC2::Instance
4
4
 
5
5
  def initialize(id)
6
6
  super
7
- @client = @ec2_client
8
7
  @resource_via_client = find_ec2(id)
9
8
  @id = @resource_via_client[:instance_id] if @resource_via_client
10
9
  end
@@ -30,7 +29,7 @@ module Awspec::Type
30
29
  filters: [{ name: 'instance-id', values: [@id] }]
31
30
  }
32
31
  option[:public_ips] = [ip_address] if ip_address
33
- ret = @ec2_client.describe_addresses(option)
32
+ ret = ec2_client.describe_addresses(option)
34
33
  return ret[:addresses].count == 1 if ip_address
35
34
  return ret[:addresses].count > 0 unless ip_address
36
35
  end
@@ -1,13 +1,11 @@
1
1
  module Awspec::Type
2
2
  class ElasticacheCacheParameterGroup < Base
3
- attr_reader :parameters
4
-
5
3
  def initialize(name)
6
4
  super
7
5
  @parameters = {}
8
- res = @elasticache_client.describe_cache_parameters({
9
- cache_parameter_group_name: name
10
- })
6
+ res = elasticache_client.describe_cache_parameters({
7
+ cache_parameter_group_name: name
8
+ })
11
9
 
12
10
  loop do
13
11
  res.parameters.each do |param|
@@ -1,5 +1,7 @@
1
1
  module Awspec::Type
2
2
  class NetworkAcl < Base
3
+ aws_resource Aws::EC2::NetworkAcl
4
+
3
5
  def initialize(id)
4
6
  super
5
7
  @resource_via_client = find_network_acl(id)
@@ -1,5 +1,7 @@
1
1
  module Awspec::Type
2
2
  class Rds < Base
3
+ aws_resource Aws::RDS::DBInstance
4
+
3
5
  def initialize(id)
4
6
  super
5
7
  @resource_via_client = find_rds(id)
@@ -58,9 +60,9 @@ module Awspec::Type
58
60
 
59
61
  def has_vpc_security_group_name?(sg_id)
60
62
  sgs = @resource_via_client[:vpc_security_groups]
61
- res = @ec2_client.describe_security_groups({
62
- filters: [{ name: 'group-name', values: [sg_id] }]
63
- })
63
+ res = ec2_client.describe_security_groups({
64
+ filters: [{ name: 'group-name', values: [sg_id] }]
65
+ })
64
66
  return false unless res[:security_groups].count == 1
65
67
  sgs.find do |sg|
66
68
  sg[:vpc_security_group_id] == res[:security_groups][0][:group_id]
@@ -69,9 +71,9 @@ module Awspec::Type
69
71
 
70
72
  def has_vpc_security_group_tag_name?(sg_id)
71
73
  sgs = @resource_via_client[:vpc_security_groups]
72
- res = @ec2_client.describe_security_groups({
73
- filters: [{ name: 'tag:Name', values: [sg_id] }]
74
- })
74
+ res = ec2_client.describe_security_groups({
75
+ filters: [{ name: 'tag:Name', values: [sg_id] }]
76
+ })
75
77
  return false unless res[:security_groups].count == 1
76
78
  sgs.find do |sg|
77
79
  sg[:vpc_security_group_id] == res[:security_groups][0][:group_id]
@@ -1,13 +1,11 @@
1
1
  module Awspec::Type
2
2
  class RdsDbParameterGroup < Base
3
- attr_reader :parameters
4
-
5
3
  def initialize(name)
6
4
  super
7
5
  @parameters = {}
8
- res = @rds_client.describe_db_parameters({
9
- db_parameter_group_name: name
10
- })
6
+ res = rds_client.describe_db_parameters({
7
+ db_parameter_group_name: name
8
+ })
11
9
 
12
10
  loop do
13
11
  res.parameters.each do |param|
@@ -1,7 +1,5 @@
1
1
  module Awspec::Type
2
2
  class Route53HostedZone < Base
3
- attr_reader :resource_record_sets
4
-
5
3
  def initialize(id)
6
4
  super
7
5
  @resource_via_client = find_hosted_zone(id)
@@ -1,5 +1,7 @@
1
1
  module Awspec::Type
2
2
  class RouteTable < Base
3
+ aws_resource Aws::EC2::RouteTable
4
+
3
5
  def initialize(id)
4
6
  super
5
7
  @resource_via_client = find_route_table(id)
@@ -1,5 +1,7 @@
1
1
  module Awspec::Type
2
2
  class S3Bucket < Base
3
+ aws_resource Aws::S3::Bucket
4
+
3
5
  def initialize(id)
4
6
  super
5
7
  @resource_via_client = find_bucket(id)
@@ -7,10 +9,10 @@ module Awspec::Type
7
9
  end
8
10
 
9
11
  def has_object?(key)
10
- res = @s3_client.head_object({
11
- bucket: @id,
12
- key: key.sub(%r(\A/), '')
13
- })
12
+ res = s3_client.head_object({
13
+ bucket: @id,
14
+ key: key.sub(%r(\A/), '')
15
+ })
14
16
  res
15
17
  rescue
16
18
  false
@@ -58,10 +60,6 @@ module Awspec::Type
58
60
  bp ? (bp.policy.read == policy.gsub(/(\n|\r|\r\n|\s|\t)/, '')) : false
59
61
  end
60
62
 
61
- def resource
62
- @resource ||= Awspec::ResourceReader.new(Aws::S3::Bucket.new(@id))
63
- end
64
-
65
63
  private
66
64
 
67
65
  def cors_rules
@@ -1,10 +1,9 @@
1
1
  module Awspec::Type
2
2
  class SecurityGroup < Base
3
- attr_reader :client
3
+ aws_resource Aws::EC2::SecurityGroup
4
4
 
5
5
  def initialize(id)
6
6
  super
7
- @client = @ec2_client
8
7
  @inbound = true
9
8
  @resource_via_client = find_security_group(id)
10
9
  @id = @resource_via_client[:group_id] if @resource_via_client
@@ -7,9 +7,9 @@ module Awspec::Type
7
7
  end
8
8
 
9
9
  def has_identity_policy?(name)
10
- res = @ses_client.list_identity_policies({
11
- identity: @id
12
- })
10
+ res = ses_client.list_identity_policies({
11
+ identity: @id
12
+ })
13
13
  res[:policy_names].find do |policy_name|
14
14
  policy_name == name
15
15
  end
@@ -22,17 +22,17 @@ module Awspec::Type
22
22
 
23
23
  dkim_attributes.each do |attribute|
24
24
  define_method attribute do
25
- res = @ses_client.get_identity_dkim_attributes({
26
- identities: [@id]
27
- })
25
+ res = ses_client.get_identity_dkim_attributes({
26
+ identities: [@id]
27
+ })
28
28
  res[:dkim_attributes][@id][attribute.to_sym]
29
29
  end
30
30
  end
31
31
 
32
32
  def has_dkim_tokens?(token)
33
- res = @ses_client.get_identity_dkim_attributes({
34
- identities: [@id]
35
- })
33
+ res = ses_client.get_identity_dkim_attributes({
34
+ identities: [@id]
35
+ })
36
36
  res[:dkim_attributes][@id][:tokens].include?(token)
37
37
  end
38
38
 
@@ -44,9 +44,9 @@ module Awspec::Type
44
44
 
45
45
  notification_attributes.each do |attribute|
46
46
  define_method attribute do
47
- res = @ses_client.get_identity_notification_attributes({
48
- identities: [@id]
49
- })
47
+ res = ses_client.get_identity_notification_attributes({
48
+ identities: [@id]
49
+ })
50
50
  res[:notification_attributes][@id][attribute.to_sym]
51
51
  end
52
52
  end
@@ -58,9 +58,9 @@ module Awspec::Type
58
58
 
59
59
  verification_attributes.each do |attribute|
60
60
  define_method attribute do
61
- res = @ses_client.get_identity_verification_attributes({
62
- identities: [@id]
63
- })
61
+ res = ses_client.get_identity_verification_attributes({
62
+ identities: [@id]
63
+ })
64
64
  res[:verification_attributes][@id][attribute.to_sym]
65
65
  end
66
66
  end