'Performs db and driver calls to disassociate floating IP.'

def _disassociate_floating_ip(self, context, address, interface, instance_uuid):

    interface = (CONF.public_interface or interface)
    @utils.synchronized(six.text_type(address))
    def do_disassociate():
        floating = objects.FloatingIP.disassociate(context, address)
        fixed = floating.fixed_ip
        if (not fixed):
            return
        if interface:
            self.l3driver.remove_floating_ip(address, fixed.address, interface, fixed.network)
        payload = dict(project_id=context.project_id, instance_id=instance_uuid, floating_ip=address)
        self.notifier.info(context, 'network.floating_ip.disassociate', payload)
    do_disassociate()
