diff options
author | Ilya Etingof <etingof@gmail.com> | 2019-10-11 23:10:48 +0200 |
---|---|---|
committer | Iury Gregory Melo Ferreira <imelofer@redhat.com> | 2020-05-25 18:20:15 +0200 |
commit | 734a0a0cb9188c4d686b749b6b809240a4bae8c0 (patch) | |
tree | da8c558aa202fa30858ce519290bc051e0c4b10d /ironic/drivers | |
parent | cf12521f70d53c2a8babdd94583c81874b5cd060 (diff) | |
download | ironic-734a0a0cb9188c4d686b749b6b809240a4bae8c0.tar.gz |
Add `get_node_network_data` to non-Neutron NetworkInterface
Implements `get_node_network_data` network interface method for
non-Neutron networks providing network configuration for the node
taken from the `network_data` field of the ironic node object.
Change-Id: I4c5722b5e515f6edfa6a1bac0a443c71312c34d8
Story: 2006691
Task: 37070
Diffstat (limited to 'ironic/drivers')
-rw-r--r-- | ironic/drivers/modules/network/common.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ironic/drivers/modules/network/common.py b/ironic/drivers/modules/network/common.py index 736249b69..14a8f7465 100644 --- a/ironic/drivers/modules/network/common.py +++ b/ironic/drivers/modules/network/common.py @@ -393,6 +393,30 @@ 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): + """Return network configuration for node NICs. + + 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. |