aws-cfn-resources 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d2639b7461e90b8ad168454ba7d3147e188a068
4
- data.tar.gz: b8c6e5116d5cd6da58ea33d77c544ecfb7618461
3
+ metadata.gz: fa5c44a0aff255bc860fa8dfb43c5fceffc8224c
4
+ data.tar.gz: be93cc9d19a332a5818ea3826699bd96a6436960
5
5
  SHA512:
6
- metadata.gz: 0a2733b3c991b815bb68d885c5df8de537da96015e804e01d82702d59c90b8bcf12754aafeab25e9a846ea9841402779c70785d77fde0d37e0b4e411e5f345ca
7
- data.tar.gz: a1149eca57fdc2507b64e6cad1704f02fead0363cf1cce7ae2048f7870d97106013054cd38784871123df514f964dfd8833d442ed53d0d75689125bb4c35edde
6
+ metadata.gz: c1c2392ef612692b61a6800f7f789a55e81a03465ce11ddd2dcac98faa3bf5e2ee2d31c724af780cbe002d4238c517b0ed9e4ea71a775f0a798a5361ac91af5c
7
+ data.tar.gz: 5a404644a0f7594ef0b661a5a067937c5154a7d2ada20e21e61608b1b0b65993172d651ac3a0b1d467e02e09208c21aa2c47cd44fd6df80dcd8ae9473373c706
@@ -0,0 +1,263 @@
1
+ require 'aws-sdk-v1'
2
+
3
+ #set AWS.config(region: 'region-name')
4
+ #initialize stack with stack = AWS::CloudFormation::Stack.new('stack-name')
5
+
6
+ module AWS
7
+ class CloudFormation
8
+ class Stack
9
+
10
+ def autoscaling_group(logical_id)
11
+ AWS::AutoScaling.new.groups[autoscaling_group_ids[logical_id.to_sym]]
12
+ end
13
+
14
+ def autoscaling_groups
15
+ autoscaling_group_ids.inject({}) { |hash, (k,v)| hash[k] = autoscaling_group(k); hash }
16
+ end
17
+
18
+ def autoscaling_group_ids
19
+ get_resources "AWS::AutoScaling::AutoScalingGroup"
20
+ end
21
+
22
+ def bucket(logical_id)
23
+ AWS::S3.new.buckets[bucket_ids[logical_id.to_sym]]
24
+ end
25
+
26
+ def buckets
27
+ bucket_ids.inject({}) { |hash, (k,v)| hash[k] = bucket(k); hash }
28
+ end
29
+
30
+ def bucket_ids
31
+ get_resources "AWS::S3::Bucket"
32
+ end
33
+
34
+ def cloudwatch_alarm(logical_id)
35
+ AWS::CloudWatch.new.alarms[cloudwatch_alarm_ids[logical_id.to_sym]]
36
+ end
37
+
38
+ def cloudwatch_alarms
39
+ cloudwatch_alarm_ids.inject({}) { |hash, (k,v)| hash[k] = cloudwatch_alarm(k); hash }
40
+ end
41
+
42
+ def cloudwatch_alarm_ids
43
+ get_resources "AWS::CloudWatch::Alarm"
44
+ end
45
+
46
+ def db_instance(logical_id)
47
+ AWS::RDS.new.db_instances[db_instance_ids[logical_id.to_sym]]
48
+ end
49
+
50
+ def db_instances
51
+ db_instance_ids.inject({}) { |hash, (k,v)| hash[k] = db_instance(k); hash }
52
+ end
53
+
54
+ def db_instance_ids
55
+ get_resources "AWS::RDS::DBInstance"
56
+ end
57
+
58
+ def eip(logical_id)
59
+ AWS::EC2.new.elastic_ips[eip_ids[logical_id.to_sym]]
60
+ end
61
+
62
+ alias_method :elastic_ip, :eip
63
+
64
+ def eips
65
+ eip_ids.inject({}) { |hash, (k,v)| hash[k] = eip(k) }
66
+ end
67
+
68
+ alias_method :elastic_ips, :eips
69
+
70
+ def eip_ids
71
+ get_resources "AWS::EC2::EIP"
72
+ end
73
+
74
+ def elb(logical_id)
75
+ AWS::ELB.new.load_balancers[elb_ids[logical_id.to_sym]]
76
+ end
77
+
78
+ def elbs
79
+ elb_ids.inject({}) { |hash, (k,v)| hash[k] = elb(k); hash }
80
+ end
81
+
82
+ def elb_ids
83
+ get_resources "AWS::ElasticLoadBalancing::LoadBalancer"
84
+ end
85
+
86
+ 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]]
88
+ end
89
+
90
+ def iam_access_key_ids
91
+ get_resources "AWS::IAM::AccessKey"
92
+ end
93
+
94
+ def iam_group(logical_id)
95
+ AWS::IAM.new.groups[iam_group_ids[logical_id.to_sym]]
96
+ end
97
+
98
+ def iam_groups
99
+ iam_group_ids.inject({}) { |hash, (k,v)| hash[k] = iam_group(k); hash }
100
+ end
101
+
102
+ def iam_group_ids
103
+ get_resources "AWS::IAM::Group"
104
+ end
105
+
106
+ def iam_policy
107
+ puts "use Stack.iam_group#policies or Stack.iam_user#policies"
108
+ end
109
+
110
+ alias_method :iam_policies, :iam_policy
111
+
112
+ def iam_policy_ids
113
+ get_resources "AWS::IAM::Policy"
114
+ end
115
+
116
+ def iam_user(logical_id)
117
+ AWS::IAM.new.users[iam_user_ids[logical_id.to_sym]]
118
+ end
119
+
120
+ def iam_users
121
+ iam_user_ids.inject({}) { |hash, (k,v)| hash[k] = iam_user(k); hash }
122
+ end
123
+
124
+ def iam_user_ids
125
+ get_resources "AWS::IAM::User"
126
+ end
127
+
128
+ def instance(logical_id)
129
+ AWS::EC2.new.instances[instance_ids[logical_id.to_sym]]
130
+ end
131
+
132
+ def instances
133
+ instance_ids.inject({}) { |hash, (k,v)| hash[k] = instance(k); hash }
134
+ end
135
+
136
+ def instance_ids
137
+ get_resources "AWS::EC2::Instance"
138
+ end
139
+
140
+ def internet_gateway(logical_id)
141
+ AWS::EC2.new.internet_gateways[internet_gateway_ids[logical_id.to_sym]]
142
+ end
143
+
144
+ alias_method :igw, :internet_gateway
145
+
146
+ def internet_gateway_ids
147
+ get_resources "AWS::EC2::InternetGateway"
148
+ end
149
+
150
+ def launch_configuration(logical_id)
151
+ AWS::AutoScaling.new.launch_configurations[launch_configuration_ids[logical_id.to_sym]]
152
+ end
153
+
154
+ alias_method :launch_config, :launch_configuration
155
+
156
+ def launch_configurations
157
+ launch_configuration_ids.inject({}) { |hash, (k,v)| hash[k] = launch_configuration(k); hash }
158
+ end
159
+
160
+ alias_method :launch_configs, :launch_configurations
161
+
162
+ def launch_configuration_ids
163
+ get_resources "AWS::AutoScaling::LaunchConfiguration"
164
+ end
165
+
166
+ def network_interface(logical_id)
167
+ AWS::EC2.new.network_interfaces[network_interface_ids[logical_id.to_sym]]
168
+ end
169
+
170
+ alias_method :nic, :network_interface
171
+
172
+ def network_interfaces
173
+ network_interface_ids.inject({}) { |hash, (k,v)| hash[k] = network_interface(k); hash }
174
+ end
175
+
176
+ alias_method :nics, :network_interfaces
177
+
178
+ def network_interface_ids
179
+ get_resources "AWS::EC2::NetworkInterface"
180
+ end
181
+
182
+ def route_table(logical_id)
183
+ AWS::EC2.new.route_tables[route_table_ids[logical_id.to_sym]]
184
+ end
185
+
186
+ def route_table_ids
187
+ get_resources "AWS::EC2::RouteTable"
188
+ end
189
+
190
+ def scaling_policy(as_group_logical_id, policy_logical_id)
191
+ 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)
194
+ end
195
+
196
+ def scaling_policies(as_group_logical_id)
197
+ scaling_policy_ids.inject({}) { |hash, (k,v)| hash[k] = scaling_policy(as_group_logical_id,k.to_s); hash }
198
+ end
199
+
200
+ def scaling_policy_ids
201
+ get_resources "AWS::AutoScaling::ScalingPolicy"
202
+ end
203
+
204
+ def security_group(logical_id)
205
+ AWS::EC2.new.security_groups.filter('group-id',security_group_ids[logical_id.to_sym]).first
206
+ end
207
+
208
+ def security_groups
209
+ security_group_ids.inject({}) { |hash, (k,v)| hash[k] = security_group(k); hash }
210
+ end
211
+
212
+ def security_group_ids
213
+ get_resources "AWS::EC2::SecurityGroup"
214
+ end
215
+
216
+ def subnet(logical_id)
217
+ AWS::EC2.new.subnets[subnet_ids[logical_id.to_sym]]
218
+ end
219
+
220
+ def subnets
221
+ subnet_ids.inject({}) { |hash, (k,v)| hash[k] = subnet(k); hash }
222
+ end
223
+
224
+ def subnet_ids
225
+ get_resources "AWS::EC2::Subnet"
226
+ end
227
+
228
+ def volume(logical_id)
229
+ AWS::EC2.new.volumes[volume_ids[logical_id.to_sym]]
230
+ end
231
+
232
+ def volumes
233
+ volume_ids.inject({}) { |hash, (k,v)| hash[k] = volume(k); hash }
234
+ end
235
+
236
+ def volume_ids
237
+ get_resources "AWS::EC2::Volume"
238
+ end
239
+
240
+ def vpc(logical_id)
241
+ AWS::EC2.new.vpcs[vpc_ids[logical_id.to_sym]]
242
+ end
243
+
244
+ def vpcs
245
+ vpc_ids.inject({}) { |hash, (k,v)| hash[k] = vpc(k); hash }
246
+ end
247
+
248
+ def vpc_ids
249
+ get_resources "AWS::EC2::VPC"
250
+ end
251
+
252
+ private
253
+
254
+ 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
258
+ end
259
+
260
+ end
261
+ end
262
+ end
263
+
@@ -6,7 +6,11 @@ module AWS
6
6
 
