summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/nova-manage9
-rw-r--r--nova/db/sqlalchemy/api.py16
2 files changed, 16 insertions, 9 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 408a2d9c8..56191252a 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -245,9 +245,12 @@ class FloatingIpCommands(object):
else:
floating_ips = db.floating_ip_get_all_by_host(None, host)
for floating_ip in floating_ips:
- print "%s\t%s\ti-%s" % (floating_ip['host'],
- floating_ip['address'],
- floating_ip['instance_id'])
+ instance = None
+ if floating_ip['fixed_ip']:
+ instance = floating_ip['fixed_ip']['instance']['str_id']
+ print "%s\t%s\t%s" % (floating_ip['host'],
+ floating_ip['address'],
+ instance)
CATEGORIES = [
('user', UserCommands),
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 4330c86a9..eb39166ac 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -144,16 +144,20 @@ def floating_ip_disassociate(_context, address):
def floating_ip_get_all(_context):
- return models.FloatingIp.all()
+ session = get_session()
+ return session.query(models.FloatingIp
+ ).options(joinedload_all('fixed_ip.instance')
+ ).filter_by(deleted=False
+ ).all()
def floating_ip_get_all_by_host(_context, host):
session = get_session()
- with session.begin():
- return session.query(models.FloatingIp
- ).filter_by(host=host
- ).filter_by(deleted=False
- ).all()
+ return session.query(models.FloatingIp
+ ).options(joinedload_all('fixed_ip.instance')
+ ).filter_by(host=host
+ ).filter_by(deleted=False
+ ).all()
def floating_ip_get_by_address(_context, address):
return models.FloatingIp.find_by_str(address)