Merge "Fix power status command error reporting"

This commit is contained in:
Zuul 2018-06-18 19:49:51 +00:00 committed by Gerrit Code Review
commit d8e66cb06a
2 changed files with 8 additions and 7 deletions

View File

@ -16,6 +16,7 @@
import libvirt
import mock
from virtualbmc import exception
from virtualbmc.tests.unit import base
from virtualbmc.tests.unit import utils as test_utils
from virtualbmc import utils
@ -132,8 +133,7 @@ class VirtualBMCTestCase(base.TestCase):
def test_get_power_state_error(self, mock_libvirt_domain,
mock_libvirt_open):
mock_libvirt_domain.side_effect = libvirt.libvirtError('boom')
ret = self.vbmc.get_power_state()
self.assertEqual(0xC0, ret)
self.assertRaises(exception.VirtualBMCError, self.vbmc.get_power_state)
self._assert_libvirt_calls(mock_libvirt_domain, mock_libvirt_open,
readonly=True)

View File

@ -15,6 +15,7 @@ import xml.etree.ElementTree as ET
import libvirt
import pyghmi.ipmi.bmc as bmc
from virtualbmc import exception
from virtualbmc import log
from virtualbmc import utils
@ -116,11 +117,11 @@ class VirtualBMC(bmc.Bmc):
if domain.isActive():
return POWERON
except libvirt.libvirtError as e:
LOG.error('Error getting the power state of domain %(domain)s. '
'Error: %(error)s', {'domain': self.domain_name,
'error': e})
# Command failed, but let client to retry
return IPMI_COMMAND_NODE_BUSY
msg = ('Error getting the power state of domain %(domain)s. '
'Error: %(error)s', {'domain': self.domain_name,
'error': e})
LOG.error(msg)
raise exception.VirtualBMCError(message=msg)
return POWEROFF