knife-undev 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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