cloudster 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -2
- data/VERSION +1 -1
- data/cloudster.gemspec +1 -1
- data/lib/cloudster/cloud.rb +31 -0
- data/spec/cloud_spec.rb +16 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -37,12 +37,14 @@ Now you can do stuff like :
|
|
37
37
|
|
38
38
|
stack.template(:resources => [app_server, app_server_2], :description => 'Description of the stack')
|
39
39
|
|
40
|
-
And most importantly :
|
41
|
-
|
42
40
|
- Provision the stack :
|
43
41
|
|
44
42
|
stack.provision(:resources => [app_server, app_server_2], :stack_name => 'TestStack', :description => 'Description of the stack')
|
45
43
|
|
44
|
+
- Update the stack :
|
45
|
+
|
46
|
+
stack.update(:resources => [app_server, app_server_2], :stack_name => 'TestStack', :description => 'Description of the stack')
|
47
|
+
|
46
48
|
- You can get the events of a stack using :
|
47
49
|
|
48
50
|
stack.events(:stack_name => 'TestStack')
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.2.0
|
data/cloudster.gemspec
CHANGED
data/lib/cloudster/cloud.rb
CHANGED
@@ -92,6 +92,37 @@ module Cloudster
|
|
92
92
|
:description => options[:description]))
|
93
93
|
end
|
94
94
|
|
95
|
+
# Updates already created stack
|
96
|
+
#
|
97
|
+
# ==== Examples
|
98
|
+
# cloud = Cloudster::Cloud.new(
|
99
|
+
# :access_key_id => 'aws_access_key_id'
|
100
|
+
# :secret_access_key => 'aws_secret_access_key',
|
101
|
+
# )
|
102
|
+
#
|
103
|
+
# cloud.update(:resources => [<AWS RESOURCES ARRRAY>],
|
104
|
+
# :stack_name => 'Shitty Stack',
|
105
|
+
# :description => 'This is the description for the stack template')
|
106
|
+
#
|
107
|
+
# ==== Notes
|
108
|
+
# options parameter must include values for :resources and :stack_name
|
109
|
+
#
|
110
|
+
# ==== Parameters
|
111
|
+
# * options<~Hash>
|
112
|
+
# * :resources : An array of Cloudster resource instances. Defaults to {}.
|
113
|
+
# * :stack_name : A string which is the name of the CloudFormation stack which will be updated.
|
114
|
+
# * :description : A string which will be used as the Description of the CloudFormation template.
|
115
|
+
#
|
116
|
+
# ==== Returns
|
117
|
+
# * response<~Excon::Response>:
|
118
|
+
# * body<~Hash>:
|
119
|
+
# * 'StackId'<~String> - Id of the new stack
|
120
|
+
def update(options = {})
|
121
|
+
require_options(options, [:resources, :stack_name])
|
122
|
+
return @cloud_formation.update_stack(options[:stack_name], 'TemplateBody' => template(:resources => options[:resources],
|
123
|
+
:description => options[:description]))
|
124
|
+
end
|
125
|
+
|
95
126
|
# Get events related to a stack
|
96
127
|
#
|
97
128
|
# ==== Examples
|
data/spec/cloud_spec.rb
CHANGED
@@ -34,6 +34,22 @@ describe Cloudster::Cloud do
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
describe '#update' do
|
38
|
+
it "should raise argument error if resources not provided" do
|
39
|
+
ec2 = Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', name: 'name')
|
40
|
+
cloud = Cloudster::Cloud.new(:access_key_id => 'test', :secret_access_key => 'test')
|
41
|
+
expect { cloud.update(:description => 'test') }.to raise_error(ArgumentError, 'Missing required argument: resources,stack_name' )
|
42
|
+
end
|
43
|
+
it "should trigger stack creation" do
|
44
|
+
cloud_formation = double('CloudFormation')
|
45
|
+
Fog::AWS::CloudFormation.should_receive(:new).with(:aws_access_key_id => 'test', :aws_secret_access_key => 'test').and_return cloud_formation
|
46
|
+
ec2 = Cloudster::Ec2.new(:key_name => 'testkey', :image_id => 'image_id', name: 'name')
|
47
|
+
cloud = Cloudster::Cloud.new(:access_key_id => 'test', :secret_access_key => 'test')
|
48
|
+
cloud_formation.should_receive('update_stack').with('stack_name', 'TemplateBody' => cloud.template(:resources => [ec2], :description => 'testDescription'))
|
49
|
+
cloud.update(:resources => [ec2], :stack_name => 'stack_name', :description => 'testDescription')
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
37
53
|
describe '#events' do
|
38
54
|
it "should trigger 'describe stack events' request" do
|
39
55
|
cloud_formation = double('CloudFormation')
|
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.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
162
|
version: '0'
|
163
163
|
segments:
|
164
164
|
- 0
|
165
|
-
hash: -
|
165
|
+
hash: -972857553
|
166
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
167
|
none: false
|
168
168
|
requirements:
|