rubyipmi 0.11.1 → 0.12.0
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/CONTRIBUTORS.md +8 -0
- data/Gemfile +5 -7
- data/RELEASE_NOTES.md +13 -2
- data/VERSION +1 -1
- data/lib/rubyipmi/commands/basecommand.rb +9 -8
- data/lib/rubyipmi/version.rb +1 -1
- data/lib/rubyipmi.rb +11 -3
- data/rubyipmi.gemspec +8 -11
- metadata +50 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b400cae906782f5f4d2c2812a67e08db4d01ee28c29d098764eb06172aaece4c
|
4
|
+
data.tar.gz: eaf5ef307e3b93d26ca97e38776b5e97781602524fff7a9fa726bea86feb1454
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45e700715cfff358dc1409c3521e8a731615a20d31b1f3452b911188fe0e8d85a707367b840ba4a699bab431242edace43ce1ae11018d1cc24394e11e4f61f90
|
7
|
+
data.tar.gz: 47c8628e9e278a755afc369e04a71914eab88607e3945400bdcb940b8a652cac627c1bcb2e7a0ac6677f5e3ed732e8b7ad08e3e3a2ae2d8f2ec0bb54578513e4
|
data/CONTRIBUTORS.md
ADDED
data/Gemfile
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
+
gemspec
|
4
|
+
|
3
5
|
group :development do
|
4
|
-
gem
|
5
|
-
gem "rdoc", "~> 3.12"
|
6
|
-
gem "bundler", ">= 2.0.0"
|
7
|
-
gem "highline"
|
8
|
-
gem "rake"
|
9
|
-
gem 'coveralls', :require => false
|
6
|
+
gem 'coveralls_reborn', require: false
|
10
7
|
gem 'pry'
|
11
8
|
gem 'pry-rescue'
|
12
|
-
gem "rubocop",
|
9
|
+
gem "rubocop", :require => false
|
10
|
+
gem "reline"
|
13
11
|
end
|
data/RELEASE_NOTES.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## unreleased
|
2
|
+
|
3
|
+
### 0.12.0
|
4
|
+
* Add Ruby 3.4 support @ekohl
|
5
|
+
* Update test matrix for other 3.x rubies @ekohl
|
6
|
+
* Remove highline as a runtime dependency + simpify gemspec & Gemfile @ekohl
|
7
|
+
* Use the SPDX license code in gemspec @ekohl
|
8
|
+
* Limit dependency ranges to avoid gemspec warnings @ekohl
|
9
|
+
* Simplify gemspec @ekohl
|
10
|
+
* Adds github actions for testing
|
11
|
+
|
1
12
|
### 0.11.1
|
2
13
|
* remove hidden files from gem package
|
3
14
|
|
@@ -13,7 +24,7 @@ This is a big update with many minor changes and bug fixes. Thank you for all t
|
|
13
24
|
Adds a missing counter incrementation with the same style as
|
14
25
|
in basecommands and make it return current @info in case of a failure,
|
15
26
|
so all methods accessing it will just get return nil.
|
16
|
-
|
27
|
+
|
17
28
|
- Leverage Enumerable#each_with_object
|
18
29
|
- Add a SensorsMixin to remove duplicate code
|
19
30
|
- Enable Rubocop GuardClause and fix complaints
|
@@ -32,7 +43,7 @@ This is a big update with many minor changes and bug fixes. Thank you for all t
|
|
32
43
|
- Remove if / else logic and unnecessary return in #validate_status
|
33
44
|
- Reword confusing project description
|
34
45
|
- Update README.md section on booting to specific devices
|
35
|
-
- Update documentation around bootpxe, bootdisk functions
|
46
|
+
- Update documentation around bootpxe, bootdisk functions
|
36
47
|
- Remove pry statement from method
|
37
48
|
### 0.10.0
|
38
49
|
* gh-26 - make the driver default to lan20
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.12.0
|
@@ -37,9 +37,8 @@ module Rubyipmi
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def locate_command(commandname)
|
40
|
-
location =
|
41
|
-
|
42
|
-
logger.error("#{commandname} command not found, is #{commandname} installed?") if logger
|
40
|
+
unless location = Rubyipmi.locate_command(commandname)
|
41
|
+
logger&.error("#{commandname} command not found, is #{commandname} installed?")
|
43
42
|
raise "#{commandname} command not found, is #{commandname} installed?"
|
44
43
|
end
|
45
44
|
location
|
@@ -67,10 +66,10 @@ module Rubyipmi
|
|
67
66
|
logger.debug(makecommand) if logger
|
68
67
|
begin
|
69
68
|
command = makecommand
|
70
|
-
@lastcall =
|
71
|
-
@result =
|
69
|
+
@lastcall = command.to_s
|
70
|
+
@result, @result_err, status = Rubyipmi.capture3(command)
|
72
71
|
# sometimes the command tool does not return the correct result, validate it with additional code
|
73
|
-
process_status = validate_status(
|
72
|
+
process_status = validate_status(status)
|
74
73
|
rescue
|
75
74
|
if retrycount < max_retry_count
|
76
75
|
find_fix(@result)
|
@@ -96,7 +95,8 @@ module Rubyipmi
|
|
96
95
|
begin
|
97
96
|
fix = ErrorCodes.search(result)
|
98
97
|
@options.merge_notify!(fix)
|
99
|
-
rescue
|
98
|
+
rescue e
|
99
|
+
raise e
|
100
100
|
Rubyipmi.logger.debug("Could not find fix for error code: \n#{result}") if logger
|
101
101
|
raise "Could not find fix for error code: \n#{result}"
|
102
102
|
end
|
@@ -108,7 +108,8 @@ module Rubyipmi
|
|
108
108
|
|
109
109
|
# This method will check if the results are really valid as the exit code can be misleading and incorrect
|
110
110
|
def validate_status(exitstatus)
|
111
|
-
raise "Error occurred" unless exitstatus
|
111
|
+
raise "Error occurred" unless exitstatus
|
112
|
+
raise "Error occurred" if exitstatus.is_a?(Process::Status) && exitstatus.success?
|
112
113
|
|
113
114
|
true
|
114
115
|
end
|
data/lib/rubyipmi/version.rb
CHANGED
data/lib/rubyipmi.rb
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
require 'rubyipmi/ipmitool/connection'
|
20
20
|
require 'rubyipmi/freeipmi/connection'
|
21
21
|
require 'logger'
|
22
|
+
require 'open3'
|
22
23
|
|
23
24
|
class NullLogger < Logger
|
24
25
|
def initialize(*_args)
|
@@ -144,11 +145,18 @@ module Rubyipmi
|
|
144
145
|
PRIV_TYPES.include?(type)
|
145
146
|
end
|
146
147
|
|
148
|
+
# test-friendly capture3
|
149
|
+
def self.capture3(cmd)
|
150
|
+
return Open3.capture3(cmd)
|
151
|
+
end
|
152
|
+
|
147
153
|
# method used to find the command which also makes it easier to mock with
|
148
154
|
def self.locate_command(commandname)
|
149
|
-
|
150
|
-
|
151
|
-
|
155
|
+
stdout, stderr, status = Open3.capture3("which #{commandname}")
|
156
|
+
logger&.error("Which command returned: #{stderr}") unless status.success?
|
157
|
+
|
158
|
+
return nil unless status.success?
|
159
|
+
stdout
|
152
160
|
end
|
153
161
|
|
154
162
|
# Return true or false if the provider is available
|
data/rubyipmi.gemspec
CHANGED
@@ -6,8 +6,6 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "rubyipmi"
|
7
7
|
s.version = Rubyipmi::VERSION
|
8
8
|
|
9
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
10
|
-
s.require_paths = ["lib"]
|
11
9
|
s.authors = ["Corey Osman"]
|
12
10
|
s.date = "2021-09-29"
|
13
11
|
s.description = "Controls IPMI devices via command line wrapper for ipmitool and freeipmi"
|
@@ -20,15 +18,14 @@ Gem::Specification.new do |s|
|
|
20
18
|
f.match(/^(\.|test|spec|features)/) || f.match(/^*.tar\.gz/)
|
21
19
|
end
|
22
20
|
s.homepage = "https://github.com/logicminds/rubyipmi"
|
23
|
-
s.
|
24
|
-
s.rubygems_version = "2.4.5"
|
21
|
+
s.license = "LGPL-2.1-only"
|
25
22
|
s.summary = "A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi"
|
26
23
|
s.require_paths = ['lib']
|
27
|
-
s.
|
28
|
-
s.
|
29
|
-
s.add_development_dependency
|
30
|
-
s.add_development_dependency
|
31
|
-
s.add_development_dependency
|
32
|
-
s.
|
24
|
+
s.add_dependency 'observer', '~> 0.1.0'
|
25
|
+
s.add_dependency 'logger'
|
26
|
+
s.add_development_dependency 'rspec'
|
27
|
+
s.add_development_dependency 'rdoc', "~> 6.1"
|
28
|
+
s.add_development_dependency 'bundler', "~> 2.0"
|
29
|
+
s.add_development_dependency 'highline', '>= 1.0', '< 3'
|
30
|
+
s.add_development_dependency 'rake', '~> 13'
|
33
31
|
end
|
34
|
-
|
metadata
CHANGED
@@ -1,99 +1,118 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyipmi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Osman
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
10
|
date: 2021-09-29 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
13
|
+
name: observer
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
16
|
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
18
|
+
version: 0.1.0
|
19
|
+
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
25
|
+
version: 0.1.0
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
27
|
+
name: logger
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
|
-
- - "
|
30
|
+
- - ">="
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
type: :
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
|
-
- - "
|
37
|
+
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
39
|
+
version: '0'
|
41
40
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
41
|
+
name: rspec
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
44
|
- - ">="
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
46
|
+
version: '0'
|
48
47
|
type: :development
|
49
48
|
prerelease: false
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
51
50
|
requirements:
|
52
51
|
- - ">="
|
53
52
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
53
|
+
version: '0'
|
55
54
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
55
|
+
name: rdoc
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
|
-
- - "
|
58
|
+
- - "~>"
|
60
59
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
60
|
+
version: '6.1'
|
62
61
|
type: :development
|
63
62
|
prerelease: false
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
|
-
- - "
|
65
|
+
- - "~>"
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
67
|
+
version: '6.1'
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
69
|
+
name: bundler
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
|
-
- - "
|
72
|
+
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
74
|
+
version: '2.0'
|
76
75
|
type: :development
|
77
76
|
prerelease: false
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
|
-
- - "
|
79
|
+
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
81
|
+
version: '2.0'
|
83
82
|
- !ruby/object:Gem::Dependency
|
84
83
|
name: highline
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
86
85
|
requirements:
|
87
86
|
- - ">="
|
88
87
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
|
88
|
+
version: '1.0'
|
89
|
+
- - "<"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '3'
|
92
|
+
type: :development
|
91
93
|
prerelease: false
|
92
94
|
version_requirements: !ruby/object:Gem::Requirement
|
93
95
|
requirements:
|
94
96
|
- - ">="
|
95
97
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
98
|
+
version: '1.0'
|
99
|
+
- - "<"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '3'
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rake
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "~>"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '13'
|
109
|
+
type: :development
|
110
|
+
prerelease: false
|
111
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - "~>"
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '13'
|
97
116
|
description: Controls IPMI devices via command line wrapper for ipmitool and freeipmi
|
98
117
|
email: corey@logicminds.biz
|
99
118
|
executables: []
|
@@ -102,6 +121,7 @@ extra_rdoc_files:
|
|
102
121
|
- LICENSE.txt
|
103
122
|
- README.md
|
104
123
|
files:
|
124
|
+
- CONTRIBUTORS.md
|
105
125
|
- Gemfile
|
106
126
|
- LICENSE.txt
|
107
127
|
- README.md
|
@@ -140,9 +160,8 @@ files:
|
|
140
160
|
- rubyipmi.gemspec
|
141
161
|
homepage: https://github.com/logicminds/rubyipmi
|
142
162
|
licenses:
|
143
|
-
-
|
163
|
+
- LGPL-2.1-only
|
144
164
|
metadata: {}
|
145
|
-
post_install_message:
|
146
165
|
rdoc_options: []
|
147
166
|
require_paths:
|
148
167
|
- lib
|
@@ -157,8 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
176
|
- !ruby/object:Gem::Version
|
158
177
|
version: '0'
|
159
178
|
requirements: []
|
160
|
-
rubygems_version: 3.
|
161
|
-
signing_key:
|
179
|
+
rubygems_version: 3.6.2
|
162
180
|
specification_version: 4
|
163
181
|
summary: A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi
|
164
182
|
test_files: []
|