summaryrefslogtreecommitdiff
path: root/cloudinit/url_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/url_helper.py')
-rw-r--r--cloudinit/url_helper.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/cloudinit/url_helper.py b/cloudinit/url_helper.py
index 0f4c36f7..48ddae45 100644
--- a/cloudinit/url_helper.py
+++ b/cloudinit/url_helper.py
@@ -101,7 +101,7 @@ def read_file_or_url(url, timeout=5, retries=10,
raise UrlError(cause=e, code=code, headers=None, url=url)
return FileResponse(file_path, contents=contents)
else:
- return readurl(url, timeout=timeout, retries=retries, headers=headers,
+ return readurl(url, timeout=timeout, retries=retries,
headers_cb=headers_cb, data=data,
sec_between=sec_between, ssl_details=ssl_details,
exception_cb=exception_cb)
@@ -310,7 +310,7 @@ def readurl(url, data=None, timeout=None, retries=0, sec_between=1,
def wait_for_url(urls, max_wait=None, timeout=None,
status_cb=None, headers_cb=None, sleep_time=1,
- exception_cb=None, sleep_time_cb=None):
+ exception_cb=None, sleep_time_cb=None, request_method=None):
"""
urls: a list of urls to try
max_wait: roughly the maximum time to wait before giving up
@@ -325,6 +325,8 @@ def wait_for_url(urls, max_wait=None, timeout=None,
'exception', the exception that occurred.
sleep_time_cb: call method with 2 arguments (response, loop_n) that
generates the next sleep time.
+ request_method: indicate the type of HTTP request, GET, PUT, or POST
+ returns: tuple of (url, response contents), on failure, (False, None)
the idea of this routine is to wait for the EC2 metadata service to
come up. On both Eucalyptus and EC2 we have seen the case where
@@ -381,8 +383,9 @@ def wait_for_url(urls, max_wait=None, timeout=None,
else:
headers = {}
- response = readurl(url, headers=headers, timeout=timeout,
- check_status=False)
+ response = readurl(
+ url, headers=headers, timeout=timeout,
+ check_status=False, request_method=request_method)
if not response.contents:
reason = "empty response [%s]" % (response.code)
url_exc = UrlError(ValueError(reason), code=response.code,
@@ -392,7 +395,7 @@ def wait_for_url(urls, max_wait=None, timeout=None,
url_exc = UrlError(ValueError(reason), code=response.code,
headers=response.headers, url=url)
else:
- return url
+ return url, response.contents
except UrlError as e:
reason = "request error [%s]" % e
url_exc = e
@@ -421,7 +424,7 @@ def wait_for_url(urls, max_wait=None, timeout=None,
sleep_time)
time.sleep(sleep_time)
- return False
+ return False, None
class OauthUrlHelper(object):