bunka 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bunka +2 -1
- data/bunka.gemspec +3 -2
- data/lib/bunka.rb +10 -3
- metadata +29 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcbc8b6e5fa260e526443bfcc2616f7c1286ec06
|
4
|
+
data.tar.gz: c068a50c49ca9199e76347539577e81342efc1ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cde791cd711a958f7426a69ec27aab8ecf45f5380306dfb20ab155ab04dbf8a5ba427667f79d2873b80af15956071c8e46fd296b370878cfaeb0a25217587445
|
7
|
+
data.tar.gz: 67b527864f372858931caa27c53303a953acc7bfcac0ac31b62932aa0a3e10e6c4ac67c013b212d130e6c6dec518e8ad62c78174344ddb00ed2dc0f96e87d955
|
data/bin/bunka
CHANGED
@@ -7,11 +7,12 @@ class BunkaCommand < Thor
|
|
7
7
|
map '-t' => :test
|
8
8
|
|
9
9
|
desc 'test COMMAND [QUERY]', 'Execute command on nodes, scoped on the given query if query is given. Query syntax should be the same as `knife search` syntax.'
|
10
|
+
option :sequential, type: :boolean, desc: 'run over nodes sequantially', default: false
|
10
11
|
option :invert, type: :boolean, desc: 'invert matched results', default: false
|
11
12
|
option :timeout, type: :numeric, desc: 'timeout interval per ssh connection (default: 15)', default: 15
|
12
13
|
option :'print-success', type: :boolean, desc: 'prints output of successful commands', default: false
|
13
14
|
def test(command, query='name:*')
|
14
|
-
Bunka.test(command, query, options[:timeout], options[:'print-success'], options[:invert])
|
15
|
+
Bunka.test(command, query, options[:timeout], options[:'print-success'], options[:invert], options[:sequential])
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
data/bunka.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'bunka'
|
3
|
-
spec.version = '1.
|
3
|
+
spec.version = '1.2.0'
|
4
4
|
spec.executables << 'bunka'
|
5
5
|
spec.date = '2013-11-26'
|
6
6
|
spec.summary = 'Parallel ssh commands over chef servers with rspec-like output'
|
@@ -11,9 +11,10 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.homepage = 'https://github.com/openminds/bunka'
|
12
12
|
spec.license = 'MIT'
|
13
13
|
|
14
|
-
spec.add_dependency 'chef', '
|
14
|
+
spec.add_dependency 'chef', '>= 11.0'
|
15
15
|
spec.add_dependency 'colorize'
|
16
16
|
spec.add_dependency 'net-ssh'
|
17
17
|
spec.add_dependency 'parallel'
|
18
|
+
spec.add_dependency 'rake'
|
18
19
|
spec.add_dependency 'thor'
|
19
20
|
end
|
data/lib/bunka.rb
CHANGED
@@ -8,15 +8,22 @@ require 'bunka/ssh'
|
|
8
8
|
|
9
9
|
class Bunka
|
10
10
|
class << self
|
11
|
-
def test command, query, timeout_interval, verbose_success, invert
|
11
|
+
def test command, query, timeout_interval, verbose_success, invert, sequential
|
12
12
|
@command = command
|
13
13
|
@query = query
|
14
14
|
@timeout_interval = timeout_interval
|
15
15
|
@verbose_success = verbose_success
|
16
16
|
@invert = invert
|
17
|
+
@sequential = sequential
|
17
18
|
|
18
|
-
|
19
|
-
|
19
|
+
if sequential
|
20
|
+
knife_search(@query).each do |fqdn|
|
21
|
+
execute_query fqdn
|
22
|
+
end
|
23
|
+
else
|
24
|
+
Parallel.map(knife_search(@query), in_threads: 15) do |fqdn|
|
25
|
+
execute_query fqdn
|
26
|
+
end
|
20
27
|
end
|
21
28
|
|
22
29
|
print_summary
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven De Coeyer
|
@@ -15,70 +15,84 @@ dependencies:
|
|
15
15
|
name: chef
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '11.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '11.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: colorize
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: net-ssh
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: parallel
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
68
82
|
- !ruby/object:Gem::Version
|
69
83
|
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: thor
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
|
-
- -
|
88
|
+
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
76
90
|
version: '0'
|
77
91
|
type: :runtime
|
78
92
|
prerelease: false
|
79
93
|
version_requirements: !ruby/object:Gem::Requirement
|
80
94
|
requirements:
|
81
|
-
- -
|
95
|
+
- - ">="
|
82
96
|
- !ruby/object:Gem::Version
|
83
97
|
version: '0'
|
84
98
|
description: A gem to perform command over parallel ssh connections on multiple chef
|
@@ -89,7 +103,7 @@ executables:
|
|
89
103
|
extensions: []
|
90
104
|
extra_rdoc_files: []
|
91
105
|
files:
|
92
|
-
- .gitignore
|
106
|
+
- ".gitignore"
|
93
107
|
- Gemfile
|
94
108
|
- LICENSE
|
95
109
|
- README.md
|
@@ -112,17 +126,17 @@ require_paths:
|
|
112
126
|
- lib
|
113
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
133
|
requirements:
|
120
|
-
- -
|
134
|
+
- - ">="
|
121
135
|
- !ruby/object:Gem::Version
|
122
136
|
version: '0'
|
123
137
|
requirements: []
|
124
138
|
rubyforge_project:
|
125
|
-
rubygems_version: 2.
|
139
|
+
rubygems_version: 2.2.2
|
126
140
|
signing_key:
|
127
141
|
specification_version: 4
|
128
142
|
summary: Parallel ssh commands over chef servers with rspec-like output
|