diff --git a/ironic/drivers/modules/irmc/common.py b/ironic/drivers/modules/irmc/common.py index 0027bab974..24adf0da8d 100644 --- a/ironic/drivers/modules/irmc/common.py +++ b/ironic/drivers/modules/irmc/common.py @@ -20,6 +20,7 @@ from oslo_utils import importutils from ironic.common import exception from ironic.common.i18n import _ +from ironic.common import utils from ironic.conf import CONF scci = importutils.try_import('scciclient.irmc.scci') @@ -84,6 +85,8 @@ def parse_driver_info(node): opt = {param: info.get(param, CONF.irmc.get(param[len('irmc_'):])) for param in OPTIONAL_PROPERTIES} d_info = dict(req, **opt) + d_info['irmc_port'] = utils.validate_network_port( + d_info['irmc_port'], 'irmc_port') error_msgs = [] if (d_info['irmc_auth_method'].lower() not in ('basic', 'digest')): diff --git a/ironic/tests/unit/db/utils.py b/ironic/tests/unit/db/utils.py index 0e60b1fa54..e2eae83cc8 100644 --- a/ironic/tests/unit/db/utils.py +++ b/ironic/tests/unit/db/utils.py @@ -105,7 +105,7 @@ def get_test_irmc_info(): "irmc_address": "1.2.3.4", "irmc_username": "admin0", "irmc_password": "fake0", - "irmc_port": 80, + "irmc_port": "80", "irmc_auth_method": "digest", } diff --git a/releasenotes/notes/irmc-convert-the-value-of-irmc-port-63c90450b5a77203.yaml b/releasenotes/notes/irmc-convert-the-value-of-irmc-port-63c90450b5a77203.yaml new file mode 100644 index 0000000000..2a06a271df --- /dev/null +++ b/releasenotes/notes/irmc-convert-the-value-of-irmc-port-63c90450b5a77203.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fix the bug caused by not converting the port value to int type + when the node managed by the `irmc` hardware type.