diff options
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/ec2/ec2utils.py | 32 | ||||
| -rw-r--r-- | nova/api/openstack/common.py | 32 |
2 files changed, 11 insertions, 53 deletions
diff --git a/nova/api/ec2/ec2utils.py b/nova/api/ec2/ec2utils.py index d0e9e81d9..e0f336d4c 100644 --- a/nova/api/ec2/ec2utils.py +++ b/nova/api/ec2/ec2utils.py @@ -83,33 +83,15 @@ def get_ip_info_for_instance_from_nw_info(nw_info): return ip_info -def get_ip_info_for_instance_from_cache(instance): - if (not instance.get('info_cache') or - not instance['info_cache'].get('network_info')): - # NOTE(jkoelker) Raising ValueError so that we trigger the - # fallback lookup - raise ValueError - - cached_info = instance['info_cache']['network_info'] - nw_info = network_model.NetworkInfo.hydrate(cached_info) - - return get_ip_info_for_instance_from_nw_info(nw_info) - - def get_ip_info_for_instance(context, instance): - """Return a list of all fixed IPs for an instance""" + """Return a dictionary of IP information for an instance""" - try: - return get_ip_info_for_instance_from_cache(instance) - except (ValueError, KeyError, AttributeError): - # NOTE(jkoelker) If the json load (ValueError) or the - # sqlalchemy FK (KeyError, AttributeError) - # fail fall back to calling out to he - # network api - network_api = network.API() - - nw_info = network_api.get_instance_nw_info(context, instance) - return get_ip_info_for_instance_from_nw_info(nw_info) + cached_nwinfo = instance['info_cache']['network_info'] + # Make sure empty response is turned into [] + if not cached_nwinfo: + cached_nwinfo = [] + nw_info = network_model.NetworkInfo.hydrate(cached_nwinfo) + return get_ip_info_for_instance_from_nw_info(nw_info) def get_availability_zone_by_host(services, host): diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index 4305de950..575c58fac 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -304,18 +304,6 @@ def get_networks_for_instance_from_nw_info(nw_info): return networks -def get_networks_for_instance_from_cache(instance): - if (not instance.get('info_cache') or - not instance['info_cache'].get('network_info')): - # NOTE(jkoelker) Raising ValueError so that we trigger the - # fallback lookup - raise ValueError - - cached_info = instance['info_cache']['network_info'] - nw_info = network_model.NetworkInfo.hydrate(cached_info) - return get_networks_for_instance_from_nw_info(nw_info) - - def get_networks_for_instance(context, instance): """Returns a prepared nw_info list for passing into the view builders @@ -328,22 +316,10 @@ def get_networks_for_instance(context, instance): ...} """ - try: - return get_networks_for_instance_from_cache(instance) - except (ValueError, KeyError, AttributeError): - # NOTE(jkoelker) If the json load (ValueError) or the - # sqlalchemy FK (KeyError, AttributeError) - # fail fall back to calling out the the - # network api - pass - - network_api = network.API() - - try: - nw_info = network_api.get_instance_nw_info(context, instance) - except exception.InstanceNotFound: - nw_info = [] - + cached_nwinfo = instance['info_cache']['network_info'] + if not cached_nwinfo: + return {} + nw_info = network_model.NetworkInfo.hydrate(cached_nwinfo) return get_networks_for_instance_from_nw_info(nw_info) |
