IPMI is a standard but many devices don’t follow the standard 100%.
Additionally, many IPMI specifications are not required. So while a
majority of bmc devices will work great, some devices may be incompatible
or require work arounds or require a firmware upgrade to the bmc device and
bios.
See: Manpage of ipmipower for more information regarding this subject.
If I knew the make, model and firmware revsion of your bmc device I can
search google and possibly find a workaround or a known incompatibility and
add to the error library.
Also what version of ipmitool and freeipmi are you using?
The first step is to run the impi command itself and see the problem:
ipmitool -U user -P pass -H hostname -I lanplus chassis power on
ipmipower --username=user --password=pass --hostname=hostname
–driver-type=LAN_2_0 --on
use bmc-info to get firmware revision number
use ipmi-fru to get make / model information
Additionally, I am adding a function to rubyipmi to send diagnostic
information to me for when this issue happens. Its unfortunate that IPMI
is not a strict standard, but I think maintaining a error library with auto
applied workarounds is the best course of action.
If you want to test at Rubyipmi level you can run:
rake ipmiuser=user ipmipass=pass ipmihost=hostname ipmiprovider=ipmitool
or freeipmi
Thanks,
Corey Osman
corey@logicminds.biz
Green IT and Data Center Automation Specialist
On Aug 27, 2012, at 9:45 AM, Ohad Levy ohadlevy@gmail.com wrote:
בתאריך 27 באוג 2012 18:46, מאת “Corey Osman” corey@logicminds.biz:
What is the make and model of server? What firmware version is the bmc
device running? Are you able to update the firmware?
IMHO, that testing needs to happen within the ipmi gem, and the proxy
should mock those requests (so no real changes are ever happening).
Ohad
Sent from my iPhone
On Aug 27, 2012, at 6:03 AM, Ohad Levy ohadlevy@gmail.com wrote:
On 08/27/2012 01:51 AM, Corey Osman wrote:
All tests are passing for me through ipmitool. Freeipmi I still have
tests that fail due to HP ilo issues and the freeipmi lib, but this is
expected.
What tests are failing for you?
for ipmitool
- Error:
test_should_power_on(BmcTest):
RuntimeError: Set Chassis Power Control to Up/On failed: Invalid data
field in request
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/ipmitool/commands/basecommand.rb:28:in
`findfix’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/commands/basecommand.rb:41:in
`runcmd’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/ipmitool/commands/power.rb:12:in
`command’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/ipmitool/commands/power.rb:19:in
`on’
./lib/proxy/bmc/ipmi.rb:37:in poweron' /home/olevy/git/proxy/test/bmc_test.rb:39:in
test_should_power_on’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’
98 tests, 144 assertions, 0 failures, 1 errors
and for freeipmi
- Failure:
test_api_can_get_power_off(BmcApiTest)
[/home/olevy/git/proxy/test/bmc_api_test.rb:44:in
`test_api_can_get_power_off’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
Last response was not ok.
is not true.
- Failure:
test_api_can_get_power_on_status(BmcApiTest)
[/home/olevy/git/proxy/test/bmc_api_test.rb:37:in
`test_api_can_get_power_on_status’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
Last response was not ok.
is not true.
- Failure:
test_api_can_put_power_action(BmcApiTest)
[/home/olevy/git/proxy/test/bmc_api_test.rb:30:in
`test_api_can_put_power_action’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
Last response was not ok.
is not true.
- Failure:
test_api_can_set_pxe_boot_device(BmcApiTest)
[/home/olevy/git/proxy/test/bmc_api_test.rb:88:in
`test_api_can_set_pxe_boot_device’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
<“”> expected to be =~
</true|false/>.
- Failure:
test_should_bootbios(BmcTest)
[/home/olevy/git/proxy/test/bmc_test.rb:59:in `test_should_bootbios’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
is not true.
- Failure:
test_should_bootcdrom(BmcTest)
[/home/olevy/git/proxy/test/bmc_test.rb:63:in
`test_should_bootcdrom’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
is not true.
- Failure:
test_should_bootdisk(BmcTest)
[/home/olevy/git/proxy/test/bmc_test.rb:55:in `test_should_bootdisk’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
is not true.
- Failure:
test_should_bootpxe(BmcTest)
[/home/olevy/git/proxy/test/bmc_test.rb:51:in `test_should_bootpxe’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’]:
is not true.
- Error:
test_should_power_cycle(BmcTest):
RuntimeError: off
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/basecommand.rb:44:in
`findfix’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/commands/basecommand.rb:41:in
`runcmd’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:11:in
`command’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:23:in
`off’
./lib/proxy/bmc/ipmi.rb:31:in poweroff' /home/olevy/git/proxy/test/bmc_test.rb:71:in
cleanup’
/home/olevy/git/proxy/test/bmc_test.rb:47:in
`test_should_power_cycle’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’
- Error:
test_should_power_off(BmcTest):
RuntimeError: ok
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/basecommand.rb:44:in
`findfix’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/commands/basecommand.rb:41:in
`runcmd’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:11:in
`command’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:23:in
`off’
./lib/proxy/bmc/ipmi.rb:31:in poweroff' /home/olevy/git/proxy/test/bmc_test.rb:34:in
test_should_power_off’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’
- Error:
test_should_power_on(BmcTest):
RuntimeError: ok
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/basecommand.rb:44:in
`findfix’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/commands/basecommand.rb:41:in
`runcmd’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:11:in
`command’
/home/olevy/.gem/gems/rubyipmi-0.4.0/lib/rubyipmi/freeipmi/commands/power.rb:23:in
`off’
./lib/proxy/bmc/ipmi.rb:31:in poweroff' /home/olevy/git/proxy/test/bmc_test.rb:71:in
cleanup’
/home/olevy/git/proxy/test/bmc_test.rb:41:in `test_should_power_on’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`send’
/home/olevy/.gem/gems/mocha-0.12.1/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in
`run’
98 tests, 139 assertions, 8 failures, 3 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby -I"lib:lib:test"
-I"/usr/lib…]