7
7
  def stack
8
8
  stack_name = tag_value "aws:cloudformation:stack-name"
9
- AWS::CloudFormation::Stack.new(stack_name)
9
+ if stack_name
10
+ AWS::CloudFormation::Stack.new(stack_name)
11
+ else
12
+ nil
13
+ end
10
14
  end
11
15
 
12
16
  private
@@ -1,263 +1 @@
1
- require 'aws-sdk-v1'
2
-
3
- #set AWS.config(region: 'region-name')
4
- #initialize stack with stack = AWS::CloudFormation::Stack.new('stack-name')
5
-
6
- module AWS
7
- class CloudFormation
8
- class Stack
9
-
10
- def autoscaling_group(logical_id)
11
- AWS::AutoScaling.new.groups[autoscaling_group_ids[logical_id.to_sym]]
12
- end
13
-
14
- def autoscaling_groups
15
- autoscaling_group_ids.inject({}) { |hash, (k,v)| hash[k] = autoscaling_group(k); hash }
16
- end
17
-
18
- def autoscaling_group_ids
19
- get_resources "AWS::AutoScaling::AutoScalingGroup"
20
- end
21
-
22
- def bucket(logical_id)
23
- AWS::S3.new.buckets[bucket_ids[logical_id.to_sym]]
24
- end
25
-
26
- def buckets
27
- bucket_ids.inject({}) { |hash, (k,v)| hash[k] = bucket(k); hash }
28
- end
29
-
30
- def bucket_ids
31
- get_resources "AWS::S3::Bucket"
32
- end
33
-
34
- def cloudwatch_alarm(logical_id)
35
- AWS::CloudWatch.new.alarms[cloudwatch_alarm_ids[logical_id.to_sym]]
36
- end
37
-
38
- def cloudwatch_alarms
39
- cloudwatch_alarm_ids.inject({}) { |hash, (k,v)| hash[k] = cloudwatch_alarm(k); hash }
40
- end
41
-
42
- def cloudwatch_alarm_ids
43
- get_resources "AWS::CloudWatch::Alarm"
44
- end
45
-
46
- def db_instance(logical_id)
47
- AWS::RDS.new.db_instances[db_instance_ids[logical_id.to_sym]]
48
- end
49
-
50
- def db_instances
51
- db_instance_ids.inject({}) { |hash, (k,v)| hash[k] = db_instance(k); hash }
52
- end
53
-
54
- def db_instance_ids
55
- get_resources "AWS::RDS::DBInstance"
56
- end
57
-
58
- def eip(logical_id)
59
- AWS::EC2.new.elastic_ips[eip_ids[logical_id.to_sym]]
60
- end
61
-
62
- alias_method :elastic_ip, :eip
63
-
64
- def eips
65
- eip_ids.inject({}) { |hash, (k,v)| hash[k] = eip(k) }
66
- end
67
-
68
- alias_method :elastic_ips, :eips
69
-
70
- def eip_ids
71
- get_resources "AWS::EC2::EIP"
72
- end
73
-
74
- def elb(logical_id)
75
- AWS::ELB.new.load_balancers[elb_ids[logical_id.to_sym]]
76
- end
77
-
78
- def elbs
79
- elb_ids.inject({}) { |hash, (k,v)| hash[k] = elb(k); hash }
80
- end
81
-
82
- def elb_ids
83
- get_resources "AWS::ElasticLoadBalancing::LoadBalancer"
84
- end
85
-
86
- 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]]
88
- end
89
-
90
- def iam_access_key_ids
91
- get_resources "AWS::IAM::AccessKey"
92
- end
93
-
94
- def iam_group(logical_id)
95
- AWS::IAM.new.groups[iam_group_ids[logical_id.to_sym]]
96
- end
97
-
98
- def iam_groups
99
- iam_group_ids.inject({}) { |hash, (k,v)| hash[k] = iam_group(k); hash }
100
- end
101
-
102
- def iam_group_ids
103
- get_resources "AWS::IAM::Group"
104
- end
105
-
106
- def iam_policy
107
- puts "use Stack.iam_group#policies or Stack.iam_user#policies"
108
- end
109
-
110
- alias_method :iam_policies, :iam_policy
111
-
112
- def iam_policy_ids
113
- get_resources "AWS::IAM::Policy"
114
- end
115
-
116
- def iam_user(logical_id)
117
- AWS::IAM.new.users[iam_user_ids[logical_id.to_sym]]
118
- end
119
-
120
- def iam_users
121
- iam_user_ids.inject({}) { |hash, (k,v)| hash[k] = iam_user(k); hash }
122
- end
123
-
124
- def iam_user_ids
125
- get_resources "AWS::IAM::User"
126
- end
127
-
128
- def instance(logical_id)
129
- AWS::EC2.new.instances[instance_ids[logical_id.to_sym]]
130
- end
131
-
132
- def instances
133
- instance_ids.inject({}) { |hash, (k,v)| hash[k] = instance(k); hash }
134
- end
135
-
136
- def instance_ids
137
- get_resources "AWS::EC2::Instance"
138
- end
139
-
140
- def internet_gateway(logical_id)
141
- AWS::EC2.new.internet_gateways[internet_gateway_ids[logical_id.to_sym]]
142
- end
143
-
144
- alias_method :igw, :internet_gateway
145
-
146
- def internet_gateway_ids
147
- get_resources "AWS::EC2::InternetGateway"
148
- end
149
-
150
- def launch_configuration(logical_id)
151
- AWS::AutoScaling.new.launch_configurations[launch_configuration_ids[logical_id.to_sym]]
152
- end
153
-
154
- alias_method :launch_config, :launch_configuration
155
-
156
- def launch_configurations
157
- launch_configuration_ids.inject({}) { |hash, (k,v)| hash[k] = launch_configuration(k); hash }
158
- end
159
-
160
- alias_method :launch_configs, :launch_configurations
161
-
162
- def launch_configuration_ids
163
- get_resources "AWS::AutoScaling::LaunchConfiguration"
164
- end
165
-
166
- def network_interface(logical_id)
167
- AWS::EC2.new.network_interfaces[network_interface_ids[logical_id.to_sym]]
168
- end
169
-
170
- alias_method :nic, :network_interface
171
-
172
- def network_interfaces
173
- network_interface_ids.inject({}) { |hash, (k,v)| hash[k] = network_interface(k); hash }
174
- end
175
-
176
- alias_method :nics, :network_interfaces
177
-
178
- def network_interface_ids
179
- get_resources "AWS::EC2::NetworkInterface"
180
- end
181
-
182
- def route_table(logical_id)
183
- AWS::EC2.new.route_tables[route_table_ids[logical_id.to_sym]]
184
- end
185
-
186
- def route_table_ids
187
- get_resources "AWS::EC2::RouteTable"
188
- end
189
-
190
- def scaling_policy(as_group_logical_id, policy_logical_id)
191
- 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)
194
- end
195
-
196
- def scaling_policies(as_group_logical_id)
197
- scaling_policy_ids.inject({}) { |hash, (k,v)| hash[k] = scaling_policy(as_group_logical_id,k.to_s); hash }
198
- end
199
-
200
- def scaling_policy_ids
201
- get_resources "AWS::AutoScaling::ScalingPolicy"
202
- end
203
-
204
- def security_group(logical_id)
205
- AWS::EC2.new.security_groups.filter('group-id',security_group_ids[logical_id.to_sym]).first
206
- end
207
-
208
- def security_groups
209
- security_group_ids.inject({}) { |hash, (k,v)| hash[k] = security_group(k); hash }
210
- end
211
-
212
- def security_group_ids
213
- get_resources "AWS::EC2::SecurityGroup"
214
- end
215
-
216
- def subnet(logical_id)
217
- AWS::EC2.new.subnets[subnet_ids[logical_id.to_sym]]
218
- end
219
-
220
- def subnets
221
- subnet_ids.inject({}) { |hash, (k,v)| hash[k] = subnet(k); hash }
222
- end
223
-
224
- def subnet_ids
225
- get_resources "AWS::EC2::Subnet"
226
- end
227
-
228
- def volume(logical_id)
229
- AWS::EC2.new.volumes[volume_ids[logical_id.to_sym]]
230
- end
231
-
232
- def volumes
233
- volume_ids.inject({}) { |hash, (k,v)| hash[k] = volume(k); hash }
234
- end
235
-
236
- def volume_ids
237
- get_resources "AWS::EC2::Volume"
238
- end
239
-
240
- def vpc(logical_id)
241
- AWS::EC2.new.vpcs[vpc_ids[logical_id.to_sym]]
242
- end
243
-
244
- def vpcs
245
- vpc_ids.inject({}) { |hash, (k,v)| hash[k] = vpc(k); hash }
246
- end
247
-
248
- def vpc_ids
249
- get_resources "AWS::EC2::VPC"
250
- end
251
-
252
- private
253
-
254
- 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
258
- end
259
-
260
- end
261
- end
262
- end
263
-
1
+ require 'aws-cloudformation-stack'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-cfn-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shayne Clausson
@@ -63,6 +63,7 @@ extra_rdoc_files: []
63
63
  files:
64
64
  - lib/aws-autoscaling-group.rb
65
65
  - lib/aws-cfn-resources.rb
66
+ - lib/aws-cloudformation-stack.rb
66
67
  - lib/aws-core-model.rb
67
68
  - lib/aws-elb-loadbalancer.rb
68
69
  - lib/resources.rb