simple_deploy 0.7.3 → 0.7.4
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/CHANGELOG.md +3 -1
- data/lib/simple_deploy/aws/cloud_formation.rb +7 -7
- data/lib/simple_deploy/cli/update.rb +8 -1
- data/lib/simple_deploy/stack/stack_updater.rb +6 -6
- data/lib/simple_deploy/stack.rb +4 -5
- data/lib/simple_deploy/version.rb +1 -1
- data/spec/cli/clone_spec.rb +1 -1
- data/spec/cli/update_spec.rb +28 -15
- data/spec/stack/stack_updater_spec.rb +43 -15
- data/spec/stack_spec.rb +2 -4
- metadata +33 -77
data/CHANGELOG.md
CHANGED
@@ -18,7 +18,7 @@ module SimpleDeploy
|
|
18
18
|
'TemplateBody' => args[:template] }.merge parameters
|
19
19
|
@connect.create_stack(args[:name], data)
|
20
20
|
@logger.info "Cloud Formation stack creation completed."
|
21
|
-
rescue Exception => e
|
21
|
+
rescue Exception => e
|
22
22
|
Error.new(:exception => e).process
|
23
23
|
end
|
24
24
|
|
@@ -28,32 +28,32 @@ module SimpleDeploy
|
|
28
28
|
'TemplateBody' => args[:template] }.merge parameters
|
29
29
|
@connect.update_stack(args[:name], data)
|
30
30
|
@logger.info "Cloud Formation stack update completed."
|
31
|
-
rescue Exception => e
|
31
|
+
rescue Exception => e
|
32
32
|
Error.new(:exception => e).process
|
33
33
|
end
|
34
34
|
|
35
35
|
def destroy(name)
|
36
36
|
@connect.delete_stack name
|
37
37
|
@logger.info "Cloud Formation stack destroy completed."
|
38
|
-
rescue Exception => e
|
38
|
+
rescue Exception => e
|
39
39
|
Error.new(:exception => e).process
|
40
40
|
end
|
41
41
|
|
42
42
|
def describe_stack(name)
|
43
43
|
@connect.describe_stacks('StackName' => name).body['Stacks']
|
44
|
-
rescue Exception => e
|
44
|
+
rescue Exception => e
|
45
45
|
Error.new(:exception => e).process
|
46
46
|
end
|
47
47
|
|
48
48
|
def stack_resources(name)
|
49
49
|
@connect.describe_stack_resources('StackName' => name).body['StackResources']
|
50
|
-
rescue Exception => e
|
50
|
+
rescue Exception => e
|
51
51
|
Error.new(:exception => e).process
|
52
52
|
end
|
53
53
|
|
54
54
|
def stack_events(name, limit)
|
55
55
|
@connect.describe_stack_events(name).body['StackEvents'] [0..limit-1]
|
56
|
-
rescue Exception => e
|
56
|
+
rescue Exception => e
|
57
57
|
Error.new(:exception => e).process
|
58
58
|
end
|
59
59
|
|
@@ -67,7 +67,7 @@ module SimpleDeploy
|
|
67
67
|
|
68
68
|
def template(name)
|
69
69
|
@connect.get_template(name).body['TemplateBody']
|
70
|
-
rescue Exception => e
|
70
|
+
rescue Exception => e
|
71
71
|
Error.new(:exception => e).process
|
72
72
|
end
|
73
73
|
|
@@ -25,6 +25,7 @@ EOS
|
|
25
25
|
:default => 'info'
|
26
26
|
opt :name, "Stack name(s) of stack to deploy", :type => :string,
|
27
27
|
:multi => true
|
28
|
+
opt :template, "Path to a new template file", :type => :string
|
28
29
|
end
|
29
30
|
|
30
31
|
valid_options? :provided => @opts,
|
@@ -39,8 +40,14 @@ EOS
|
|
39
40
|
stack = Stack.new :name => name,
|
40
41
|
:environment => @opts[:environment]
|
41
42
|
|
43
|
+
if @opts[:template]
|
44
|
+
template_body = IO.read @opts[:template]
|
45
|
+
end
|
46
|
+
|
42
47
|
rescue_exceptions_and_exit do
|
43
|
-
stack.update :force => @opts[:force],
|
48
|
+
stack.update :force => @opts[:force],
|
49
|
+
:template_body => template_body,
|
50
|
+
:attributes => attributes
|
44
51
|
end
|
45
52
|
end
|
46
53
|
end
|
@@ -11,12 +11,12 @@ module SimpleDeploy
|
|
11
11
|
@template_body = args[:template_body]
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
15
|
-
if parameter_updated?(attributes)
|
16
|
-
@logger.debug
|
14
|
+
def update_stack(attributes)
|
15
|
+
if parameter_updated?(attributes) || @template_body
|
16
|
+
@logger.debug 'Updated parameters or new template found.'
|
17
17
|
update
|
18
18
|
else
|
19
|
-
@logger.debug
|
19
|
+
@logger.debug 'No parameters require updating and no new template found.'
|
20
20
|
false
|
21
21
|
end
|
22
22
|
end
|
@@ -26,9 +26,9 @@ module SimpleDeploy
|
|
26
26
|
def update
|
27
27
|
if status.wait_for_stable
|
28
28
|
@logger.info "Updating Cloud Formation stack #{@name}."
|
29
|
-
cloud_formation.update :name
|
29
|
+
cloud_formation.update :name => @name,
|
30
30
|
:parameters => read_parameters_from_entry_attributes,
|
31
|
-
:template
|
31
|
+
:template => @template_body
|
32
32
|
else
|
33
33
|
raise "#{@name} did not reach a stable state."
|
34
34
|
end
|
data/lib/simple_deploy/stack.rb
CHANGED
@@ -30,7 +30,7 @@ module SimpleDeploy
|
|
30
30
|
|
31
31
|
@entry.set_attributes attributes
|
32
32
|
stack_creator.create
|
33
|
-
|
33
|
+
|
34
34
|
@entry.save
|
35
35
|
end
|
36
36
|
|
@@ -47,10 +47,10 @@ module SimpleDeploy
|
|
47
47
|
if deployment.clear_for_deployment?
|
48
48
|
@logger.info "Updating #{@name}."
|
49
49
|
attributes = stack_attribute_formatter.updated_attributes args[:attributes]
|
50
|
-
@template_body = template
|
50
|
+
@template_body = args[:template_body] || template
|
51
51
|
|
52
52
|
@entry.set_attributes attributes
|
53
|
-
stack_updater.
|
53
|
+
stack_updater.update_stack attributes
|
54
54
|
@logger.info "Update complete for #{@name}."
|
55
55
|
|
56
56
|
@entry.save
|
@@ -65,10 +65,9 @@ module SimpleDeploy
|
|
65
65
|
if args[:caller].kind_of? Stack::Deployment::Status
|
66
66
|
@logger.info "Updating #{@name}."
|
67
67
|
attributes = stack_attribute_formatter.updated_attributes args[:attributes]
|
68
|
-
@template_body = template
|
69
68
|
|
70
69
|
@entry.set_attributes attributes
|
71
|
-
stack_updater.
|
70
|
+
stack_updater.update_stack attributes
|
72
71
|
@logger.info "Update complete for #{@name}."
|
73
72
|
|
74
73
|
@entry.save
|
data/spec/cli/clone_spec.rb
CHANGED
@@ -170,7 +170,7 @@ describe SimpleDeploy::CLI::Clone do
|
|
170
170
|
|
171
171
|
subject.should_receive(:valid_options?).
|
172
172
|
with(:provided => @options,
|
173
|
-
|
173
|
+
:required => [:environment, :source_name, :new_name])
|
174
174
|
Trollop.stub(:options).and_return(@options)
|
175
175
|
|
176
176
|
@new_stack_mock.should_receive(:create) do |options|
|
data/spec/cli/update_spec.rb
CHANGED
@@ -10,20 +10,22 @@ describe SimpleDeploy::CLI::Update do
|
|
10
10
|
describe 'update' do
|
11
11
|
before do
|
12
12
|
@stack_mock1.stub(:attributes).and_return({})
|
13
|
+
@template_body = "{ \"fake_json\" : \"goodness\"}"
|
14
|
+
|
15
|
+
@options = { :environment => 'my_env',
|
16
|
+
:log_level => 'debug',
|
17
|
+
:name => ['my_stack1'],
|
18
|
+
:force => true,
|
19
|
+
:attributes => ['chef_repo_bucket_prefix=intu-lc'] }
|
20
|
+
|
13
21
|
end
|
14
22
|
|
15
23
|
it "should pass force true" do
|
16
|
-
options = { :environment => 'my_env',
|
17
|
-
:log_level => 'debug',
|
18
|
-
:name => ['my_stack1'],
|
19
|
-
:force => true,
|
20
|
-
:attributes => ['chef_repo_bucket_prefix=intu-lc'] }
|
21
|
-
|
22
24
|
subject.should_receive(:valid_options?).
|
23
|
-
with(:provided => options,
|
25
|
+
with(:provided => @options,
|
24
26
|
:required => [:environment, :name])
|
25
27
|
|
26
|
-
Trollop.stub(:options).and_return(options)
|
28
|
+
Trollop.stub(:options).and_return(@options)
|
27
29
|
|
28
30
|
@stack_mock1.should_receive(:update).with(hash_including(:force => true))
|
29
31
|
|
@@ -31,21 +33,32 @@ describe SimpleDeploy::CLI::Update do
|
|
31
33
|
end
|
32
34
|
|
33
35
|
it "should pass force false" do
|
34
|
-
options =
|
35
|
-
:log_level => 'debug',
|
36
|
-
:name => ['my_stack1'],
|
37
|
-
:force => false,
|
38
|
-
:attributes => ['chef_repo_bucket_prefix=intu-lc'] }
|
36
|
+
@options[:force] = false
|
39
37
|
|
40
38
|
subject.should_receive(:valid_options?).
|
41
|
-
with(:provided => options,
|
39
|
+
with(:provided => @options,
|
42
40
|
:required => [:environment, :name])
|
43
41
|
|
44
|
-
Trollop.stub(:options).and_return(options)
|
42
|
+
Trollop.stub(:options).and_return(@options)
|
45
43
|
|
46
44
|
@stack_mock1.should_receive(:update).with(hash_including(:force => false))
|
47
45
|
|
48
46
|
subject.update
|
49
47
|
end
|
48
|
+
|
49
|
+
it "should update the template if a new template is provided" do
|
50
|
+
@options[:template] = 'brand_new_template.json'
|
51
|
+
|
52
|
+
subject.should_receive(:valid_options?).
|
53
|
+
with(:provided => @options,
|
54
|
+
:required => [:environment, :name])
|
55
|
+
|
56
|
+
Trollop.stub(:options).and_return(@options)
|
57
|
+
|
58
|
+
IO.should_receive(:read).with('brand_new_template.json').and_return(@template_body)
|
59
|
+
|
60
|
+
@stack_mock1.should_receive(:update).with(hash_including(:template_body => @template_body))
|
61
|
+
subject.update
|
62
|
+
end
|
50
63
|
end
|
51
64
|
end
|
@@ -18,6 +18,23 @@ describe SimpleDeploy::StackUpdater do
|
|
18
18
|
}
|
19
19
|
}
|
20
20
|
}'
|
21
|
+
|
22
|
+
@new_template_body = '{ "Parameters":
|
23
|
+
{
|
24
|
+
"param1" :
|
25
|
+
{
|
26
|
+
"Description" : "param-1"
|
27
|
+
},
|
28
|
+
"param2" :
|
29
|
+
{
|
30
|
+
"Description" : "param-2"
|
31
|
+
},
|
32
|
+
"param3" :
|
33
|
+
{
|
34
|
+
"Description" : "param-3"
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}'
|
21
38
|
end
|
22
39
|
|
23
40
|
it "should update the stack when parameters change and stack is stable" do
|
@@ -41,39 +58,50 @@ describe SimpleDeploy::StackUpdater do
|
|
41
58
|
:template_body => @template_body,
|
42
59
|
:entry => entry_mock
|
43
60
|
|
44
|
-
stack_updater.
|
61
|
+
stack_updater.update_stack( [ { 'param1' => 'new-value' } ] ).
|
45
62
|
should == true
|
46
63
|
end
|
47
64
|
|
48
|
-
it "should
|
65
|
+
it "should update the stack when only the template body changes and stack is stable" do
|
49
66
|
attributes = { "param1" => "value1", "param3" => "value3" }
|
50
67
|
entry_mock = mock 'entry mock'
|
51
68
|
status_mock = mock 'status mock'
|
52
69
|
cloud_formation_mock = mock 'cloud formation mock'
|
53
70
|
SimpleDeploy::AWS::CloudFormation.should_receive(:new).
|
54
|
-
|
71
|
+
and_return cloud_formation_mock
|
72
|
+
entry_mock.stub(:attributes).and_return attributes
|
73
|
+
|
74
|
+
cloud_formation_mock.should_receive(:update).
|
75
|
+
with(:name => 'test-stack',
|
76
|
+
:parameters => { 'param1' => 'value1', 'param3' => 'value3' },
|
77
|
+
:template => @new_template_body).
|
78
|
+
and_return true
|
55
79
|
SimpleDeploy::Status.should_receive(:new).
|
56
|
-
|
57
|
-
|
58
|
-
status_mock.
|
80
|
+
with(:name => 'test-stack').
|
81
|
+
and_return status_mock
|
82
|
+
status_mock.stub(:wait_for_stable).and_return true
|
59
83
|
stack_updater = SimpleDeploy::StackUpdater.new :name => 'test-stack',
|
60
|
-
:template_body => @
|
84
|
+
:template_body => @new_template_body,
|
61
85
|
:entry => entry_mock
|
62
86
|
|
63
|
-
|
64
|
-
should raise_error
|
87
|
+
stack_updater.update_stack([]).should == true
|
65
88
|
end
|
66
89
|
|
67
|
-
it "should
|
68
|
-
attributes = { "param3" => "value3" }
|
90
|
+
it "should raise an error when parameters change and stack is not stable" do
|
91
|
+
attributes = { "param1" => "value1", "param3" => "value3" }
|
69
92
|
entry_mock = mock 'entry mock'
|
70
|
-
|
93
|
+
status_mock = mock 'status mock'
|
94
|
+
cloud_formation_mock = mock 'cloud formation mock'
|
95
|
+
SimpleDeploy::AWS::CloudFormation.should_receive(:new).never
|
96
|
+
SimpleDeploy::Status.should_receive(:new).
|
97
|
+
with(:name => 'test-stack').
|
98
|
+
and_return status_mock
|
99
|
+
status_mock.stub(:wait_for_stable).and_return false
|
71
100
|
stack_updater = SimpleDeploy::StackUpdater.new :name => 'test-stack',
|
72
101
|
:template_body => @template_body,
|
73
102
|
:entry => entry_mock
|
74
103
|
|
75
|
-
stack_updater.
|
76
|
-
should
|
104
|
+
lambda {stack_updater.update_stack( [ { 'param1' => 'new-value' } ] ) }.
|
105
|
+
should raise_error
|
77
106
|
end
|
78
|
-
|
79
107
|
end
|
data/spec/stack_spec.rb
CHANGED
@@ -83,8 +83,7 @@ describe SimpleDeploy::Stack do
|
|
83
83
|
:entry => @entry_mock,
|
84
84
|
:template_body => 'some_json').
|
85
85
|
and_return @stack_updater_mock
|
86
|
-
@stack_updater_mock.
|
87
|
-
and_return(true)
|
86
|
+
@stack_updater_mock.stub(:update_stack).and_return(true)
|
88
87
|
SimpleDeploy::StackReader.should_receive(:new).
|
89
88
|
with(:name => 'test-stack').
|
90
89
|
and_return @stack_reader_mock
|
@@ -118,8 +117,7 @@ describe SimpleDeploy::Stack do
|
|
118
117
|
:entry => @entry_mock,
|
119
118
|
:template_body => 'some_json').
|
120
119
|
and_return @stack_updater_mock
|
121
|
-
@stack_updater_mock.
|
122
|
-
and_return(true)
|
120
|
+
@stack_updater_mock.stub(:update_stack).and_return(true)
|
123
121
|
SimpleDeploy::StackReader.should_receive(:new).
|
124
122
|
with(:name => 'test-stack').
|
125
123
|
and_return @stack_reader_mock
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fakefs
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70199856979460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.4.2
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.4.2
|
24
|
+
version_requirements: *70199856979460
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rake
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70199856978480 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *70199856978480
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: rspec
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70199857004380 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ~>
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: 2.13.0
|
54
44
|
type: :development
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.13.0
|
46
|
+
version_requirements: *70199857004380
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: simplecov
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70199857003340 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: 0.7.1
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 0.7.1
|
57
|
+
version_requirements: *70199857003340
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: timecop
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70199857002440 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ~>
|
@@ -85,31 +65,21 @@ dependencies:
|
|
85
65
|
version: 0.6.1
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.6.1
|
68
|
+
version_requirements: *70199857002440
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: capistrano
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70199857001780 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
|
-
- -
|
74
|
+
- - =
|
100
75
|
- !ruby/object:Gem::Version
|
101
76
|
version: 2.13.5
|
102
77
|
type: :runtime
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - '='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 2.13.5
|
79
|
+
version_requirements: *70199857001780
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: esbit
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &70199857000960 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
85
|
- - ~>
|
@@ -117,60 +87,40 @@ dependencies:
|
|
117
87
|
version: 0.0.4
|
118
88
|
type: :runtime
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.0.4
|
90
|
+
version_requirements: *70199857000960
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: trollop
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &70199857000240 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
|
-
- -
|
96
|
+
- - =
|
132
97
|
- !ruby/object:Gem::Version
|
133
98
|
version: '2.0'
|
134
99
|
type: :runtime
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - '='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '2.0'
|
101
|
+
version_requirements: *70199857000240
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: fog
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &70199856999600 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
|
-
- -
|
107
|
+
- - =
|
148
108
|
- !ruby/object:Gem::Version
|
149
109
|
version: 1.10.0
|
150
110
|
type: :runtime
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - '='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 1.10.0
|
112
|
+
version_requirements: *70199856999600
|
158
113
|
- !ruby/object:Gem::Dependency
|
159
114
|
name: xml-simple
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &70199856999020 !ruby/object:Gem::Requirement
|
161
116
|
none: false
|
162
117
|
requirements:
|
163
|
-
- -
|
118
|
+
- - =
|
164
119
|
- !ruby/object:Gem::Version
|
165
120
|
version: 1.1.2
|
166
121
|
type: :runtime
|
167
122
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - '='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 1.1.2
|
123
|
+
version_requirements: *70199856999020
|
174
124
|
description: Opinionated gem for Managing AWS Cloud Formation stacks and deploying
|
175
125
|
updates to Instances.
|
176
126
|
email:
|
@@ -296,15 +246,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
296
246
|
- - ! '>='
|
297
247
|
- !ruby/object:Gem::Version
|
298
248
|
version: '0'
|
249
|
+
segments:
|
250
|
+
- 0
|
251
|
+
hash: -4463041608859511605
|
299
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
300
253
|
none: false
|
301
254
|
requirements:
|
302
255
|
- - ! '>='
|
303
256
|
- !ruby/object:Gem::Version
|
304
257
|
version: '0'
|
258
|
+
segments:
|
259
|
+
- 0
|
260
|
+
hash: -4463041608859511605
|
305
261
|
requirements: []
|
306
262
|
rubyforge_project: simple_deploy
|
307
|
-
rubygems_version: 1.8.
|
263
|
+
rubygems_version: 1.8.16
|
308
264
|
signing_key:
|
309
265
|
specification_version: 3
|
310
266
|
summary: Opinionated gem for AWS resource management.
|