summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-01-21 19:47:29 +0000
committerGerrit Code Review <review@openstack.org>2012-01-21 19:47:29 +0000
commitae13abc51818792dcf0fc895eaad442dd41f54d2 (patch)
tree64ba06e7406d4172c9a577936295e051f066d13b
parentdad0953ff5675831d84f9c28c7d5a93e42204233 (diff)
parent8333a1533c201a7aead2b9e422dea13a0c9e7a97 (diff)
downloadnova-ae13abc51818792dcf0fc895eaad442dd41f54d2.tar.gz
nova-ae13abc51818792dcf0fc895eaad442dd41f54d2.tar.xz
nova-ae13abc51818792dcf0fc895eaad442dd41f54d2.zip
Merge "Fix nova-manage floating list (fixes bug 918804)"
-rwxr-xr-xbin/nova-manage10
-rw-r--r--nova/db/api.py5
-rw-r--r--nova/db/sqlalchemy/api.py8
3 files changed, 19 insertions, 4 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 13522d770..902fbba96 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -722,12 +722,14 @@ class FloatingIpCommands(object):
else:
floating_ips = db.floating_ip_get_all_by_host(ctxt, host)
for floating_ip in floating_ips:
- instance = None
- if floating_ip['fixed_ip']:
- instance = floating_ip['fixed_ip']['instance']['uuid']
+ instance_id = None
+ if floating_ip['fixed_ip_id']:
+ fixed_ip = db.fixed_ip_get(ctxt, floating_ip['fixed_ip_id'])
+ instance = db.instance_get(ctxt, fixed_ip['instance_id'])
+ instance_id = instance.get('uuid', "none")
print "%s\t%s\t%s\t%s\t%s" % (floating_ip['project_id'],
floating_ip['address'],
- instance,
+ instance_id,
floating_ip['pool'],
floating_ip['interface'])
diff --git a/nova/db/api.py b/nova/db/api.py
index 9d29a0218..c9ffec7e4 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -290,6 +290,11 @@ def floating_ip_fixed_ip_associate(context, floating_address,
host)
+def floating_ip_get_all(context):
+ """Get all floating ips."""
+ return IMPL.floating_ip_get_all(context)
+
+
def floating_ip_get_all_by_host(context, host):
"""Get all floating ips by host."""
return IMPL.floating_ip_get_all_by_host(context, host)
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index b81de6d61..df6e5ddfe 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -624,6 +624,14 @@ def _floating_ip_get_all(context):
@require_admin_context
+def floating_ip_get_all(context):
+ floating_ip_refs = _floating_ip_get_all(context).all()
+ if not floating_ip_refs:
+ raise exception.NoFloatingIpsDefined()
+ return floating_ip_refs
+
+
+@require_admin_context
def floating_ip_get_all_by_host(context, host):
floating_ip_refs = _floating_ip_get_all(context).\
filter_by(host=host).\