knife-cloudformation 0.1.6 → 0.1.8
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
CHANGED
Binary file
|
@@ -80,10 +80,26 @@ class Chef
|
|
80
80
|
ui.info "Displaying stack #{ui.color(stack_name, :bold)} failure on instance #{ui.color(inst_id, :bold)}"
|
81
81
|
opts = ssh_key ? {:keys => [ssh_key]} : {}
|
82
82
|
remote_path = '/var/log/cfn-init.log'
|
83
|
-
content =
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
content = nil
|
84
|
+
attempt_ssh_users.each do |ssh_user_name|
|
85
|
+
begin
|
86
|
+
content = remote_file_contents(inst_addr, ssh_user_name, remote_path, opts)
|
87
|
+
break
|
88
|
+
rescue Net::SSH::AuthenticationFailed
|
89
|
+
ui.warn "Authentication failed for user: #{ssh_user_name} on instance: #{inst_addr}"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
if(content)
|
93
|
+
ui.info " content of #{remote_path}:"
|
94
|
+
ui.info ""
|
95
|
+
ui.info content
|
96
|
+
else
|
97
|
+
ui.error "Failed to retreive content from node at: #{inst_addr}"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def attempt_ssh_users
|
102
|
+
([ssh_user] + Array(Chef::Config[:knife][:cloudformation][:ssh_attempt_users])).flatten.compact
|
87
103
|
end
|
88
104
|
|
89
105
|
def ssh_user
|
@@ -111,7 +111,7 @@ module KnifeCloudformation
|
|
111
111
|
.body['StackResources']
|
112
112
|
end
|
113
113
|
|
114
|
-
def refresh?(bool=
|
114
|
+
def refresh?(bool=nil)
|
115
115
|
bool || (bool.nil? && @force_refresh)
|
116
116
|
end
|
117
117
|
|
@@ -204,12 +204,17 @@ module KnifeCloudformation
|
|
204
204
|
end
|
205
205
|
|
206
206
|
def events(all=false)
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
207
|
+
if(@memo[:events].nil? || refresh?)
|
208
|
+
res = common.aws(:cloud_formation).describe_stack_events(name).body['StackEvents']
|
209
|
+
@memo[:events] ||= []
|
210
|
+
current = @memo[:events].map{|e| e['EventId']}
|
211
|
+
res.delete_if{|e| current.include?(e['EventId'])}
|
212
|
+
@memo[:events] += res
|
213
|
+
@memo[:events].uniq!
|
214
|
+
@memo[:events].sort!{|x,y| x['Timestamp'] <=> y['Timestamp']}
|
215
|
+
else
|
216
|
+
res = []
|
217
|
+
end
|
213
218
|
all ? @memo[:events] : res
|
214
219
|
end
|
215
220
|
|
@@ -56,13 +56,30 @@ module KnifeCloudformation
|
|
56
56
|
module Ssher
|
57
57
|
def remote_file_contents(address, user, path, ssh_opts={})
|
58
58
|
require 'net/sftp'
|
59
|
-
content =
|
60
|
-
Net::
|
61
|
-
|
62
|
-
|
59
|
+
content = ''
|
60
|
+
ssh_session = Net::SSH.start(address, user, ssh_opts)
|
61
|
+
con = Net::SFTP::Session.new(ssh_session)
|
62
|
+
con.loop{ con.opening? }
|
63
|
+
f_handle = con.open!(path)
|
64
|
+
data = ''
|
65
|
+
count = 0
|
66
|
+
while(data)
|
67
|
+
data = nil
|
68
|
+
request = con.read(f_handle, count, 1024) do |response|
|
69
|
+
unless(response.eof?)
|
70
|
+
if(response.ok?)
|
71
|
+
count += 1024
|
72
|
+
content << response[:data]
|
73
|
+
data = true
|
74
|
+
end
|
75
|
+
end
|
63
76
|
end
|
77
|
+
request.wait
|
64
78
|
end
|
65
|
-
|
79
|
+
con.close!(f_handle)
|
80
|
+
con.close_channel
|
81
|
+
ssh_session.close
|
82
|
+
content.empty? ? nil : content
|
66
83
|
end
|
67
84
|
end
|
68
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-cloudformation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
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: 2013-09-
|
12
|
+
date: 2013-09-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -81,6 +81,7 @@ executables: []
|
|
81
81
|
extensions: []
|
82
82
|
extra_rdoc_files: []
|
83
83
|
files:
|
84
|
+
- knife-cloudformation-0.1.6.gem
|
84
85
|
- lib/chef/knife/cloudformation_events.rb
|
85
86
|
- lib/chef/knife/cloudformation_base.rb
|
86
87
|
- lib/chef/knife/cloudformation_destroy.rb
|