It looks like metadata handler fetches instance IP infomration via
ec2utils.get_ip_info_for_instance():

def get_ip_info_for_instance(context, instance):
    """Return a list of all fixed IPs 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)


Doing a bit of tracing,  it looks like it successfully gets an entry in the 
instance info cache, but it is out of date and does not contain any information 
about associated floating_ips.    Modifying the above function to skip the 
cache attempt and go directly to the network driver returns the correct IP 
info, at the cost of a more expensive query.

** Also affects: nova (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/933818

Title:
  public-ipv4 metadata url not working

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/933818/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to