knife-undev 0.0.9 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/knife/undev/plugins/cloud_ssh.rb +58 -2
- data/lib/knife/undev/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e09cbba180c82143cdccd926a2dc205ee42edd73
|
4
|
+
data.tar.gz: 98a6c5e9535847af87761bb0a292feed16d07d4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 476fb6d05a27529993bd2524cd0c3fc9ec553a998ada45ee04b7f169b10b1e56add6688022c6437dab3ec94ab21cfa7dd26cfad17805574e5ccb419f84b861e6
|
7
|
+
data.tar.gz: 3f418df25482182b1cc764a1775f1c190000daa76a299af2dd9eb680e0179d61c05ac16ceca1b9280b1940e47330ba3ef6f50e34356195a11fd4470adcb61e23
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
attr_writer :password
|
28
28
|
|
29
|
-
banner "knife
|
29
|
+
banner "knife cloud_ssh QUERY COMMAND (options)"
|
30
30
|
|
31
31
|
option :concurrency,
|
32
32
|
:short => "-C NUM",
|
@@ -264,6 +264,55 @@ class Chef
|
|
264
264
|
"private_ipaddress").strip
|
265
265
|
end
|
266
266
|
|
267
|
+
def read_line
|
268
|
+
loop do
|
269
|
+
command = reader.readline("#{ui.color('knife-ssh>', :bold)} ", true)
|
270
|
+
|
271
|
+
if command.nil?
|
272
|
+
command = "exit"
|
273
|
+
puts(command)
|
274
|
+
else
|
275
|
+
command.strip!
|
276
|
+
end
|
277
|
+
|
278
|
+
unless command.empty?
|
279
|
+
return command
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
def reader
|
285
|
+
Readline
|
286
|
+
end
|
287
|
+
|
288
|
+
def interactive
|
289
|
+
puts "Connected to #{ui.list(session.servers_for.collect { |s| ui.color(s.host, :cyan) }, :inline, " and ")}"
|
290
|
+
puts
|
291
|
+
puts "To run a command on a list of servers, do:"
|
292
|
+
puts " on SERVER1 SERVER2 SERVER3; COMMAND"
|
293
|
+
puts " Example: on latte foamy; echo foobar"
|
294
|
+
puts
|
295
|
+
puts "To exit interactive mode, use 'quit!'"
|
296
|
+
puts
|
297
|
+
while 1
|
298
|
+
command = read_line
|
299
|
+
case command
|
300
|
+
when 'quit!'
|
301
|
+
puts 'Bye!'
|
302
|
+
break
|
303
|
+
when /^on (.+?); (.+)$/
|
304
|
+
raw_list = $1.split(" ")
|
305
|
+
server_list = Array.new
|
306
|
+
session.servers.each do |session_server|
|
307
|
+
server_list << session_server if raw_list.include?(session_server.host)
|
308
|
+
end
|
309
|
+
command = $2
|
310
|
+
ssh_command(command, session.on(*server_list))
|
311
|
+
else
|
312
|
+
ssh_command(command)
|
313
|
+
end
|
314
|
+
end
|
315
|
+
end
|
267
316
|
|
268
317
|
def get_stripped_unfrozen_value(value)
|
269
318
|
return nil if value.nil?
|
@@ -305,7 +354,14 @@ class Chef
|
|
305
354
|
configure_gateway
|
306
355
|
configure_session
|
307
356
|
|
308
|
-
exit_status =
|
357
|
+
exit_status =
|
358
|
+
case @name_args[1]
|
359
|
+
when "interactive"
|
360
|
+
interactive
|
361
|
+
else
|
362
|
+
ssh_command(@name_args[1..-1].join(" "))
|
363
|
+
end
|
364
|
+
|
309
365
|
|
310
366
|
session.close
|
311
367
|
|
data/lib/knife/undev/version.rb
CHANGED