Comment 2 for bug 566792

Revision history for this message
Scott Moser (smoser) wrote : Re: UEC guests sometimes fail on consuming user data

ugh.

I'm somewhat baffled on how this can happen.

WARNING:INSTANCE i-39AC0623: File "/usr/lib/python2.6/dist-packages/cloudinit/DataSourceEc2.py", line 64, in get_instance_id
WARNING:INSTANCE i-39AC0623: return(self.metadata['instance-id'])

That indicates that somehow, the 'metadata' member of self (DataSourceEc2.py) does not have an 'instance-id' field.

That field gets populated in cloudinit/DataSourceEc2.py's get_data, which does something like:

        try:
            if not self.wait_for_metadata_service():
                return False
            self.userdata_raw = boto_utils.get_instance_userdata(self.api_ver)
            self.metadata = boto_utils.get_instance_metadata(self.api_ver)
            return True

self.wait_for_metadata_service is an attempt to make sure the metadata service is up before calling boto's get_instance_userdata and get_instance_metadata methods to populate the members.

both of get_instance_userdata and get_instance_metadata also take precautions to wait on the metadata service. So, it appears that the metadata service was correctly parsed / crawled by boto, and that it did not have an 'instance-id' field .