rcmd 1.6.3 → 1.6.4
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/.gitignore +2 -0
- data/.rspec_status +13 -9
- data/Gemfile.lock +3 -1
- data/README.md +9 -5
- data/Rakefile +37 -37
- data/doc/rdocs/README_md.html +5 -0
- data/doc/rdocs/created.rid +2 -2
- data/doc/rdocs/index.html +5 -0
- data/doc/rdocs/js/navigation.js.gz +0 -0
- data/doc/rdocs/js/search_index.js.gz +0 -0
- data/doc/rdocs/js/searcher.js.gz +0 -0
- data/lib/rcmd/db.rb +19 -16
- data/lib/rcmd/version.rb +1 -1
- data/rcmd.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ef2d6e4a0f3903338259d59c44d9b28ef9d3a2c6
|
|
4
|
+
data.tar.gz: f2fb6ce8e638474cec958d9b04f7043110d93524
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 57bf0fb42a1c513a49626d4415e57f0afd9a9834a90bd4c5a2a6a522bf4abbfadabbda77604abf4f1c6aed21f43e600e3ff0406f5986cebb3e40a0fe14f2f739
|
|
7
|
+
data.tar.gz: 5ff7aa09debaa9ad74ba5eadf733d79f543c8ebcbe212c8997d7a851cf11147268f5d64c6764b16f536affe05e2471373075fde65154f7d9f909d9a3a779bfd0
|
data/.gitignore
CHANGED
data/.rspec_status
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
example_id
|
|
2
|
-
|
|
3
|
-
./spec/rcmd_spec.rb[1:1]
|
|
4
|
-
./spec/rcmd_spec.rb[1:2]
|
|
5
|
-
./spec/rcmd_spec.rb[1:3]
|
|
6
|
-
./spec/rcmd_spec.rb[1:4]
|
|
7
|
-
./spec/rcmd_spec.rb[1:5]
|
|
8
|
-
./spec/rcmd_spec.rb[1:6]
|
|
9
|
-
./spec/rcmd_spec.rb[1:7]
|
|
1
|
+
example_id | status | run_time |
|
|
2
|
+
------------------------- | ------ | --------------- |
|
|
3
|
+
./spec/rcmd_spec.rb[1:1] | passed | 0.00067 seconds |
|
|
4
|
+
./spec/rcmd_spec.rb[1:2] | passed | 0.00093 seconds |
|
|
5
|
+
./spec/rcmd_spec.rb[1:3] | passed | 0.00077 seconds |
|
|
6
|
+
./spec/rcmd_spec.rb[1:4] | passed | 0.00016 seconds |
|
|
7
|
+
./spec/rcmd_spec.rb[1:5] | passed | 0.00014 seconds |
|
|
8
|
+
./spec/rcmd_spec.rb[1:6] | passed | 0.00104 seconds |
|
|
9
|
+
./spec/rcmd_spec.rb[1:7] | passed | 0.00011 seconds |
|
|
10
|
+
./spec/rcmd_spec.rb[1:8] | passed | 0.01113 seconds |
|
|
11
|
+
./spec/rcmd_spec.rb[1:9] | passed | 0.02283 seconds |
|
|
12
|
+
./spec/rcmd_spec.rb[1:10] | passed | 0.00779 seconds |
|
|
13
|
+
./spec/rcmd_spec.rb[1:11] | passed | 0.00637 seconds |
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
rcmd (1.6.
|
|
4
|
+
rcmd (1.6.4)
|
|
5
5
|
activerecord
|
|
6
6
|
activesupport
|
|
7
7
|
io-console
|
|
@@ -52,6 +52,7 @@ GEM
|
|
|
52
52
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
53
|
rspec-support (~> 3.6.0)
|
|
54
54
|
rspec-support (3.6.0)
|
|
55
|
+
sqlite3 (1.3.13)
|
|
55
56
|
thread (0.2.2)
|
|
56
57
|
thread_safe (0.3.6)
|
|
57
58
|
timers (4.1.2)
|
|
@@ -78,6 +79,7 @@ DEPENDENCIES
|
|
|
78
79
|
rake (~> 10.0)
|
|
79
80
|
rcmd!
|
|
80
81
|
rspec (~> 3.0, >= 2.0.0)
|
|
82
|
+
sqlite3
|
|
81
83
|
|
|
82
84
|
BUNDLED WITH
|
|
83
85
|
1.15.4
|
data/README.md
CHANGED
|
@@ -11,6 +11,8 @@ thread and creating the ssh sessions in those threads.
|
|
|
11
11
|
- Username can be specified. (Default is root. Requires valid ssh-key in ~/.ssh)
|
|
12
12
|
- Output shows which host the output is from
|
|
13
13
|
- Stdout can be suppressed, only allowing for stderr to be shown
|
|
14
|
+
- Usage of Regex for generating the host list
|
|
15
|
+
- Support for SQLite3, MySql/MariaDB and PostgreSQL queries for generating host list
|
|
14
16
|
|
|
15
17
|
## Installation
|
|
16
18
|
rcmd is available as a gem and kan be installed with `gem install rcmd`
|
|
@@ -163,18 +165,20 @@ If you are wanting to modify the code by all means do so. If you clone this rep
|
|
|
163
165
|
Available Rake tasks are:
|
|
164
166
|
|
|
165
167
|
```bash
|
|
166
|
-
rake build # Build rcmd-1.
|
|
168
|
+
rake build # Build rcmd-1.6.4.gem into the pkg directory
|
|
167
169
|
rake clean # Remove any temporary products
|
|
168
170
|
rake clobber # Remove any generated files
|
|
169
171
|
rake clobber_rdoc # Remove RDoc HTML files
|
|
170
172
|
rake console # Open an IRB console with this gem loaded
|
|
171
|
-
rake install # Build and install rcmd-1.
|
|
172
|
-
rake install:local # Build and install rcmd-1.
|
|
173
|
+
rake install # Build and install rcmd-1.6.4.gem into system gems
|
|
174
|
+
rake install:local # Build and install rcmd-1.6.4.gem into system gems without network access
|
|
173
175
|
rake rdoc # Build RDoc HTML files
|
|
174
176
|
rake reinstall # Remove, build, and install gem
|
|
175
|
-
rake release[remote] # Create tag v1.
|
|
177
|
+
rake release[remote] # Create tag v1.6.4 and build and push rcmd-1.6.4.gem to Rubygems
|
|
176
178
|
rake rerdoc # Rebuild RDoc HTML files
|
|
177
|
-
rake
|
|
179
|
+
rake test:all # Run all RSpec tests
|
|
180
|
+
rake test:db # Test Database functionality (sqlite3 required)
|
|
181
|
+
rake test:mainlib # Test main rcmd lib
|
|
178
182
|
```
|
|
179
183
|
|
|
180
184
|
|
data/Rakefile
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
-
require "rspec/core/rake_task"
|
|
3
2
|
require 'rdoc/task'
|
|
4
|
-
# require 'sqlite3'
|
|
5
3
|
|
|
6
|
-
|
|
4
|
+
task :default => ['test:all']
|
|
7
5
|
|
|
8
|
-
task :default => :spec
|
|
9
6
|
|
|
10
7
|
desc "Open an IRB console with this gem loaded"
|
|
11
8
|
task :console do
|
|
@@ -16,6 +13,7 @@ task :console do
|
|
|
16
13
|
IRB.start
|
|
17
14
|
end
|
|
18
15
|
|
|
16
|
+
|
|
19
17
|
desc "Remove, build, and install gem"
|
|
20
18
|
task :reinstall do
|
|
21
19
|
puts "Uninstalling #{`gem list rcmd`}"
|
|
@@ -24,8 +22,8 @@ task :reinstall do
|
|
|
24
22
|
Rake::Task["install"].invoke
|
|
25
23
|
end
|
|
26
24
|
|
|
27
|
-
desc 'generate API documentation to doc/rdocs/index.html'
|
|
28
25
|
|
|
26
|
+
desc 'generate API documentation to doc/rdocs/index.html'
|
|
29
27
|
Rake::RDocTask.new do |rd|
|
|
30
28
|
rd.rdoc_dir = 'doc/rdocs'
|
|
31
29
|
rd.main = 'README.md'
|
|
@@ -35,36 +33,38 @@ Rake::RDocTask.new do |rd|
|
|
|
35
33
|
rd.options << '--all'
|
|
36
34
|
end
|
|
37
35
|
|
|
38
|
-
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node3', 'dev', 'rhel6')"
|
|
46
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node4', 'dev', 'rhel7')"
|
|
47
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node5', 'dev', 'rhel6')"
|
|
48
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node6', 'web', 'rhel6')"
|
|
49
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node7', 'web', 'rhel6')"
|
|
50
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node8', 'web', 'rhel7')"
|
|
51
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node9', 'web', 'rhel7')"
|
|
52
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node10', 'admin', 'ubuntu-LTS')"
|
|
53
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node11', 'admin', 'ubuntu-LTS')"
|
|
54
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node12', 'admin', 'ubuntu')"
|
|
55
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node13', 'admin', 'ubuntu')"
|
|
56
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node14', 'compute', 'debiuan')"
|
|
57
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node15', 'compute', 'debiuan')"
|
|
58
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node16', 'compute', 'debiuan')"
|
|
59
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node17', 'compute', 'debiuan')"
|
|
60
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node18', 'db', 'slackware')"
|
|
61
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node19', 'db', 'slackware')"
|
|
62
|
-
# db.execute "INSERT INTO servers (hostname, stype, os_type) VALUES ( 'node20', 'db', 'slackware')"
|
|
36
|
+
#
|
|
37
|
+
# RSpec tasks
|
|
38
|
+
#
|
|
39
|
+
begin
|
|
40
|
+
namespace :test do
|
|
41
|
+
require "rspec/core/rake_task"
|
|
42
|
+
require 'sqlite3'
|
|
63
43
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
44
|
+
desc 'Test Database functionality (sqlite3 required)'
|
|
45
|
+
RSpec::Core::RakeTask.new(:db) do |t|
|
|
46
|
+
t.rspec_opts = "--tag db"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
namespace :test do
|
|
51
|
+
desc 'Test main rcmd lib'
|
|
52
|
+
RSpec::Core::RakeTask.new(:mainlib) do |t|
|
|
53
|
+
t.rspec_opts = "--tag mainlib"
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
namespace :test do
|
|
58
|
+
desc "Run all RSpec tests"
|
|
59
|
+
RSpec::Core::RakeTask.new(:all) do |t|
|
|
60
|
+
t.rspec_opts = "--tag mainlib --tag db"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
rescue LoadError
|
|
64
|
+
desc 'RSpec rake task not available'
|
|
65
|
+
task :spec do
|
|
66
|
+
abort 'RSpec rake tasl is not available. Ensure rspec-core is installed'
|
|
67
|
+
end
|
|
68
|
+
ensure
|
|
69
|
+
File.delete("testdb") if File.exist?("testdb")
|
|
70
|
+
end
|
data/doc/rdocs/README_md.html
CHANGED
|
@@ -109,6 +109,11 @@ the node list.</p>
|
|
|
109
109
|
<p>Output shows which host the output is from</p>
|
|
110
110
|
</li><li>
|
|
111
111
|
<p>Stdout can be suppressed, only allowing for stderr to be shown</p>
|
|
112
|
+
</li><li>
|
|
113
|
+
<p>Usage of Regex for generating the host list</p>
|
|
114
|
+
</li><li>
|
|
115
|
+
<p>Support for SQLite3, MySql/MariaDB and PostgreSQL queries for generating
|
|
116
|
+
host list</p>
|
|
112
117
|
</li></ul>
|
|
113
118
|
|
|
114
119
|
<h2 id="label-Installation">Installation<span><a href="#label-Installation">¶</a> <a href="#top">↑</a></span></h2>
|
data/doc/rdocs/created.rid
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
README.md
|
|
1
|
+
Tue, 10 Oct 2017 19:34:36 +0000
|
|
2
|
+
README.md Mon, 09 Oct 2017 13:39:20 +0000
|
|
3
3
|
lib/rcmd.rb Fri, 06 Oct 2017 20:23:25 +0000
|
|
4
4
|
lib/rcmd/db.rb Sat, 07 Oct 2017 11:16:26 +0000
|
|
5
5
|
lib/rcmd/version.rb Sat, 07 Oct 2017 11:20:01 +0000
|
data/doc/rdocs/index.html
CHANGED
|
@@ -104,6 +104,11 @@ the node list.</p>
|
|
|
104
104
|
<p>Output shows which host the output is from</p>
|
|
105
105
|
</li><li>
|
|
106
106
|
<p>Stdout can be suppressed, only allowing for stderr to be shown</p>
|
|
107
|
+
</li><li>
|
|
108
|
+
<p>Usage of Regex for generating the host list</p>
|
|
109
|
+
</li><li>
|
|
110
|
+
<p>Support for SQLite3, MySql/MariaDB and PostgreSQL queries for generating
|
|
111
|
+
host list</p>
|
|
107
112
|
</li></ul>
|
|
108
113
|
|
|
109
114
|
<h2 id="label-Installation">Installation<span><a href="#label-Installation">¶</a> <a href="#top">↑</a></span></h2>
|
|
Binary file
|
|
Binary file
|
data/doc/rdocs/js/searcher.js.gz
CHANGED
|
Binary file
|
data/lib/rcmd/db.rb
CHANGED
|
@@ -70,14 +70,13 @@ not implemented.
|
|
|
70
70
|
@db_os_queries = true
|
|
71
71
|
|
|
72
72
|
# Method for overiding the location and name of the default config
|
|
73
|
-
# file
|
|
73
|
+
# file (Used by RSpec tests)
|
|
74
74
|
def DB.override_config_file(path)
|
|
75
75
|
@config_file = path
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
# Create a base config file
|
|
79
79
|
def DB.create_config
|
|
80
|
-
puts "Function: #{@config_dir}"
|
|
81
80
|
unless File.directory?(@config_dir)
|
|
82
81
|
FileUtils.mkdir_p(@config_dir)
|
|
83
82
|
end
|
|
@@ -90,7 +89,7 @@ not implemented.
|
|
|
90
89
|
end
|
|
91
90
|
|
|
92
91
|
# Performs "LIKE" queries on the host_field (hostname)
|
|
93
|
-
def DB.query_by_hostname(term)
|
|
92
|
+
def DB.query_by_hostname(term)
|
|
94
93
|
return where("#{@conf[:host_field]} LIKE ?", term ).map { |r| r[@conf[:host_field]] }
|
|
95
94
|
end
|
|
96
95
|
|
|
@@ -156,20 +155,24 @@ not implemented.
|
|
|
156
155
|
# adapter and set the table_name variable of the class.
|
|
157
156
|
def DB.db_connect
|
|
158
157
|
self.load_config
|
|
159
|
-
|
|
160
|
-
if @conf[:adapter].downcase == "sqlite3"
|
|
161
|
-
ActiveRecord::Base.establish_connection(:adapter => @conf[:adapter].downcase,
|
|
162
|
-
:database => @conf[:database])
|
|
163
|
-
else
|
|
164
|
-
ActiveRecord::Base.establish_connection(
|
|
165
|
-
:adapter => @conf[:adapter].downcase,
|
|
166
|
-
:host => @conf[:host],
|
|
167
|
-
:username => @conf[:username],
|
|
168
|
-
:password => @conf[:password],
|
|
169
|
-
:database => @conf[:database] )
|
|
170
|
-
end
|
|
171
158
|
|
|
172
|
-
|
|
159
|
+
begin
|
|
160
|
+
if @conf[:adapter].downcase == "sqlite3"
|
|
161
|
+
ActiveRecord::Base.establish_connection(:adapter => @conf[:adapter].downcase,
|
|
162
|
+
:database => @conf[:database])
|
|
163
|
+
else
|
|
164
|
+
ActiveRecord::Base.establish_connection(
|
|
165
|
+
:adapter => @conf[:adapter].downcase,
|
|
166
|
+
:host => @conf[:host],
|
|
167
|
+
:username => @conf[:username],
|
|
168
|
+
:password => @conf[:password],
|
|
169
|
+
:database => @conf[:database] )
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
@table_name = @conf[:table]
|
|
173
|
+
rescue RuntimeError, AdapterNotFound, ArgumentError => e
|
|
174
|
+
raise RuntimeError, "DB Error when configuring connection: #{e}"
|
|
175
|
+
end
|
|
173
176
|
end
|
|
174
177
|
end
|
|
175
178
|
end
|
data/lib/rcmd/version.rb
CHANGED
data/rcmd.gemspec
CHANGED
|
@@ -39,6 +39,7 @@ Gem::Specification.new do |spec|
|
|
|
39
39
|
spec.add_runtime_dependency('activesupport')
|
|
40
40
|
spec.add_runtime_dependency('activerecord')
|
|
41
41
|
spec.add_runtime_dependency('regexp-examples')
|
|
42
|
+
spec.add_development_dependency('sqlite3')
|
|
42
43
|
spec.add_development_dependency('rspec', '~> 3.0', '>= 2.0.0')
|
|
43
44
|
spec.add_development_dependency "bundler", ">= 1.0"
|
|
44
45
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rcmd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.6.
|
|
4
|
+
version: 1.6.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Rose
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-10-
|
|
11
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: net-ssh
|
|
@@ -108,6 +108,20 @@ dependencies:
|
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: sqlite3
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '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'
|
|
111
125
|
- !ruby/object:Gem::Dependency
|
|
112
126
|
name: rspec
|
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|