diff --git a/ironic_python_agent/errors.py b/ironic_python_agent/errors.py index 6058d1918..5ec2e3bfd 100644 --- a/ironic_python_agent/errors.py +++ b/ironic_python_agent/errors.py @@ -228,30 +228,34 @@ class VirtualMediaBootError(RESTError): super(VirtualMediaBootError, self).__init__(details) -class ExtensionError(Exception): +class ExtensionError(RESTError): pass -class UnknownNodeError(Exception): +class UnknownNodeError(RESTError): """Error raised when the agent is not associated with an Ironic node.""" message = 'Agent is not associated with an Ironic node.' - def __init__(self, message=None): - if message is not None: - self.message = message - super(UnknownNodeError, self).__init__(self.message) + def __init__(self, details=None): + if details is not None: + details = details + else: + details = self.message + super(UnknownNodeError, self).__init__(details) -class HardwareManagerNotFound(Exception): +class HardwareManagerNotFound(RESTError): """Error raised when no valid HardwareManager can be found.""" message = 'No valid HardwareManager found.' - def __init__(self, message=None): - if message is not None: - self.message = message - super(HardwareManagerNotFound, self).__init__(self.message) + def __init__(self, details=None): + if details is not None: + details = details + else: + details = self.message + super(HardwareManagerNotFound, self).__init__(details) class HardwareManagerMethodNotFound(RESTError): diff --git a/ironic_python_agent/tests/errors.py b/ironic_python_agent/tests/errors.py index cc0c0da37..b36cad864 100644 --- a/ironic_python_agent/tests/errors.py +++ b/ironic_python_agent/tests/errors.py @@ -108,6 +108,10 @@ class TestErrors(test_base.BaseTestCase): (errors.BlockDeviceEraseError(DETAILS), SAME_DETAILS), (errors.BlockDeviceError(DETAILS), SAME_DETAILS), (errors.VirtualMediaBootError(DETAILS), SAME_DETAILS), + (errors.UnknownNodeError(), SAME_CL_MSG), + (errors.UnknownNodeError(DETAILS), SAME_DETAILS), + (errors.HardwareManagerNotFound(), SAME_CL_MSG), + (errors.HardwareManagerNotFound(DETAILS), SAME_DETAILS), (errors.HardwareManagerMethodNotFound('method'), DIFF_CL_DETAILS), (errors.IncompatibleHardwareMethodError(), SAME_CL_MSG),