]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Python3: do not change the size of a dict while iterating over it
authorCyril Roelandt <cyril@redhat.com>
Tue, 16 Jun 2015 13:38:13 +0000 (13:38 +0000)
committerCyril Roelandt <cyril@redhat.com>
Tue, 16 Jun 2015 13:55:06 +0000 (15:55 +0200)
This does not work in Python3, so we have to store the items first.

Change-Id: I7d8641f980fe62d2900559433d5060a6281a97f8
Blueprint: neutron-python3

neutron/agent/linux/iptables_firewall.py
neutron/api/extensions.py
neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py
neutron/plugins/openvswitch/agent/ovs_neutron_agent.py

index 1cae8f6429f3f790d106ee6299b28a55c6000f30..f8431c7cb82f8eec01c26005e904f4659405985a 100644 (file)
@@ -657,7 +657,7 @@ class IptablesFirewallDriver(firewall.FirewallDriver):
 
     def _remove_unused_sg_members(self):
         """Remove sg_member entries where no IPv4 or IPv6 is associated."""
-        for sg_id in self.sg_members.keys():
+        for sg_id in list(self.sg_members.keys()):
             sg_has_members = (self.sg_members[sg_id][constants.IPv4] or
                               self.sg_members[sg_id][constants.IPv6])
             if not sg_has_members:
index 905d8ce81a9eff3a430ecab9690c69e30ded4939..d4bd4140450a307e0ca0d35b35a052f55d2d9593 100644 (file)
@@ -460,7 +460,7 @@ class ExtensionManager(object):
         # is made in a whole iteration
         while exts_to_process:
             processed_ext_count = len(processed_exts)
-            for ext_name, ext in exts_to_process.items():
+            for ext_name, ext in list(exts_to_process.items()):
                 if not hasattr(ext, 'get_extended_resources'):
                     del exts_to_process[ext_name]
                     continue
index aba3dee0bc074a4e10ab0496201f6b14ccda98f5..ba9f36fc12101a3fb54d1138bf6f154057d27227 100644 (file)
@@ -463,7 +463,7 @@ class LinuxBridgeManager(object):
                       bridge_name)
 
     def remove_empty_bridges(self):
-        for network_id in self.network_map.keys():
+        for network_id in list(self.network_map.keys()):
             bridge_name = self.get_bridge_name(network_id)
             if not self.get_tap_devices_count(bridge_name):
                 self.delete_vlan_bridge(bridge_name)
index 8e5a5c18cedb6ecd3272008aa4d5156b2d176c2d..1a279e948d9286e7e2beeca7ff5c5477a48ee4c2 100644 (file)
@@ -1182,7 +1182,8 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin,
                 break
         # If not, remove it
         else:
-            for remote_ip, ofport in self.tun_br_ofports[tunnel_type].items():
+            items = list(self.tun_br_ofports[tunnel_type].items())
+            for remote_ip, ofport in items:
                 if ofport == tun_ofport:
                     port_name = '%s-%s' % (tunnel_type,
                                            self.get_ip_in_hex(remote_ip))