cloudster 2.10.0 → 2.11.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.
- data/Gemfile.lock +3 -3
- data/VERSION +1 -1
- data/cloudster.gemspec +2 -2
- data/lib/cloudster/cloud.rb +67 -21
- metadata +3 -3
data/Gemfile.lock
CHANGED
@@ -3,7 +3,7 @@ GEM
|
|
3
3
|
specs:
|
4
4
|
builder (3.1.4)
|
5
5
|
diff-lcs (1.1.3)
|
6
|
-
excon (0.16.
|
6
|
+
excon (0.16.10)
|
7
7
|
fog (1.7.0)
|
8
8
|
builder
|
9
9
|
excon (~> 0.14)
|
@@ -26,9 +26,9 @@ GEM
|
|
26
26
|
multi_json (1.3.7)
|
27
27
|
net-scp (1.0.4)
|
28
28
|
net-ssh (>= 1.99.1)
|
29
|
-
net-ssh (2.6.
|
29
|
+
net-ssh (2.6.2)
|
30
30
|
nokogiri (1.5.5)
|
31
|
-
rake (10.0.
|
31
|
+
rake (10.0.2)
|
32
32
|
rdoc (3.12)
|
33
33
|
json (~> 1.4)
|
34
34
|
rspec (2.12.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.11.0
|
data/cloudster.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "cloudster"
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.11.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Emil Soman"]
|
12
|
-
s.date = "2012-11-
|
12
|
+
s.date = "2012-11-23"
|
13
13
|
s.description = "Cloudster is a Ruby gem that was born to cut the learning curve involved \n in writing your own CloudFormation templates. If you don't know what a CloudFormation template is, \n but know about the AWS Cloud offerings, you can still use cloudster to provision your stack. \n Still in infancy , cloudster can create a very basic stack like a breeze. All kinds of contribution welcome !"
|
14
14
|
s.email = "emil.soman@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/cloudster/cloud.rb
CHANGED
@@ -180,7 +180,7 @@ module Cloudster
|
|
180
180
|
# ==== Returns
|
181
181
|
# * Array of hashes, example: [{:address => 'simcoprod01.cu7u2t4uz396.us-east-1.rds.amazonaws.com', :port => '3306'}]
|
182
182
|
def get_database_endpoints(options = {})
|
183
|
-
rds_physical_ids =
|
183
|
+
rds_physical_ids = get_resource_ids(resources(options), "AWS::RDS::DBInstance").values
|
184
184
|
return [] if rds_physical_ids.empty?
|
185
185
|
rds = Fog::AWS::RDS.new(:aws_access_key_id => @access_key_id, :aws_secret_access_key => @secret_access_key)
|
186
186
|
endpoints = []
|
@@ -191,7 +191,34 @@ module Cloudster
|
|
191
191
|
return endpoints
|
192
192
|
end
|
193
193
|
|
194
|
-
#
|
194
|
+
# Get details of all RDS resources in a stack
|
195
|
+
#
|
196
|
+
# ==== Examples
|
197
|
+
# cloud = Cloudster::Cloud.new(
|
198
|
+
# :access_key_id => 'aws_access_key_id'
|
199
|
+
# :secret_access_key => 'aws_secret_access_key',
|
200
|
+
# )
|
201
|
+
# cloud.get_rds_details(:stack_name => 'ShittyStack')
|
202
|
+
#
|
203
|
+
# ==== Parameters
|
204
|
+
# * options<~Hash>
|
205
|
+
# * :stack_name : A string which will contain the name of the stack
|
206
|
+
#
|
207
|
+
# ==== Returns
|
208
|
+
# * A hash of RDS details where the key is the logical name and value is the RDS detail
|
209
|
+
def get_rds_details(options = {})
|
210
|
+
stack_resources = resources(options)
|
211
|
+
rds_resource_ids = get_resource_ids(stack_resources, "AWS::RDS::DBInstance")
|
212
|
+
rds = Fog::AWS::RDS.new(:aws_access_key_id => @access_key_id, :aws_secret_access_key => @secret_access_key)
|
213
|
+
rds_details = {}
|
214
|
+
rds_resource_ids.each do |key, value|
|
215
|
+
rds_instance_details = rds.describe_db_instances(value)
|
216
|
+
rds_details[key] = rds_instance_details.body["DescribeDBInstancesResult"]["DBInstances"][0] rescue nil
|
217
|
+
end
|
218
|
+
return rds_details
|
219
|
+
end
|
220
|
+
|
221
|
+
# Get details of all EC2 instances in a stack
|
195
222
|
#
|
196
223
|
# ==== Examples
|
197
224
|
# cloud = Cloudster::Cloud.new(
|
@@ -208,16 +235,41 @@ module Cloudster
|
|
208
235
|
# * A hash of instance details where the key is the logical instance name and value is the instance detail
|
209
236
|
def get_ec2_details(options = {})
|
210
237
|
stack_resources = resources(options)
|
211
|
-
ec2_resource_ids =
|
238
|
+
ec2_resource_ids = get_resource_ids(stack_resources, "AWS::EC2::Instance")
|
212
239
|
ec2 = Fog::Compute::AWS.new(:aws_access_key_id => @access_key_id, :aws_secret_access_key => @secret_access_key)
|
213
240
|
ec2_details = {}
|
214
241
|
ec2_resource_ids.each do |key, value|
|
215
242
|
ec2_instance_details = ec2.describe_instances('instance-id' => value)
|
216
|
-
ec2_details[key] = ec2_instance_details.body["reservationSet"][0]["instancesSet"][0]
|
243
|
+
ec2_details[key] = ec2_instance_details.body["reservationSet"][0]["instancesSet"][0] rescue nil
|
217
244
|
end
|
218
245
|
return ec2_details
|
219
|
-
|
220
|
-
|
246
|
+
end
|
247
|
+
|
248
|
+
# Get details of all Elastic Load Balancers in the stack
|
249
|
+
#
|
250
|
+
# ==== Examples
|
251
|
+
# cloud = Cloudster::Cloud.new(
|
252
|
+
# :access_key_id => 'aws_access_key_id'
|
253
|
+
# :secret_access_key => 'aws_secret_access_key',
|
254
|
+
# )
|
255
|
+
# cloud.get_elb_details(:stack_name => 'ShittyStack')
|
256
|
+
#
|
257
|
+
# ==== Parameters
|
258
|
+
# * options<~Hash>
|
259
|
+
# * :stack_name : A string which will contain the name of the stack
|
260
|
+
#
|
261
|
+
# ==== Returns
|
262
|
+
# * A hash containing elb details where the key is the logical name and value contains the details
|
263
|
+
def get_elb_details(options = {})
|
264
|
+
stack_resources = resources(options)
|
265
|
+
elb_resource_ids = get_resource_ids(stack_resources, "AWS::ElasticLoadBalancing::LoadBalancer")
|
266
|
+
elb = Fog::AWS::ELB.new(:aws_access_key_id => @access_key_id, :aws_secret_access_key => @secret_access_key)
|
267
|
+
elb_details = {}
|
268
|
+
elb_resource_ids.each do |key, value|
|
269
|
+
elb_instance_details = elb.describe_load_balancers("LoadBalancerNames" => [value])
|
270
|
+
elb_details[key] = elb_instance_details.body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"][0] rescue nil
|
271
|
+
end
|
272
|
+
return elb_details
|
221
273
|
end
|
222
274
|
|
223
275
|
# Returns an array containing a list of Resources in a stack
|
@@ -290,24 +342,18 @@ module Cloudster
|
|
290
342
|
end
|
291
343
|
|
292
344
|
private
|
293
|
-
#Returns an array containing the Physical Resource Id's of RDS resources
|
294
|
-
def get_rds_resource_ids(resources)
|
295
|
-
rds_physical_ids = []
|
296
|
-
resources.each do |resource|
|
297
|
-
rds_physical_ids << resource["PhysicalResourceId"] if resource["ResourceType"] == "AWS::RDS::DBInstance"
|
298
|
-
end
|
299
|
-
return rds_physical_ids
|
300
|
-
end
|
301
345
|
|
302
|
-
#Returns
|
303
|
-
def
|
304
|
-
|
346
|
+
#Returns a hash {<logical_resource_id> => <physical_resource_id>}
|
347
|
+
def get_resource_ids(stack_resources, resource_type)
|
348
|
+
resource_ids = {}
|
305
349
|
stack_resources.each do |resource|
|
306
|
-
|
307
|
-
|
308
|
-
|
350
|
+
if resource["ResourceType"] == resource_type
|
351
|
+
key = resource["LogicalResourceId"]
|
352
|
+
value = resource["PhysicalResourceId"]
|
353
|
+
resource_ids[key] = value
|
354
|
+
end
|
309
355
|
end
|
310
|
-
return
|
356
|
+
return resource_ids
|
311
357
|
end
|
312
358
|
|
313
359
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
@@ -158,7 +158,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
158
|
version: '0'
|
159
159
|
segments:
|
160
160
|
- 0
|
161
|
-
hash:
|
161
|
+
hash: 198939057
|
162
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
163
|
none: false
|
164
164
|
requirements:
|