diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-01-21 19:47:29 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-01-21 19:47:29 +0000 |
| commit | ae13abc51818792dcf0fc895eaad442dd41f54d2 (patch) | |
| tree | 64ba06e7406d4172c9a577936295e051f066d13b | |
| parent | dad0953ff5675831d84f9c28c7d5a93e42204233 (diff) | |
| parent | 8333a1533c201a7aead2b9e422dea13a0c9e7a97 (diff) | |
| download | nova-ae13abc51818792dcf0fc895eaad442dd41f54d2.tar.gz nova-ae13abc51818792dcf0fc895eaad442dd41f54d2.tar.xz nova-ae13abc51818792dcf0fc895eaad442dd41f54d2.zip | |
Merge "Fix nova-manage floating list (fixes bug 918804)"
| -rwxr-xr-x | bin/nova-manage | 10 | ||||
| -rw-r--r-- | nova/db/api.py | 5 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 8 |
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).\ |
