Hi Stackers,

In Diablo there is a bunch of validation that goes on in the network/api layer, 
for example when associating an IP to an instance there are checks for:


-          Is the address allocated

-          Is it allocated to this project

-          Is it already assigned to an instance, and if so dis-associate it 
first.

However looking at the same code in Essex I just see a simple call to the 
Manager:

    def associate_floating_ip(self, context, floating_address, fixed_address,
                                                 affect_auto_assigned=False):
        """Associates a floating ip with a fixed ip.

        ensures floating ip is allocated to the project in context
        """
        rpc.call(context,
                 FLAGS.network_topic,
                 {'method': 'associate_floating_ip',
                  'args': {'floating_address': floating_address,
                           'fixed_address': fixed_address,
                           'affect_auto_assigned': affect_auto_assigned}})


True there is some validation in the manager side  to prevent association if 
the address is already in use (which was also in Diablo), but by then it's too 
late to return a meaningful error to the user.

I can't see where the other checks have been moved to (they don't appear to be 
in the API extension or compute/api layer (which the request passes through).   
Can someone point me to where this sort of validation is handled now please ?

I agree that the api code looks a lot cleaner in Essex without all of that 
validation code in it ;-)  - but surely we haven't removed those checks 
altogether ?

Thanks
Phil

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to