aws-cfn-resources 0.2.1 → 0.2.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-cloudformation-stack.rb +61 -22
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa5c44a0aff255bc860fa8dfb43c5fceffc8224c
4
- data.tar.gz: be93cc9d19a332a5818ea3826699bd96a6436960
3
+ metadata.gz: 05653f56afb0c8968dfe364b3a4651e2d1741494
4
+ data.tar.gz: c3884f0764220cbf61dce3678e798ef157804ae8
5
5
  SHA512:
6
- metadata.gz: c1c2392ef612692b61a6800f7f789a55e81a03465ce11ddd2dcac98faa3bf5e2ee2d31c724af780cbe002d4238c517b0ed9e4ea71a775f0a798a5361ac91af5c
7
- data.tar.gz: 5a404644a0f7594ef0b661a5a067937c5154a7d2ada20e21e61608b1b0b65993172d651ac3a0b1d467e02e09208c21aa2c47cd44fd6df80dcd8ae9473373c706
6
+ metadata.gz: f71c0f4d40229defe90037a124dd39a58d10032b451bdd89a9fe64bf56c64d7ff5bb143acafe441689750a9b73312bdd1b525deb497e8172ce5ea3910ed9ee59
7
+ data.tar.gz: 7e5c0ce5b3ae1da284fc3597deadb3997f3b1a43dbb7d5e29332043863f64634023b71555f846e52416816098269570ef3dc1298603ed43256c112ef49a8416b
@@ -6,9 +6,24 @@ require 'aws-sdk-v1'
6
6
  module AWS
7
7
  class CloudFormation
8
8
  class Stack
9
+
10
+ def initialize name, options = {}
11
+ @name = name
12
+
13
+ @as = AWS::AutoScaling.new
14
+ @cw = AWS::CloudWatch.new
15
+ @ec2 = AWS::EC2.new
16
+ @elb = AWS::ELB.new
17
+ @iam = AWS::IAM.new
18
+ @rds = AWS::RDS.new
19
+ @s3 = AWS::S3.new
20
+
21
+ super
22
+ end
9
23
 
10
24
  def autoscaling_group(logical_id)
11
- AWS::AutoScaling.new.groups[autoscaling_group_ids[logical_id.to_sym]]
25
+ id = autoscaling_group_ids[logical_id.to_sym]
26
+ @as.groups[id] if id
12
27
  end
13
28
 
14
29
  def autoscaling_groups
@@ -20,7 +35,8 @@ module AWS
20
35
  end
21
36
 
22
37
  def bucket(logical_id)
23
- AWS::S3.new.buckets[bucket_ids[logical_id.to_sym]]
38
+ id = bucket_ids[logical_id.to_sym]
39
+ @s3.buckets[id] if id
24
40
  end
25
41
 
26
42
  def buckets
@@ -32,7 +48,8 @@ module AWS
32
48
  end
33
49
 
34
50
  def cloudwatch_alarm(logical_id)
35
- AWS::CloudWatch.new.alarms[cloudwatch_alarm_ids[logical_id.to_sym]]
51
+ id = cloudwatch_alarm_ids[logical_id.to_sym]
52
+ @cw.alarms[id] if id
36
53
  end
37
54
 
38
55
  def cloudwatch_alarms
@@ -56,7 +73,8 @@ module AWS
56
73
  end
57
74
 
58
75
  def eip(logical_id)
59
- AWS::EC2.new.elastic_ips[eip_ids[logical_id.to_sym]]
76
+ id = eip_ids[logical_id.to_sym]
77
+ @ec2.elastic_ips[id] if id
60
78
  end
61
79
 
62
80
  alias_method :elastic_ip, :eip
@@ -72,7 +90,8 @@ module AWS
72
90
  end
73
91
 
74
92
  def elb(logical_id)
75
- AWS::ELB.new.load_balancers[elb_ids[logical_id.to_sym]]
93
+ id = elb_ids[logical_id.to_sym]
94
+ @elb.load_balancers[id] if id
76
95
  end
77
96
 
78
97
  def elbs
@@ -84,7 +103,13 @@ module AWS
84
103
  end
85
104
 
86
105
  def iam_access_key(user_logical_id, key_logical_id)
87
- iam_user(user_logical_id).access_keys[iam_access_key_ids[key_logical_id.to_sym]]
106
+ id = iam_access_key_ids[key_logical_id.to_sym]
107
+ user = iam_user(user_logical_id)
108
+ if (id && user)
109
+ user.access_keys[id]
110
+ else
111
+ nil
112
+ end
88
113
  end
89
114
 
90
115
  def iam_access_key_ids
@@ -92,7 +117,8 @@ module AWS
92
117
  end
93
118
 
94
119
  def iam_group(logical_id)
95
- AWS::IAM.new.groups[iam_group_ids[logical_id.to_sym]]
120
+ id = iam_group_ids[logical_id.to_sym]
121
+ @iam.groups[id] if id
96
122
  end
97
123
 
98
124
  def iam_groups
@@ -114,7 +140,8 @@ module AWS
114
140
  end
115
141
 
116
142
  def iam_user(logical_id)
117
- AWS::IAM.new.users[iam_user_ids[logical_id.to_sym]]
143
+ id = iam_user_ids[logical_id.to_sym]
144
+ @iam.users[id] if id
118
145
  end
