From 42f90203dde38830882518709e471f105451ff3a Mon Sep 17 00:00:00 2001 From: Brian Haley Date: Thu, 7 Sep 2017 15:42:33 -0400 Subject: [PATCH] Treat lack of segment info in port object as unbound A push notifications change added segment information to the get_device_details() RPC call, but sometimes the segment information is not present, resulting in an AttributeError. Just treat the lack of segment info as if the port was unbound, since the port is probably in the process of being removed. Change-Id: I631c6e1f02fa07eed330c99a96aa66d747784f37 Closes-bug: #1714068 (cherry picked from commit 4833852abb864230daecf97bc672ad9a4a9c4267) --- neutron/agent/rpc.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/neutron/agent/rpc.py b/neutron/agent/rpc.py index a9e056ec8ce..144094217d7 100644 --- a/neutron/agent/rpc.py +++ b/neutron/agent/rpc.py @@ -229,6 +229,9 @@ class CacheBackedPluginApi(PluginApi): LOG.warning("Device %s is not bound.", port_obj) return {'device': device} segment = port_obj.binding_levels[-1].segment + if not segment: + LOG.debug("Device %s is not bound to any segment.", port_obj) + return {'device': device} net = self.remote_resource_cache.get_resource_by_id( resources.NETWORK, port_obj.network_id) net_qos_policy_id = net.qos_policy_id