hammer_cli_foreman_ssh 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72122353341170b4412a4bee8a3fab00ff79849d
4
- data.tar.gz: 11fa69f7d181d7c7dbc204674ef923d2cea10851
3
+ metadata.gz: 6bbea546f82aac0b23357ebf8f2152d64ead6093
4
+ data.tar.gz: 60bd743fb982a04a701532b6c9c5e05621ba16ca
5
5
  SHA512:
6
- metadata.gz: 91b8c148411fed0459ad9bc39e7d2e76d777e478cc094726d608037b52e5f2f7a94ad483cc82268ecffb1f5fa6c16bbbc4c32b6c41b7b7aa1c68e9764ed1ff8b
7
- data.tar.gz: 0ae905ea2f90685fe014d18b86c35c8753885d8c31ecf514d65f6bb03e3a3287aa402077c6a47307c883060de4ed4ab7b58600a1f99e98c323a1e6ba9a3d34c1
6
+ metadata.gz: 28101af41aa9049394e532fdad8dc501539b9d0c319a491c3870d1c5a9ba6ac703dd2bcceb4a2acf657f70a7404ba8db989cb0e20e01687fb338eabf4284064f
7
+ data.tar.gz: cad1851ec13f7a600e19e8e45b8f84133bcc5632ecb255f514fe6df95cc06dd9cbb9db74705510127f445f97e327d818311182ee27eacbd5b457837c4994d1f2
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Hammer CLI - Foreman SSH
2
2
  ========================
3
3
 
4
- the plugin for hammer
4
+ SSH plugin for hammer
5
5
 
6
6
  Install
7
7
  -------
@@ -48,6 +48,7 @@ Options:
48
48
  --[no-]prompt Prompt for users approval
49
49
  -c, --command COMMAND Command to execute
50
50
  -h, --help print help
51
+ -i, --identity_file FILE Selects a file from which the identity (private key) for public key authentication is read
51
52
  -s, --search FILTER Filter hosts based on a filter
52
53
  -u, --user USER Execute as user
53
54
  Default: "ohad"
@@ -0,0 +1,2 @@
1
+ :foreman_ssh:
2
+ :enable_module: true
@@ -1,3 +1,5 @@
1
- module HammerCLIForeman
1
+ require 'hammer_cli_foreman'
2
+ module HammerCLIForemanSsh
3
+ require 'hammer_cli_foreman_ssh/ssh'
4
+ require 'hammer_cli_foreman_ssh/version'
2
5
  end
3
- require 'hammer_cli_foreman/ssh'
@@ -2,7 +2,7 @@ require 'hammer_cli'
2
2
  require 'hammer_cli_foreman/host'
3
3
  require 'net/ssh/multi'
4
4
 
5
- module HammerCLIForeman::SSH
5
+ module HammerCLIForemanSsh
6
6
  class Command < HammerCLIForeman::Command
7
7
 
8
8
  DEFAULT_PER_PAGE = 1000
@@ -12,6 +12,9 @@ module HammerCLIForeman::SSH
12
12
 
13
13
  command_name 'SSH to hosts'
14
14
  option %w(-c --command), 'COMMAND', _('Command to execute'), :attribute_name => :command, :required => true
15
+ option %w(-n --concurrent), 'CONCURRENCY', _('Number of concurrent SSH sessions'), :attribute_name => :concurrent do |o|
16
+ Integer(o)
17
+ end
15
18
  option %w(-u --user), 'USER', _('Execute as user'), :attribute_name => :user, :default => ENV['USER']
16
19
  option %w(-s --search), 'FILTER', _('Filter hosts based on a filter'), :attribute_name => :search
17
20
  option '--[no-]dns', :flag, _('Use DNS to resolve IP addresses'), :attribute_name => :use_dns
@@ -28,6 +31,8 @@ module HammerCLIForeman::SSH
28
31
  end
29
32
 
30
33
  def execute
34
+ signal_usage_error(_("specify 1 or more concurrent hosts")) if (!concurrent.nil? && concurrent < 1)
35
+
31
36
  puts _("About to execute: #{command} as user #{user}\n" +
32
37
  "on the following #{hosts.size} hosts: #{host_names.join(', ')}")
33
38
 
@@ -39,7 +44,8 @@ module HammerCLIForeman::SSH
39
44
  ssh_options = { :user => user, :auth_methods => ['publickey'] }
40
45
  ssh_options[:keys] = [identity_file] unless identity_file.to_s.empty?
41
46
 
42
- Net::SSH::Multi.start(:on_error => :warn) do |session|
47
+ Net::SSH::Multi.start(:concurrent_connections => concurrent, :on_error => :warn) do |session|
48
+ logger.info(_("executing on #{concurrent} concurrent host(s)")) if concurrent.to_i > 0
43
49
  targets.each { |s| session.use s, ssh_options }
44
50
  session.exec command
45
51
  session.loop
@@ -72,5 +78,5 @@ module HammerCLIForeman::SSH
72
78
 
73
79
  end
74
80
 
75
- HammerCLIForeman::Host.subcommand('ssh', _('Remote execution via SSH to selected hosts'), HammerCLIForeman::SSH::Command)
81
+ HammerCLIForeman::Host.subcommand('ssh', _('Remote execution via SSH to selected hosts'), HammerCLIForemanSsh::Command)
76
82
  end
@@ -0,0 +1,5 @@
1
+ module HammerCLIForemanSsh
2
+ def self.version
3
+ @version ||= Gem::Version.new '0.0.3'
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hammer_cli_foreman_ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ohad Levy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-27 00:00:00.000000000 Z
11
+ date: 2015-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hammer_cli
@@ -44,14 +44,118 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 1.2.1
48
48
  type: :runtime
49
49
  prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.2.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 10.1.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 10.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: thor
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 4.7.4
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 4.7.4
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest-spec-context
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "<"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.9.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "<"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.9.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: mocha
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
50
134
  version_requirements: !ruby/object:Gem::Requirement
51
135
  requirements:
52
136
  - - ">="
53
137
  - !ruby/object:Gem::Version
54
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: ci_reporter
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: 1.6.3
146
+ - - "<"
147
+ - !ruby/object:Gem::Version
148
+ version: 2.0.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: 1.6.3
156
+ - - "<"
157
+ - !ruby/object:Gem::Version
158
+ version: 2.0.0
55
159
  description:
56
160
  email:
57
161
  executables: []
@@ -60,9 +164,10 @@ extra_rdoc_files: []
60
164
  files:
61
165
  - LICENSE
62
166
  - README.md
63
- - lib/hammer_cli_foreman/ssh.rb
64
- - lib/hammer_cli_foreman/ssh/version.rb
167
+ - config/foreman_ssh.yml
65
168
  - lib/hammer_cli_foreman_ssh.rb
169
+ - lib/hammer_cli_foreman_ssh/ssh.rb
170
+ - lib/hammer_cli_foreman_ssh/version.rb
66
171
  homepage:
67
172
  licenses:
68
173
  - GPLv3+
@@ -1,7 +0,0 @@
1
- module HammerCLIForeman
2
- module SSH
3
- def self.version
4
- @version ||= Gem::Version.new '0.0.2'
5
- end
6
- end
7
- end