[Openstack] [openstack][nova-network] Associate Floating-ip disassociates first by design ?

Stef T stef at ummon.com
Wed Nov 7 00:53:53 UTC 2012


Hello Everyone,
    So, before I start making code changes to nova-network, I have to
ask, why does the nova-network first disassociate the floating-ip before
associating it ? Surely, if the floating-ip is associated with another
instance it shouldn't jst be disassociated blindly ?

    I refer to line 477 of nova/network/manager.py (the
associate_floating_ip method) and specifically this;

        # make sure project owns this floating ip (allocated)
        self._floating_ip_owned_by_project(context, floating_ip)

        # disassociate any already associated
        orig_instance_uuid = None
        if floating_ip['fixed_ip_id']:
            # find previously associated instance
            fixed_ip = self.db.fixed_ip_get(context,
                                            floating_ip['fixed_ip_id'])
            orig_instance_uuid = fixed_ip['instance_uuid']

            self.disassociate_floating_ip(context, floating_address)

    Now, I can see two solutions, in the case that this is 'correct'.
One is to create a method called 're-associate'. The other idea is to
only allow disassocation to happen if there is a 'force' flag (or some
such).

    In the case of more than one operator, it's REALLY easy to step on
each others toes. This is even before I get onto the whole notion of
malicious intent.

    Am I reading this wrong ? I am open to being an idiot :)

    Regards
    S.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20121106/8b168255/attachment.html>


More information about the Openstack mailing list