summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-10 23:42:09 +0000
committerGerrit Code Review <review@openstack.org>2012-10-10 23:42:09 +0000
commit321868a2e063f30dbfbfdb77452cf79a7e391d16 (patch)
treeac9a4039561d520b4fcc58c69ec223cfc1956065 /nova/api
parent93d2a2cdbc86e541ee50e295a602639e7e572817 (diff)
parent7948b7a572e33e3fd541e27f2617d832eb43b504 (diff)
downloadnova-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.py29
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):