components/openstack/neutron/files/agent/solaris/dhcp.py
branchs11-update
changeset 3551 3bb8f53b637c
parent 3200 16d08ab96b7f
child 3998 5bd484384122
--- a/components/openstack/neutron/files/agent/solaris/dhcp.py	Mon Dec 15 23:00:25 2014 -0800
+++ b/components/openstack/neutron/files/agent/solaris/dhcp.py	Tue Dec 16 02:40:00 2014 -0800
@@ -33,6 +33,7 @@
 
 from neutron.agent.linux import utils
 from neutron.agent.solaris import net_lib
+from neutron.common import constants
 from neutron.common import exceptions
 from neutron.openstack.common import importutils
 from neutron.openstack.common import jsonutils
@@ -573,7 +574,14 @@
         dhcp_port = None
         for port in network.ports:
             port_device_id = getattr(port, 'device_id', None)
-            if port_device_id == device_id:
+            port_device_owner = getattr(port, 'device_owner', None)
+
+            # if the agent is started on a different node, then the
+            # device_ids will be different since they are based off
+            # hostname.
+            if (port_device_id == device_id or
+                    (port_device_owner == constants.DEVICE_OWNER_DHCP and
+                     port_device_id.startswith('dhcp'))):
                 port_fixed_ips = []
                 for fixed_ip in port.fixed_ips:
                     port_fixed_ips.append({'subnet_id': fixed_ip.subnet_id,