summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ironic/drivers/base.py2
-rw-r--r--ironic/drivers/modules/image_utils.py2
-rw-r--r--ironic/drivers/modules/network/common.py24
-rw-r--r--ironic/tests/unit/drivers/modules/network/test_common.py8
-rw-r--r--releasenotes/notes/fix-network-data-e10f2bf9dc38ba1a.yaml5
5 files changed, 8 insertions, 33 deletions
diff --git a/ironic/drivers/base.py b/ironic/drivers/base.py
index d22bb4623..ac790e352 100644
--- a/ironic/drivers/base.py
+++ b/ironic/drivers/base.py
@@ -1575,7 +1575,7 @@ class NetworkInterface(BaseInterface):
:returns: a dict holding network configuration information adhearing
Nova network metadata layout (`network_data.json`).
"""
- return {}
+ return task.node.network_data or {}
class StorageInterface(BaseInterface, metaclass=abc.ABCMeta):
diff --git a/ironic/drivers/modules/image_utils.py b/ironic/drivers/modules/image_utils.py
index 105a57d15..40ae866fe 100644
--- a/ironic/drivers/modules/image_utils.py
+++ b/ironic/drivers/modules/image_utils.py
@@ -459,6 +459,8 @@ def prepare_deploy_iso(task, params, mode, d_info):
network_data = task.driver.network.get_node_network_data(task)
if network_data:
+ LOG.debug('Injecting custom network data for node %s',
+ task.node.uuid)
with tempfile.NamedTemporaryFile(dir=CONF.tempdir,
suffix='.iso') as metadata_fileobj:
diff --git a/ironic/drivers/modules/network/common.py b/ironic/drivers/modules/network/common.py
index da6cfff46..3798c2bd4 100644
--- a/ironic/drivers/modules/network/common.py
+++ b/ironic/drivers/modules/network/common.py
@@ -402,30 +402,6 @@ class VIFPortIDMixin(object):
or p_obj.internal_info.get('inspection_vif_port_id')
or self._get_vif_id_by_port_like_obj(p_obj) or None)
- def get_node_network_data(self, task):
- """Get network configuration data for node's ports/portgroups.
-
- Gather L2 and L3 network settings from ironic node `network_data`
- field. Ironic would eventually pass network configuration to the node
- being managed out-of-band.
-
- :param task: A TaskManager instance.
- :raises: InvalidParameterValue, if the network interface configuration
- is invalid.
- :raises: MissingParameterValue, if some parameters are missing.
- :returns: a dict holding network configuration information adhearing
- Nova network metadata layout (`network_data.json`).
- """
- node = task.node
-
- network_data = node.network_data
-
- # TODO(etingof): remove or truncate `network_data` logging
- LOG.debug('Collected network data for node %(node)s: %(data)s',
- {'node': node.uuid, 'data': network_data})
-
- return network_data
-
class NeutronVIFPortIDMixin(VIFPortIDMixin):
"""VIF port ID mixin class for neutron network interfaces.
diff --git a/ironic/tests/unit/drivers/modules/network/test_common.py b/ironic/tests/unit/drivers/modules/network/test_common.py
index eefbd8a9d..9e8ac2b41 100644
--- a/ironic/tests/unit/drivers/modules/network/test_common.py
+++ b/ironic/tests/unit/drivers/modules/network/test_common.py
@@ -739,14 +739,6 @@ class TestVifPortIDMixin(db_base.DbTestCase):
vif = self.interface.get_current_vif(task, self.port)
self.assertIsNone(vif)
- def test_get_node_network_data_complete(self):
- self.node.network_data = self.network_data
- self.node.save()
- with task_manager.acquire(self.context, self.node.id) as task:
- network_data = self.interface.get_node_network_data(task)
-
- self.assertEqual(self.network_data, network_data)
-
class TestNeutronVifPortIDMixin(db_base.DbTestCase):
diff --git a/releasenotes/notes/fix-network-data-e10f2bf9dc38ba1a.yaml b/releasenotes/notes/fix-network-data-e10f2bf9dc38ba1a.yaml
new file mode 100644
index 000000000..40f91e760
--- /dev/null
+++ b/releasenotes/notes/fix-network-data-e10f2bf9dc38ba1a.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Correctly handles the node's custom network data when the ``noop`` network
+ interface is used. Previously it was ignored.