diff options
| author | John Tran <jtran@attinteractive.com> | 2011-08-02 11:28:43 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-08-02 11:28:43 +0000 |
| commit | 83066aa64ccba34e23063eee661375b11de2161f (patch) | |
| tree | b11d32fbec90d2eb644487ba16578adedcc4551c | |
| parent | f05628dff7aebd15e3f3530295ece3372bf2dbec (diff) | |
| parent | 094b9845500e28d315f70aa1fbc37b75c143d0c0 (diff) | |
code was checking for key in sqlalchemy instance and will ignore if value is None, but wasn't working if floating_ip was a non-sqlalchemy dict obj. Therefore, updated the error checking to work in both caes.
| -rw-r--r-- | nova/api/openstack/contrib/floating_ips.py | 4 | ||||
| -rw-r--r-- | nova/tests/api/openstack/contrib/test_floating_ips.py | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/nova/api/openstack/contrib/floating_ips.py b/nova/api/openstack/contrib/floating_ips.py index b4a211857..3d8049324 100644 --- a/nova/api/openstack/contrib/floating_ips.py +++ b/nova/api/openstack/contrib/floating_ips.py @@ -27,9 +27,9 @@ from nova.api.openstack import extensions def _translate_floating_ip_view(floating_ip): result = {'id': floating_ip['id'], 'ip': floating_ip['address']} - if 'fixed_ip' in floating_ip: + try: result['fixed_ip'] = floating_ip['fixed_ip']['address'] - else: + except (TypeError, KeyError): result['fixed_ip'] = None if 'instance' in floating_ip: result['instance_id'] = floating_ip['instance']['id'] diff --git a/nova/tests/api/openstack/contrib/test_floating_ips.py b/nova/tests/api/openstack/contrib/test_floating_ips.py index 50ad7de08..ab7ae2e54 100644 --- a/nova/tests/api/openstack/contrib/test_floating_ips.py +++ b/nova/tests/api/openstack/contrib/test_floating_ips.py @@ -106,6 +106,11 @@ class FloatingIpTest(test.TestCase): self.assertEqual(view['floating_ip']['fixed_ip'], None) self.assertEqual(view['floating_ip']['instance_id'], None) + def test_translate_floating_ip_view_dict(self): + floating_ip = {'id': 0, 'address': '10.0.0.10', 'fixed_ip': None} + view = _translate_floating_ip_view(floating_ip) + self.assertTrue('floating_ip' in view) + def test_floating_ips_list(self): req = webob.Request.blank('/v1.1/os-floating-ips') res = req.get_response(fakes.wsgi_app()) |
