diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-10 23:42:09 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-10 23:42:09 +0000 |
| commit | 321868a2e063f30dbfbfdb77452cf79a7e391d16 (patch) | |
| tree | ac9a4039561d520b4fcc58c69ec223cfc1956065 /nova/api | |
| parent | 93d2a2cdbc86e541ee50e295a602639e7e572817 (diff) | |
| parent | 7948b7a572e33e3fd541e27f2617d832eb43b504 (diff) | |
| download | nova-321868a2e063f30dbfbfdb77452cf79a7e391d16.tar.gz nova-321868a2e063f30dbfbfdb77452cf79a7e391d16.tar.xz nova-321868a2e063f30dbfbfdb77452cf79a7e391d16.zip | |
Merge "Proxy floating IP calls to quantum"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/floating_ips.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/nova/api/openstack/compute/contrib/floating_ips.py b/nova/api/openstack/compute/contrib/floating_ips.py index 67d52b9ca..b97f200da 100644 --- a/nova/api/openstack/compute/contrib/floating_ips.py +++ b/nova/api/openstack/compute/contrib/floating_ips.py @@ -118,18 +118,23 @@ class FloatingIPController(object): return self.compute_api.get(context, instance_id) def _set_metadata(self, context, floating_ip): - fixed_ip_id = floating_ip['fixed_ip_id'] - floating_ip['fixed_ip'] = self._get_fixed_ip(context, - fixed_ip_id) - instance_uuid = None - if floating_ip['fixed_ip']: - instance_uuid = floating_ip['fixed_ip']['instance_uuid'] - - if instance_uuid: - floating_ip['instance'] = self._get_instance(context, - instance_uuid) - else: - floating_ip['instance'] = None + # When Quantum v2 API is used, 'fixed_ip' and 'instance' are + # already set. In this case we don't need to update the fields. + + if 'fixed_ip' not in floating_ip: + fixed_ip_id = floating_ip['fixed_ip_id'] + floating_ip['fixed_ip'] = self._get_fixed_ip(context, + fixed_ip_id) + if 'instance' not in floating_ip: + instance_uuid = None + if floating_ip['fixed_ip']: + instance_uuid = floating_ip['fixed_ip']['instance_uuid'] + + if instance_uuid: + floating_ip['instance'] = self._get_instance(context, + instance_uuid) + else: + floating_ip['instance'] = None @wsgi.serializers(xml=FloatingIPTemplate) def show(self, req, id): |
