summaryrefslogtreecommitdiff
path: root/ironic/dhcp
diff options
context:
space:
mode:
authorVladyslav Drok <vdrok@mirantis.com>2016-07-06 20:32:15 +0300
committerVladyslav Drok <vdrok@mirantis.com>2016-07-07 19:56:13 +0300
commit0a5bb693efe6a5b417c5ba9a912292b498438f84 (patch)
tree0565bf921cd8d687d6a46fab40d53523bd09d0a1 /ironic/dhcp
parent22aba527fb045af58fa876f394c2bb923ed949c4 (diff)
downloadironic-0a5bb693efe6a5b417c5ba9a912292b498438f84.tar.gz
Add internal_info field to ports and portgroups
In case of ports, it is also added to the API, as a readonly field. It will be used for any port-specific internal information ironic needs to store inside the port object. In this change we start using it to store UUIDs of the cleaning ports that ironic creates, instead of fiddling with port.extra['vif_port_id'], as extra is intended for operator use only. Partial-bug: #1526403 Change-Id: Ib62c3e32305619d0c55f8ec7e45b067f0f0b32d4
Diffstat (limited to 'ironic/dhcp')
-rw-r--r--ironic/dhcp/neutron.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/ironic/dhcp/neutron.py b/ironic/dhcp/neutron.py
index 25f833ff0..15935a491 100644
--- a/ironic/dhcp/neutron.py
+++ b/ironic/dhcp/neutron.py
@@ -205,7 +205,10 @@ class NeutronDHCPApi(base.BaseDHCP):
:raises: InvalidIPv4Address
"""
- vif = p_obj.extra.get('vif_port_id')
+ # NOTE(vdrok): This works because cleaning_vif_port_id doesn't exist
+ # when we're in deployment/tenant network
+ vif = (p_obj.internal_info.get('cleaning_vif_port_id') or
+ p_obj.extra.get('vif_port_id'))
if not vif:
obj_name = 'portgroup'
if isinstance(p_obj, objects.Port):