rubyipmi 0.5.1 → 0.6.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.
- data/LICENSE.txt +14 -17
- data/VERSION +1 -1
- data/lib/rubyipmi/freeipmi/commands/bmc.rb +10 -1
- data/lib/rubyipmi/freeipmi/commands/bmcdevice.rb +32 -0
- data/lib/rubyipmi/ipmitool/commands/bmc.rb +13 -0
- data/lib/rubyipmi/ipmitool/connection.rb +3 -2
- data/rubyipmi.gemspec +11 -9
- data/spec/bmc_spec.rb +11 -0
- metadata +29 -41
data/LICENSE.txt
CHANGED
@@ -1,20 +1,17 @@
|
|
1
|
-
|
1
|
+
Any questions please contact Corey Osman at corey@logicminds.biz
|
2
2
|
|
3
|
-
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
3
|
+
Copyright (c) 2013 Corey Osman
|
10
4
|
|
11
|
-
|
12
|
-
|
5
|
+
This program is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License,
|
8
|
+
or (at your option) any later version.
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
MERCHANTABILITY
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
13
|
+
See the GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public
|
16
|
+
License along with this program.
|
17
|
+
If not, see http://www.gnu.org/licenses/.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
@@ -18,6 +18,10 @@ module Rubyipmi::Freeipmi
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
+
def reset(type='cold')
|
22
|
+
device.reset(type)
|
23
|
+
end
|
24
|
+
|
21
25
|
def guid
|
22
26
|
information.guid
|
23
27
|
end
|
@@ -31,7 +35,12 @@ module Rubyipmi::Freeipmi
|
|
31
35
|
end
|
32
36
|
|
33
37
|
def information
|
34
|
-
@info ||= Rubyipmi::Freeipmi::BmcInfo.new(
|
38
|
+
@info ||= Rubyipmi::Freeipmi::BmcInfo.new(options)
|
35
39
|
end
|
40
|
+
|
41
|
+
def device
|
42
|
+
@bmcdevice ||= Rubyipmi::Freeipmi::BmcDevice.new(options)
|
43
|
+
end
|
44
|
+
|
36
45
|
end
|
37
46
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Rubyipmi::Freeipmi
|
2
|
+
|
3
|
+
class BmcDevice < Rubyipmi::Freeipmi::BaseCommand
|
4
|
+
|
5
|
+
def initialize(opts = ObservableHash.new)
|
6
|
+
super("bmc-device", opts)
|
7
|
+
end
|
8
|
+
|
9
|
+
# runs a command like bmc-device --cold-reset
|
10
|
+
def command(opt)
|
11
|
+
@options[opt] = false
|
12
|
+
value = runcmd
|
13
|
+
@options.delete_notify(opt)
|
14
|
+
return value
|
15
|
+
end
|
16
|
+
|
17
|
+
# reset the bmc device, useful for debugging and troubleshooting
|
18
|
+
def reset(type='cold')
|
19
|
+
if ['cold', 'warm'].include?(type)
|
20
|
+
key = "#{type}-reset"
|
21
|
+
command(key)
|
22
|
+
else
|
23
|
+
raise "reset type: #{type} is not a valid choice, use warm or cold"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end
|
@@ -21,6 +21,19 @@ module Rubyipmi::Ipmitool
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
# reset the bmc device, useful for troubleshooting
|
25
|
+
def reset(type='cold')
|
26
|
+
if ['cold', 'warm'].include?(type)
|
27
|
+
@options["cmdargs"] = "bmc reset #{type}"
|
28
|
+
value = runcmd()
|
29
|
+
@options.delete_notify("cmdargs")
|
30
|
+
return value
|
31
|
+
else
|
32
|
+
raise "reset type: #{type} is not a valid choice, use warm or cold"
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
24
37
|
def guid
|
25
38
|
@options["cmdargs"] = "bmc guid"
|
26
39
|
value = runcmd()
|
@@ -23,8 +23,9 @@ module Rubyipmi
|
|
23
23
|
# So they are not required
|
24
24
|
@options["U"] = user if user
|
25
25
|
@options["P"] = pass if pass
|
26
|
-
# default to IPMI 2.0 communication
|
27
|
-
|
26
|
+
# default to IPMI 2.0 communication, this means that older devices will not work
|
27
|
+
# Those old servers should be recycled by now, as the 1.0, 1.5 spec came out in 2005ish and is 2013.
|
28
|
+
@options["I"] = "lanplus"
|
28
29
|
|
29
30
|
#getWorkArounds
|
30
31
|
end
|
data/rubyipmi.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = %q{rubyipmi}
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Corey Osman"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = %q{2013-07-03}
|
13
|
+
s.description = %q{A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi}
|
14
|
+
s.email = %q{corey@logicminds.biz}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.md",
|
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/rubyipmi/freeipmi/commands/basecommand.rb",
|
33
33
|
"lib/rubyipmi/freeipmi/commands/bmc.rb",
|
34
34
|
"lib/rubyipmi/freeipmi/commands/bmcconfig.rb",
|
35
|
+
"lib/rubyipmi/freeipmi/commands/bmcdevice.rb",
|
35
36
|
"lib/rubyipmi/freeipmi/commands/bmcinfo.rb",
|
36
37
|
"lib/rubyipmi/freeipmi/commands/chassis.rb",
|
37
38
|
"lib/rubyipmi/freeipmi/commands/chassisconfig.rb",
|
@@ -64,16 +65,17 @@ Gem::Specification.new do |s|
|
|
64
65
|
"spec/sensor_spec.rb",
|
65
66
|
"spec/spec_helper.rb"
|
66
67
|
]
|
67
|
-
s.homepage =
|
68
|
+
s.homepage = %q{http://github.com/logicminds/rubyipmi}
|
68
69
|
s.licenses = ["GPLv3"]
|
69
70
|
s.require_paths = ["lib"]
|
70
|
-
s.rubygems_version =
|
71
|
-
s.summary =
|
71
|
+
s.rubygems_version = %q{1.3.6}
|
72
|
+
s.summary = %q{A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi}
|
72
73
|
|
73
74
|
if s.respond_to? :specification_version then
|
75
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
74
76
|
s.specification_version = 3
|
75
77
|
|
76
|
-
if Gem::Version.new(Gem::
|
78
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
77
79
|
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
78
80
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
79
81
|
s.add_development_dependency(%q<bundler>, ["~> 1.1.5"])
|
data/spec/bmc_spec.rb
CHANGED
@@ -23,6 +23,17 @@ describe "Bmc" do
|
|
23
23
|
# before.length.should be < after.length
|
24
24
|
#end
|
25
25
|
|
26
|
+
it "should reset the bmc device" do
|
27
|
+
@conn.bmc.reset('cold').should_not be_nil
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should reset the bmc device warmly" do
|
31
|
+
@conn.bmc.reset('warm').should_not be_nil
|
32
|
+
end
|
33
|
+
|
34
|
+
it "reset should fail when type is wrong" do
|
35
|
+
@conn.bmc.reset('freezing').should_be nil
|
36
|
+
end
|
26
37
|
|
27
38
|
it "is able to retrieve the bmc info" do
|
28
39
|
@conn.bmc.info.should_not be_nil
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyipmi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
7
|
+
- 6
|
8
|
+
- 0
|
9
|
+
version: 0.6.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Corey Osman
|
@@ -15,85 +14,76 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2013-
|
17
|
+
date: 2013-07-03 00:00:00 -07:00
|
18
|
+
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
21
|
+
type: :development
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
hash: 47
|
27
26
|
segments:
|
28
27
|
- 2
|
29
28
|
- 8
|
30
29
|
- 0
|
31
30
|
version: 2.8.0
|
32
|
-
prerelease: false
|
33
|
-
type: :development
|
34
31
|
name: rspec
|
35
|
-
|
32
|
+
requirement: *id001
|
33
|
+
prerelease: false
|
36
34
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
-
|
35
|
+
type: :development
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
37
|
requirements:
|
40
38
|
- - ~>
|
41
39
|
- !ruby/object:Gem::Version
|
42
|
-
hash: 31
|
43
40
|
segments:
|
44
41
|
- 3
|
45
42
|
- 12
|
46
43
|
version: "3.12"
|
47
|
-
prerelease: false
|
48
|
-
type: :development
|
49
44
|
name: rdoc
|
50
|
-
|
45
|
+
requirement: *id002
|
46
|
+
prerelease: false
|
51
47
|
- !ruby/object:Gem::Dependency
|
52
|
-
|
53
|
-
|
48
|
+
type: :development
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
50
|
requirements:
|
55
51
|
- - ~>
|
56
52
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 25
|
58
53
|
segments:
|
59
54
|
- 1
|
60
55
|
- 1
|
61
56
|
- 5
|
62
57
|
version: 1.1.5
|
63
|
-
prerelease: false
|
64
|
-
type: :development
|
65
58
|
name: bundler
|
66
|
-
|
59
|
+
requirement: *id003
|
60
|
+
prerelease: false
|
67
61
|
- !ruby/object:Gem::Dependency
|
68
|
-
|
69
|
-
|
62
|
+
type: :development
|
63
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
64
|
requirements:
|
71
65
|
- - ~>
|
72
66
|
- !ruby/object:Gem::Version
|
73
|
-
hash: 63
|
74
67
|
segments:
|
75
68
|
- 1
|
76
69
|
- 8
|
77
70
|
- 4
|
78
71
|
version: 1.8.4
|
79
|
-
prerelease: false
|
80
|
-
type: :development
|
81
72
|
name: jeweler
|
82
|
-
|
73
|
+
requirement: *id004
|
74
|
+
prerelease: false
|
83
75
|
- !ruby/object:Gem::Dependency
|
84
|
-
|
85
|
-
|
76
|
+
type: :development
|
77
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
78
|
requirements:
|
87
79
|
- - ">="
|
88
80
|
- !ruby/object:Gem::Version
|
89
|
-
hash: 3
|
90
81
|
segments:
|
91
82
|
- 0
|
92
83
|
version: "0"
|
93
|
-
prerelease: false
|
94
|
-
type: :development
|
95
84
|
name: rcov
|
96
|
-
|
85
|
+
requirement: *id005
|
86
|
+
prerelease: false
|
97
87
|
description: A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi
|
98
88
|
email: corey@logicminds.biz
|
99
89
|
executables: []
|
@@ -119,6 +109,7 @@ files:
|
|
119
109
|
- lib/rubyipmi/freeipmi/commands/basecommand.rb
|
120
110
|
- lib/rubyipmi/freeipmi/commands/bmc.rb
|
121
111
|
- lib/rubyipmi/freeipmi/commands/bmcconfig.rb
|
112
|
+
- lib/rubyipmi/freeipmi/commands/bmcdevice.rb
|
122
113
|
- lib/rubyipmi/freeipmi/commands/bmcinfo.rb
|
123
114
|
- lib/rubyipmi/freeipmi/commands/chassis.rb
|
124
115
|
- lib/rubyipmi/freeipmi/commands/chassisconfig.rb
|
@@ -150,6 +141,7 @@ files:
|
|
150
141
|
- spec/rubyipmi_spec.rb
|
151
142
|
- spec/sensor_spec.rb
|
152
143
|
- spec/spec_helper.rb
|
144
|
+
has_rdoc: true
|
153
145
|
homepage: http://github.com/logicminds/rubyipmi
|
154
146
|
licenses:
|
155
147
|
- GPLv3
|
@@ -159,27 +151,23 @@ rdoc_options: []
|
|
159
151
|
require_paths:
|
160
152
|
- lib
|
161
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
154
|
requirements:
|
164
155
|
- - ">="
|
165
156
|
- !ruby/object:Gem::Version
|
166
|
-
hash: 3
|
167
157
|
segments:
|
168
158
|
- 0
|
169
159
|
version: "0"
|
170
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
161
|
requirements:
|
173
162
|
- - ">="
|
174
163
|
- !ruby/object:Gem::Version
|
175
|
-
hash: 3
|
176
164
|
segments:
|
177
165
|
- 0
|
178
166
|
version: "0"
|
179
167
|
requirements: []
|
180
168
|
|
181
169
|
rubyforge_project:
|
182
|
-
rubygems_version: 1.
|
170
|
+
rubygems_version: 1.3.6
|
183
171
|
signing_key:
|
184
172
|
specification_version: 3
|
185
173
|
summary: A ruby wrapper for ipmi command line tools that supports ipmitool and freeipmi
|