uoregon-multissh 0.3.5 → 0.3.6
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/cli.rb +4 -1
- data/lib/multissh.rb +9 -8
- data/lib/worker.rb +6 -2
- data/uoregon-multissh.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d3715c72b56b4b20bb515810e186294c20a870b2931f0a27224ded025bd21b31
|
|
4
|
+
data.tar.gz: b3c4f68e47301b098cf1159050092aa11ca94838ee7de1b165087a5dc6a848b3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e57fa55e276b3bc1601fcfd8c7ff2fba53fdf1854c11a3f828d70436cbf4a28f168eac5e94e5ed8dfd293e62fe3d40b18b15e5bd8d4b64fc78d040d49c5c74fe
|
|
7
|
+
data.tar.gz: c15568482425b969e0e64fec6a456d8ed8ff6cb15ca0288cf9b046ed0d5c57bc93f7318e988e5b399f9a5b3cd862d62f891c88001cad60afbdbcca8fbf1ccd96
|
data/lib/cli.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require_relative 'credential'
|
|
2
2
|
|
|
3
3
|
class Cli
|
|
4
|
-
attr_accessor :username, :password, :key_password, :nodes, :command, :block, :debug, :credential
|
|
4
|
+
attr_accessor :username, :password, :key_password, :nodes, :command, :block, :header_max_length, :debug, :credential
|
|
5
5
|
|
|
6
6
|
def initialize
|
|
7
7
|
|
|
@@ -15,6 +15,7 @@ class Cli
|
|
|
15
15
|
opt.on('--pkey_password "PASSWORD"', 'OPTIONAL: will prompt if needed') { |o| @options[:pkey_password] = o }
|
|
16
16
|
opt.on('--disable_sudo', 'OPTIONAL: disable_sudo requirement and run as current user') { @options[:disable_sudo] = true }
|
|
17
17
|
opt.on('--block', 'OPTIONAL: block mode for command ouptut') { @options[:block] = true }
|
|
18
|
+
opt.on('--match_width', 'OPTIONAL: matches hostname width for easier comparison of results') { @options[:match_width] = true }
|
|
18
19
|
opt.on('--regenerate_config', 'OPTIONAL: regenerate configuration file') { @options[:regenerate_config] = true }
|
|
19
20
|
opt.on('--debug', 'OPTIONAL: debug mode') { @options[:debug] = true }
|
|
20
21
|
end
|
|
@@ -56,6 +57,8 @@ class Cli
|
|
|
56
57
|
@command = parse_command(@options[:command])
|
|
57
58
|
@block = true if @options[:block]
|
|
58
59
|
|
|
60
|
+
@header_max_length = @options[:match_width] ? @nodes.max_by(&:length).length : nil
|
|
61
|
+
|
|
59
62
|
rescue Interrupt
|
|
60
63
|
puts "\nCtrl+C Interrupt\n"
|
|
61
64
|
exit 1
|
data/lib/multissh.rb
CHANGED
|
@@ -16,14 +16,15 @@ class Multissh < Cli
|
|
|
16
16
|
tasks = []
|
|
17
17
|
@nodes.each do |node|
|
|
18
18
|
worker = Worker.new(
|
|
19
|
-
hostname
|
|
20
|
-
username
|
|
21
|
-
password
|
|
22
|
-
pkey_password
|
|
23
|
-
sudo_password
|
|
24
|
-
command
|
|
25
|
-
block
|
|
26
|
-
|
|
19
|
+
hostname: node.chomp,
|
|
20
|
+
username: @username,
|
|
21
|
+
password: @password,
|
|
22
|
+
pkey_password: @pkey_password,
|
|
23
|
+
sudo_password: @sudo_password,
|
|
24
|
+
command: @command,
|
|
25
|
+
block: @block,
|
|
26
|
+
header_max_length: @header_max_length,
|
|
27
|
+
debug: @debug,
|
|
27
28
|
)
|
|
28
29
|
tasks.append(worker)
|
|
29
30
|
end
|
data/lib/worker.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
class Worker
|
|
2
|
-
def initialize(hostname, username, password, pkey_password, sudo_password, command, block, debug)
|
|
2
|
+
def initialize(hostname: nil, username: nil, password: nil, pkey_password: nil, sudo_password: nil, command: nil, block: nil, header_max_length: nil, debug: nil)
|
|
3
3
|
@hostname = hostname
|
|
4
4
|
@username = username
|
|
5
5
|
@password = password
|
|
@@ -8,7 +8,9 @@ class Worker
|
|
|
8
8
|
@command = command
|
|
9
9
|
@block = block
|
|
10
10
|
|
|
11
|
-
@
|
|
11
|
+
@header_begin = hostname
|
|
12
|
+
@header_padding = header_max_length ? " " * (header_max_length - hostname.length) : ""
|
|
13
|
+
@header_end = " -- "
|
|
12
14
|
@util = Util.new(debug)
|
|
13
15
|
end
|
|
14
16
|
|
|
@@ -17,6 +19,8 @@ class Worker
|
|
|
17
19
|
@util.show_summary(self)
|
|
18
20
|
|
|
19
21
|
result = ''
|
|
22
|
+
@header = @header_begin + @header_padding + @header_end
|
|
23
|
+
|
|
20
24
|
begin
|
|
21
25
|
Net::SSH.start(@hostname, @username, :password => @password, :passphrase => @pkey_password, :non_interactive => true) do |ssh|
|
|
22
26
|
channel = ssh.open_channel do |channel, success|
|
data/uoregon-multissh.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |spec|
|
|
2
2
|
spec.name = 'uoregon-multissh'
|
|
3
|
-
spec.version = '0.3.
|
|
3
|
+
spec.version = '0.3.6'
|
|
4
4
|
spec.date = '2019-05-14'
|
|
5
5
|
spec.summary = "Do all the things everywhere at the same time"
|
|
6
6
|
spec.description = "Quickly run multiple commands on many boxes at the same time"
|