diff options
Diffstat (limited to 'nova/db')
| -rw-r--r-- | nova/db/api.py | 5 | ||||
| -rw-r--r-- | nova/db/sqlalchemy/api.py | 13 |
2 files changed, 18 insertions, 0 deletions
diff --git a/nova/db/api.py b/nova/db/api.py index 4d91c5db9..82b7e895b 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -641,6 +641,11 @@ def instance_get_floating_address(context, instance_id): return IMPL.instance_get_floating_address(context, instance_id) +def instance_floating_address_get_all(context, instance_uuid): + """Get all floating ip addresses of an instance""" + return IMPL.instance_floating_address_get_all(context, instance_uuid) + + def instance_get_all_hung_in_rebooting(context, reboot_window): """Get all instances stuck in a rebooting state.""" return IMPL.instance_get_all_hung_in_rebooting(context, reboot_window) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 0946d0b19..a70488bd8 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -1738,6 +1738,19 @@ def instance_get_floating_address(context, instance_id): return floating_ips[0]['address'] +@require_context +def instance_floating_address_get_all(context, instance_uuid): + fixed_ips = fixed_ip_get_by_instance(context, instance_uuid) + + floating_ips = [] + for fixed_ip in fixed_ips: + _floating_ips = floating_ip_get_by_fixed_ip_id(context, + fixed_ip['id']) + floating_ips += _floating_ips + + return floating_ips + + @require_admin_context def instance_get_all_hung_in_rebooting(context, reboot_window, session=None): reboot_window = (timeutils.utcnow() - |
