Merge "Rebind security groups only when they're updated"

This commit is contained in:
Jenkins 2013-11-27 19:32:14 +00:00 committed by Gerrit Code Review
commit e80fc23f12

View File

@ -70,15 +70,19 @@ class SecurityGroupServerRpcMixin(sg_db.SecurityGroupDbMixin):
It is because another changes for the port may require notification. It is because another changes for the port may require notification.
""" """
need_notify = False need_notify = False
if ext_sg.SECURITYGROUPS in port['port']: port_updates = port['port']
if (ext_sg.SECURITYGROUPS in port_updates and
not utils.compare_elements(
original_port.get(ext_sg.SECURITYGROUPS),
port_updates[ext_sg.SECURITYGROUPS])):
# delete the port binding and read it with the new rules # delete the port binding and read it with the new rules
port['port'][ext_sg.SECURITYGROUPS] = ( port_updates[ext_sg.SECURITYGROUPS] = (
self._get_security_groups_on_port(context, port)) self._get_security_groups_on_port(context, port))
self._delete_port_security_group_bindings(context, id) self._delete_port_security_group_bindings(context, id)
self._process_port_create_security_group( self._process_port_create_security_group(
context, context,
updated_port, updated_port,
port['port'][ext_sg.SECURITYGROUPS]) port_updates[ext_sg.SECURITYGROUPS])
need_notify = True need_notify = True
else: else:
updated_port[ext_sg.SECURITYGROUPS] = ( updated_port[ext_sg.SECURITYGROUPS] = (