cloud-maker 0.9.0 → 0.10.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/lib/cloud-maker.rb +1 -0
- data/lib/cloud_maker/ec2.rb +16 -0
- data/lib/cloud_maker/elb_interface.rb +44 -0
- metadata +3 -2
data/lib/cloud-maker.rb
CHANGED
data/lib/cloud_maker/ec2.rb
CHANGED
@@ -45,6 +45,10 @@ module CloudMaker
|
|
45
45
|
},
|
46
46
|
'block_device_mappings' => {
|
47
47
|
'description' => "A hash of block devices mappings. ie. { /dev/sda1 => { volume_size => <value_in_GB>, snapshot_id => <id>, delete_on_termination => <boolean> } }"
|
48
|
+
},
|
49
|
+
'elb' => {
|
50
|
+
'default' => '',
|
51
|
+
'description' => "The load balancer to use."
|
48
52
|
}
|
49
53
|
}
|
50
54
|
}
|
@@ -172,6 +176,18 @@ module CloudMaker
|
|
172
176
|
end
|
173
177
|
end
|
174
178
|
|
179
|
+
if cloud_maker_config.elb?
|
180
|
+
while instance.status == :pending
|
181
|
+
#wait
|
182
|
+
end
|
183
|
+
elb_interface = ElbInterface.new(
|
184
|
+
:instance => instance,
|
185
|
+
:aws_access_key_id => self.aws_access_key_id,
|
186
|
+
:aws_secret_access_key => self.aws_secret_access_key,
|
187
|
+
:elb_name => cloud_maker_config["elb"]
|
188
|
+
).attach
|
189
|
+
end
|
190
|
+
|
175
191
|
archiver = S3Archiver.new(
|
176
192
|
:instance_id => instance.id,
|
177
193
|
:aws_access_key_id => self.aws_access_key_id,
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module CloudMaker
|
2
|
+
class ElbInterface
|
3
|
+
# Public: Gets/Sets the AWS access key.
|
4
|
+
attr_accessor :aws_secret_access_key
|
5
|
+
# Public: Gets/Sets the AWS secret.
|
6
|
+
attr_accessor :aws_access_key_id
|
7
|
+
# Public: Gets/Sets the EC2 instance.
|
8
|
+
attr_accessor :instance
|
9
|
+
# Internal: Gets/Sets the the elb name.
|
10
|
+
attr_accessor :elb_name
|
11
|
+
|
12
|
+
# Public: Creates a new ElbInterface instance
|
13
|
+
#
|
14
|
+
# options - Elb configuration options
|
15
|
+
# :aws_access_key_id - (required) The AWS access key
|
16
|
+
# :aws_secret_access_key - (required) The AWS secret
|
17
|
+
# :elb_name - (required) The name of the elb to use
|
18
|
+
# :instance - (required) The AWS instance
|
19
|
+
#
|
20
|
+
# Returns a new CloudMaker::ElbInterface instance
|
21
|
+
# Raises RuntimeError if any of the required options are not specified
|
22
|
+
|
23
|
+
def initialize(options)
|
24
|
+
required_keys = [:aws_access_key_id, :aws_secret_access_key, :instance, :elb_name]
|
25
|
+
unless (required_keys - options.keys).empty?
|
26
|
+
raise RuntimeError.new("Instantiated #{self.class} without required attributes: #{required_keys - options.keys}.")
|
27
|
+
end
|
28
|
+
|
29
|
+
self.instance = options[:instance]
|
30
|
+
self.aws_access_key_id = options[:aws_access_key_id]
|
31
|
+
self.aws_secret_access_key = options[:aws_secret_access_key]
|
32
|
+
|
33
|
+
@elb = AWS::ELB.new(
|
34
|
+
:access_key_id => self.aws_access_key_id,
|
35
|
+
:secret_access_key => self.aws_secret_access_key
|
36
|
+
).load_balancers[options[:elb_name]]
|
37
|
+
end
|
38
|
+
|
39
|
+
def attach
|
40
|
+
@elb.instances.register([self.instance])
|
41
|
+
raise RuntimeError.new("The instance was not registerd correctly. id:#{self.instance.id}") unless @elb.instances[self.instance.id]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloud-maker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-11-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: colorize
|
@@ -139,6 +139,7 @@ files:
|
|
139
139
|
- lib/cloud-maker.rb
|
140
140
|
- lib/cloud_maker/config.rb
|
141
141
|
- lib/cloud_maker/ec2.rb
|
142
|
+
- lib/cloud_maker/elb_interface.rb
|
142
143
|
- lib/cloud_maker/s3_archiver.rb
|
143
144
|
- lib/cloud_maker/shell_executor.rb
|
144
145
|
- bin/cloud-maker
|