=== modified file 'cloudinit/DataSourceEc2.py' --- cloudinit/DataSourceEc2.py 2010-02-04 20:41:16 +0000 +++ cloudinit/DataSourceEc2.py 2010-04-19 20:49:32 +0000 @@ -20,6 +20,7 @@ import socket import urllib2 import time +import sys import boto_utils class DataSourceEc2(DataSource.DataSource): @@ -100,20 +101,19 @@ except: return 'http://archive.ubuntu.com/ubuntu/' - def wait_for_metadata_service(self, sleeps = 10): + def wait_for_metadata_service(self, sleeps = 20): sleeptime = 1 for x in range(sleeps): - s = socket.socket() + url="http://169.254.169.254/%s/meta-data/instance-id" % self.api_ver try: - address = '169.254.169.254' - port = 80 - s.connect((address,port)) - s.close() - return True - except socket.error, e: - print "sleeping %s" % sleeptime - time.sleep(sleeptime) - #timeout = timeout * 2 + req = urllib2.Request(url) + resp = urllib2.urlopen(req) + if resp.read() != "": return True + except urllib2.URLError, e: + pass + + sys.stderr.write("waiting for md at %s (try %s/%s)\n" % (url,x,sleeps)) + time.sleep(sleeptime) return False def get_public_ssh_keys(self):