summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-10-30 22:24:18 +0000
committerGerrit Code Review <review@openstack.org>2020-10-30 22:24:18 +0000
commitaa68e1b5040e0d81260545e0fb61d705bad5b8b7 (patch)
treeaf428974e8920ac866c4ef577beb74a69b9e7865
parent416588f97dd88c592516883c3c5148b9ba5bb6c8 (diff)
parent9c017c146fc0e4f175f4b505ce676bdb32ed232e (diff)
downloadironic-aa68e1b5040e0d81260545e0fb61d705bad5b8b7.tar.gz
Merge "opt: Enhance old stable branches to use latest python-ibmcclient" into stable/train
-rw-r--r--driver-requirements.txt2
-rw-r--r--ironic/drivers/modules/ibmc/utils.py9
-rw-r--r--ironic/tests/unit/drivers/modules/ibmc/test_utils.py4
-rw-r--r--ironic/tests/unit/drivers/third_party_driver_mocks.py4
4 files changed, 13 insertions, 6 deletions
diff --git a/driver-requirements.txt b/driver-requirements.txt
index f0902eecb..f19778719 100644
--- a/driver-requirements.txt
+++ b/driver-requirements.txt
@@ -17,5 +17,5 @@ sushy>=1.9.0
ansible>=2.5
# HUAWEI iBMC hardware type uses the python-ibmcclient library
-python-ibmcclient>=0.1.0,<0.2.0
+python-ibmcclient>=0.1.0,!=0.2.1,<0.3.0
diff --git a/ironic/drivers/modules/ibmc/utils.py b/ironic/drivers/modules/ibmc/utils.py
index 5813d65e4..e3b3f6f3d 100644
--- a/ironic/drivers/modules/ibmc/utils.py
+++ b/ironic/drivers/modules/ibmc/utils.py
@@ -31,6 +31,13 @@ from ironic.conf import CONF
ibmc_client = importutils.try_import('ibmcclient')
ibmc_error = importutils.try_import('ibmc_client.exceptions')
+try:
+ # NOTE(Qianbiao.NG) from python-ibmcclient>=0.2.2, ConnectionError is
+ # renamed to IBMCConnectionError
+ ibmc_error.IBMCConnectionError
+except AttributeError:
+ ibmc_error.IBMCConnectionError = ibmc_error.ConnectionError
+
LOG = log.getLogger(__name__)
REQUIRED_PROPERTIES = {
@@ -153,7 +160,7 @@ def handle_ibmc_exception(action):
try:
return f(*args, **kwargs)
- except ibmc_error.ConnectionError as e:
+ except ibmc_error.IBMCConnectionError as e:
error = (_('Failed to connect to iBMC for node %(node)s, '
'Error: %(error)s')
% {'node': node.uuid, 'error': e})
diff --git a/ironic/tests/unit/drivers/modules/ibmc/test_utils.py b/ironic/tests/unit/drivers/modules/ibmc/test_utils.py
index 87df0e6e0..705bb2816 100644
--- a/ironic/tests/unit/drivers/modules/ibmc/test_utils.py
+++ b/ironic/tests/unit/drivers/modules/ibmc/test_utils.py
@@ -144,8 +144,8 @@ class IBMCUtilsTestCase(base.IBMCTestCase):
conn = self.mock_ibmc_conn(connect_ibmc)
# Mocks
conn.system.get.side_effect = [
- ibmc_error.ConnectionError(url=self.ibmc['address'],
- error='Failed to connect to host'),
+ ibmc_error.IBMCConnectionError(url=self.ibmc['address'],
+ error='Failed to connect to host'),
mock.PropertyMock(
boot_source_override=mock.PropertyMock(
target=constants.BOOT_SOURCE_TARGET_PXE,
diff --git a/ironic/tests/unit/drivers/third_party_driver_mocks.py b/ironic/tests/unit/drivers/third_party_driver_mocks.py
index fde0dc5d3..ab1f493bb 100644
--- a/ironic/tests/unit/drivers/third_party_driver_mocks.py
+++ b/ironic/tests/unit/drivers/third_party_driver_mocks.py
@@ -262,8 +262,8 @@ if not ibmc_client:
# Mock iBMC client exceptions
exceptions = mock.MagicMock()
- exceptions.ConnectionError = (
- type('ConnectionError', (MockKwargsException,), {}))
+ exceptions.IBMCConnectionError = (
+ type('IBMCConnectionError', (MockKwargsException,), {}))
exceptions.IBMCClientError = (
type('IBMCClientError', (MockKwargsException,), {}))
sys.modules['ibmc_client.exceptions'] = exceptions