diff options
| author | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-09 07:53:57 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@yahoo.com> | 2010-09-09 07:53:57 -0700 |
| commit | 4dcc4bc4b459b454431ca60bec0dead2146f52af (patch) | |
| tree | 13aaac2ea05d7978598732997917fcb5e23f1689 | |
| parent | 8f3b0a41596c32926c62269624302cd30f943f46 (diff) | |
| download | nova-4dcc4bc4b459b454431ca60bec0dead2146f52af.tar.gz nova-4dcc4bc4b459b454431ca60bec0dead2146f52af.tar.xz nova-4dcc4bc4b459b454431ca60bec0dead2146f52af.zip | |
list command for floating ips
| -rwxr-xr-x | bin/nova-manage | 9 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 16 |
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) |
