knife-cloudformation 0.2.6 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/chef/knife/cloudformation_create.rb +3 -5
- data/lib/chef/knife/cloudformation_describe.rb +1 -1
- data/lib/chef/knife/cloudformation_destroy.rb +1 -2
- data/lib/chef/knife/cloudformation_events.rb +2 -2
- data/lib/chef/knife/cloudformation_inspect.rb +1 -1
- data/lib/chef/knife/cloudformation_update.rb +2 -4
- data/lib/chef/knife/cloudformation_validate.rb +1 -1
- data/lib/knife-cloudformation/cache.rb +6 -2
- data/lib/knife-cloudformation/knife/base.rb +5 -2
- data/lib/knife-cloudformation/utils/stack_parameter_scrubber.rb +7 -5
- data/lib/knife-cloudformation/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13b24aa4ad8bd90e9b02f130ee8dc992e657ce1b
|
4
|
+
data.tar.gz: c1916b7656ed73950454349fb236407c94805013
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3927c0adb0eac79ce40f4468361814cc3cd22d7e50c5003f646164576e12a4180b480a0b3dc7eabd7ee2bc62a44a99234236f78b6e301d733834dbfcc93469f
|
7
|
+
data.tar.gz: dda8df44d640cb443a66e9757b0535d59d1d164bf3d33306b237063208b34ab9041cda45ca82ad160b311300cc4312080558a7855ada16d277b32fac2ab2d955
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## v0.2.8
|
2
|
+
* Update stack lookup implementation to make faster from CLI
|
3
|
+
* Prevent constant error on exception when Redis is not in use
|
4
|
+
* Provide better error messages on request failures
|
5
|
+
|
1
6
|
## v0.2.6
|
2
7
|
* Update to parameter re-defaults to use correct hash instance
|
3
8
|
|
@@ -85,7 +85,7 @@ class Chef
|
|
85
85
|
ui.info " -> #{stack_info}"
|
86
86
|
end
|
87
87
|
|
88
|
-
stack = provider.stacks.build(
|
88
|
+
stack = provider.connection.stacks.build(
|
89
89
|
Chef::Config[:knife][:cloudformation][:options].dup.merge(
|
90
90
|
:name => name,
|
91
91
|
:template => file
|
@@ -107,13 +107,11 @@ class Chef
|
|
107
107
|
stack.save
|
108
108
|
|
109
109
|
if(Chef::Config[:knife][:cloudformation][:poll])
|
110
|
-
provider.fetch_stacks
|
111
110
|
poll_stack(stack.name)
|
112
|
-
stack = provider.stacks.get(name)
|
111
|
+
stack = provider.connection.stacks.get(name)
|
113
112
|
|
114
113
|
if(stack.reload.success?)
|
115
114
|
ui.info "Stack create complete: #{ui.color('SUCCESS', :green)}"
|
116
|
-
provider.fetch_stacks
|
117
115
|
knife_output = Chef::Knife::CloudformationDescribe.new
|
118
116
|
knife_output.name_args.push(name)
|
119
117
|
knife_output.config[:outputs] = true
|
@@ -141,7 +139,7 @@ class Chef
|
|
141
139
|
remote_stacks = Chef::Config[:knife][:cloudformation].
|
142
140
|
fetch(:create, {}).fetch(:apply_stacks, [])
|
143
141
|
remote_stacks.each do |stack_name|
|
144
|
-
remote_stack = provider.stacks.get(stack_name)
|
142
|
+
remote_stack = provider.connection.stacks.get(stack_name)
|
145
143
|
if(remote_stack)
|
146
144
|
stack.apply_stack(remote_stack)
|
147
145
|
else
|
@@ -41,7 +41,7 @@ class Chef
|
|
41
41
|
# Run the stack describe action
|
42
42
|
def _run
|
43
43
|
stack_name = name_args.last
|
44
|
-
stack = provider.stacks.get(stack_name)
|
44
|
+
stack = provider.connection.stacks.get(stack_name)
|
45
45
|
if(stack)
|
46
46
|
display = [].tap do |to_display|
|
47
47
|
AVAILABLE_DISPLAYS.each do |display_option|
|
@@ -24,7 +24,7 @@ class Chef
|
|
24
24
|
ui.warn "Destroying Cloud Formation#{plural}: #{ui.color(stacks.join(', '), :bold)}"
|
25
25
|
ui.confirm "Destroy formation#{plural}"
|
26
26
|
stacks.each do |stack_name|
|
27
|
-
stack = provider.stacks.get(stack_name)
|
27
|
+
stack = provider.connection.stacks.get(stack_name)
|
28
28
|
if(stack)
|
29
29
|
stack.destroy
|
30
30
|
else
|
@@ -33,7 +33,6 @@ class Chef
|
|
33
33
|
end
|
34
34
|
if(config[:polling])
|
35
35
|
if(stacks.size == 1)
|
36
|
-
provider.fetch_stacks
|
37
36
|
poll_stack(stacks.first)
|
38
37
|
else
|
39
38
|
ui.error "Stack polling is not available when multiple stack deletion is requested!"
|
@@ -46,12 +46,12 @@ class Chef
|
|
46
46
|
def _run
|
47
47
|
name = name_args.first
|
48
48
|
ui.info "Cloud Formation Events for Stack: #{ui.color(name, :bold)}\n"
|
49
|
-
stack = provider.stacks.get(name)
|
49
|
+
stack = provider.connection.stacks.get(name)
|
50
50
|
last_id = nil
|
51
51
|
if(stack)
|
52
52
|
events = get_events(stack)
|
53
53
|
things_output(name, events, 'events')
|
54
|
-
last_id = events.last[:id]
|
54
|
+
last_id = events.last ? events.last[:id] : nil
|
55
55
|
if(Chef::Config[:knife][:cloudformation][:poll])
|
56
56
|
cycle_events = true
|
57
57
|
while(cycle_events)
|
@@ -53,7 +53,7 @@ class Chef
|
|
53
53
|
# Run the stack inspection action
|
54
54
|
def _run
|
55
55
|
stack_name = name_args.last
|
56
|
-
stack = provider.stacks.get(stack_name)
|
56
|
+
stack = provider.connection.stacks.get(stack_name)
|
57
57
|
ui.info "Stack inspection #{ui.color(stack_name, :bold)}:"
|
58
58
|
outputs = [:attribute, :nodes, :instance_failure].map do |key|
|
59
59
|
if(config.has_key?(key))
|
@@ -37,7 +37,7 @@ class Chef
|
|
37
37
|
exit 1
|
38
38
|
end
|
39
39
|
|
40
|
-
stack = provider.stacks.get(name)
|
40
|
+
stack = provider.connection.stacks.get(name)
|
41
41
|
|
42
42
|
if(stack)
|
43
43
|
ui.info "#{ui.color('Cloud Formation:', :bold)} #{ui.color('update', :green)}"
|
@@ -67,10 +67,8 @@ class Chef
|
|
67
67
|
|
68
68
|
if(Chef::Config[:knife][:cloudformation][:poll])
|
69
69
|
poll_stack(stack.name)
|
70
|
-
provider.fetch_stacks
|
71
70
|
if(stack.success?)
|
72
71
|
ui.info "Stack update complete: #{ui.color('SUCCESS', :green)}"
|
73
|
-
provider.fetch_stacks
|
74
72
|
knife_output = Chef::Knife::CloudformationDescribe.new
|
75
73
|
knife_output.name_args.push(name)
|
76
74
|
knife_output.config[:outputs] = true
|
@@ -117,7 +115,7 @@ class Chef
|
|
117
115
|
remote_stacks = Chef::Config[:knife][:cloudformation].
|
118
116
|
fetch(:update, {}).fetch(:apply_stacks, [])
|
119
117
|
remote_stacks.each do |stack_name|
|
120
|
-
remote_stack = provider.stacks.get(stack_name)
|
118
|
+
remote_stack = provider.connection.stacks.get(stack_name)
|
121
119
|
if(remote_stack)
|
122
120
|
remote_stack.parameters.each do |key, value|
|
123
121
|
next if Chef::Config[:knife][:cloudformation][:stacks][:ignore_parameters].include?(key)
|
@@ -18,7 +18,7 @@ class Chef
|
|
18
18
|
file = KnifeCloudformation::Utils::StackParameterScrubber.scrub!(file)
|
19
19
|
file = translate_template(file)
|
20
20
|
begin
|
21
|
-
result = provider.stacks.build(
|
21
|
+
result = provider.connection.stacks.build(
|
22
22
|
:name => 'validation-stack',
|
23
23
|
:template => file
|
24
24
|
).validate
|
@@ -264,8 +264,12 @@ module KnifeCloudformation
|
|
264
264
|
self[lock_name].lock do
|
265
265
|
yield
|
266
266
|
end
|
267
|
-
rescue
|
268
|
-
|
267
|
+
rescue => e
|
268
|
+
if(e.class.to_s == 'Redis::Lock::LockTimeout')
|
269
|
+
raise if raise_on_locked
|
270
|
+
else
|
271
|
+
raise
|
272
|
+
end
|
269
273
|
end
|
270
274
|
end
|
271
275
|
|
@@ -20,7 +20,10 @@ module KnifeCloudformation
|
|
20
20
|
# @param args [String] extra strings to output
|
21
21
|
def _debug(e, *args)
|
22
22
|
if(ENV['DEBUG'])
|
23
|
-
ui.fatal "Exception information: #{e.class}: #{e}\n#{e.backtrace.join("\n")}\n"
|
23
|
+
ui.fatal "Exception information: #{e.class}: #{e.message}\n#{e.backtrace.join("\n")}\n"
|
24
|
+
if(e.is_a?(Miasma::Error::ApiError))
|
25
|
+
ui.fatal "Response body: #{e.response.body.to_s.inspect}"
|
26
|
+
end
|
24
27
|
args.each do |string|
|
25
28
|
ui.fatal string
|
26
29
|
end
|
@@ -92,7 +95,7 @@ module KnifeCloudformation
|
|
92
95
|
begin
|
93
96
|
_run
|
94
97
|
rescue => e
|
95
|
-
ui.fatal "Unexpected Error: #{e}"
|
98
|
+
ui.fatal "Unexpected Error: #{e.message}"
|
96
99
|
_debug(e)
|
97
100
|
exit 1
|
98
101
|
end
|
@@ -19,13 +19,15 @@ module KnifeCloudformation
|
|
19
19
|
# @param template [Hash]
|
20
20
|
# @return [Hash] template
|
21
21
|
def scrub!(template)
|
22
|
-
parameters = template
|
23
|
-
parameters
|
24
|
-
|
25
|
-
|
22
|
+
parameters = template['Parameters']
|
23
|
+
if(parameters)
|
24
|
+
parameters.each do |name, options|
|
25
|
+
options.delete_if do |attribute, value|
|
26
|
+
!ALLOWED_PARAMETER_ATTRIBUTES.include?(attribute)
|
27
|
+
end
|
26
28
|
end
|
29
|
+
template['Parameters'] = parameters
|
27
30
|
end
|
28
|
-
template['Parameters'] = parameters
|
29
31
|
template
|
30
32
|
end
|
31
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-cloudformation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11
|
11
|
+
date: 2014-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|