119
146
 
120
147
  def iam_users
@@ -126,7 +153,8 @@ module AWS
126
153
  end
127
154
 
128
155
  def instance(logical_id)
129
- AWS::EC2.new.instances[instance_ids[logical_id.to_sym]]
156
+ id = instance_ids[logical_id.to_sym]
157
+ @ec2.instances[id] if id
130
158
  end
131
159
 
132
160
  def instances
@@ -138,7 +166,8 @@ module AWS
138
166
  end
139
167
 
140
168
  def internet_gateway(logical_id)
141
- AWS::EC2.new.internet_gateways[internet_gateway_ids[logical_id.to_sym]]
169
+ id = internet_gateway_ids[logical_id.to_sym]
170
+ @ec2.internet_gateways[id] if id
142
171
  end
143
172
 
144
173
  alias_method :igw, :internet_gateway
@@ -148,7 +177,8 @@ module AWS
148
177
  end
149
178
 
150
179
  def launch_configuration(logical_id)
151
- AWS::AutoScaling.new.launch_configurations[launch_configuration_ids[logical_id.to_sym]]
180
+ id = launch_configuration_ids[logical_id.to_sym]
181
+ @as.launch_configurations[id] if id
152
182
  end
153
183
 
154
184
  alias_method :launch_config, :launch_configuration
@@ -164,7 +194,8 @@ module AWS
164
194
  end
165
195
 
166
196
  def network_interface(logical_id)
167
- AWS::EC2.new.network_interfaces[network_interface_ids[logical_id.to_sym]]
197
+ id = network_interface_ids[logical_id.to_sym]
198
+ @ec2.network_interfaces[id] if id
168
199
  end
169
200
 
170
201
  alias_method :nic, :network_interface
@@ -180,7 +211,8 @@ module AWS
180
211
  end
181
212
 
182
213
  def route_table(logical_id)
183
- AWS::EC2.new.route_tables[route_table_ids[logical_id.to_sym]]
214
+ id = route_table_ids[logical_id.to_sym]
215
+ @ec2.route_tables[id] if id
184
216
  end
185
217
 
186
218
  def route_table_ids
@@ -189,8 +221,13 @@ module AWS
189
221
 
190
222
  def scaling_policy(as_group_logical_id, policy_logical_id)
191
223
  group = autoscaling_group(as_group_logical_id)
192
- policy = scaling_policy_ids[policy_logical_id.to_sym].split('/')[-1]
193
- AWS::AutoScaling::ScalingPolicy.new(group, policy)
224
+ id = scaling_policy_ids[policy_logical_id.to_sym]
225
+ policy = id.split('/')[-1] unless id.nil?
226
+ if (group && policy)
227
+ AWS::AutoScaling::ScalingPolicy.new(group, policy)
228
+ else
229
+ nil
230
+ end
194
231
  end
195
232
 
196
233
  def scaling_policies(as_group_logical_id)
@@ -202,7 +239,8 @@ module AWS
202
239
  end
203
240
 
204
241
  def security_group(logical_id)
205
- AWS::EC2.new.security_groups.filter('group-id',security_group_ids[logical_id.to_sym]).first
242
+ id = security_group_ids[logical_id.to_sym]
243
+ @ec2.security_groups.filter('group-id',id).first if id
206
244
  end
207
245
 
208
246
  def security_groups
@@ -214,7 +252,8 @@ module AWS
214
252
  end
215
253
 
216
254
  def subnet(logical_id)
217
- AWS::EC2.new.subnets[subnet_ids[logical_id.to_sym]]
255
+ id = subnet_ids[logical_id.to_sym]
256
+ @ec2.subnets[id] if id
218
257
  end
219
258
 
220
259
  def subnets
@@ -226,7 +265,8 @@ module AWS
226
265
  end
227
266
 
228
267
  def volume(logical_id)
229
- AWS::EC2.new.volumes[volume_ids[logical_id.to_sym]]
268
+ id = volume_ids[logical_id.to_sym]
269
+ @ec2.volumes[id] if id
230
270
  end
231
271
 
232
272
  def volumes
@@ -238,7 +278,8 @@ module AWS
238
278
  end
239
279
 
240
280
  def vpc(logical_id)
241
- AWS::EC2.new.vpcs[vpc_ids[logical_id.to_sym]]
281
+ id = vpc_ids[logical_id.to_sym]
282
+ @ec2.vpcs[id] if id
242
283
  end
243
284
 
244
285
  def vpcs
@@ -252,9 +293,7 @@ module AWS
252
293
  private
253
294
 
254
295
  def get_resources(resource_type)
255
- hash = {}
256
- resource_summaries.select { |rs| rs[:resource_type] == "#{resource_type}" }.collect { |r| hash[r[:logical_resource_id].to_sym] = r[:physical_resource_id] }
257
- return hash
296
+ resource_summaries.select { |rs| rs[:resource_type] == "#{resource_type}" }.inject({}) { |hash, r| hash[r[:logical_resource_id].to_sym] = r[:physical_resource_id]; hash }
258
297
  end
259
298
 
260
299
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-cfn-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shayne Clausson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-11 00:00:00.000000000 Z
11
+ date: 2015-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc