summaryrefslogtreecommitdiff
path: root/cloudinit/sources/helpers
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@gmail.com>2014-02-08 12:20:33 -0800
committerJoshua Harlow <harlowja@gmail.com>2014-02-08 12:20:33 -0800
commit098a74e6207f5d91f515fac63e970375d52795c0 (patch)
tree5ffe75bde7cab1d4ea2fea207c81a8870876f53a /cloudinit/sources/helpers
parent7fb9f75e1bd8b8ef36398c7adeb8d18a4fe9745e (diff)
downloadvyos-cloud-init-098a74e6207f5d91f515fac63e970375d52795c0.tar.gz
vyos-cloud-init-098a74e6207f5d91f515fac63e970375d52795c0.zip
Remove HEAD usage and other small adjustments
Diffstat (limited to 'cloudinit/sources/helpers')
-rw-r--r--cloudinit/sources/helpers/openstack.py41
1 files changed, 26 insertions, 15 deletions
diff --git a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py
index 9dbef677..09fb4ad8 100644
--- a/cloudinit/sources/helpers/openstack.py
+++ b/cloudinit/sources/helpers/openstack.py
@@ -21,7 +21,6 @@
import abc
import base64
import copy
-import functools
import os
from cloudinit import ec2_utils
@@ -395,26 +394,38 @@ class ConfigDriveReader(BaseReader):
class MetadataReader(BaseReader):
def __init__(self, base_url, ssl_details=None, timeout=5, retries=5):
super(MetadataReader, self).__init__(base_url)
- self._url_reader = functools.partial(url_helper.readurl,
- retries=retries,
- ssl_details=ssl_details,
- timeout=timeout)
- self._url_checker = functools.partial(url_helper.existsurl,
- ssl_details=ssl_details,
- timeout=timeout)
- self._ec2_reader = functools.partial(ec2_utils.get_instance_metadata,
- ssl_details=ssl_details,
- timeout=timeout,
- retries=retries)
+ self.ssl_details = ssl_details
+ self.timeout = float(timeout)
+ self.retries = int(retries)
def _path_read(self, path):
- return str(self._url_reader(path))
+ response = url_helper.readurl(path,
+ retries=self.retries,
+ ssl_details=self.ssl_details,
+ timeout=self.timeout)
+ return response.contents
def _path_exists(self, path):
- return self._url_checker(path)
+
+ def should_retry_cb(request, cause):
+ if cause.code >= 400:
+ return False
+ return True
+
+ try:
+ response = url_helper.readurl(path,
+ retries=self.retries,
+ ssl_details=self.ssl_details,
+ timeout=self.timeout,
+ exception_cb=should_retry_cb)
+ return response.ok()
+ except IOError:
+ return False
def _path_join(self, base, *add_ons):
return url_helper.combine_url(base, *add_ons)
def _read_ec2_metadata(self):
- return self._ec2_reader()
+ return ec2_utils.get_instance_metadata(ssl_details=self.ssl_details,
+ timeout=self.timeout,
+ retries=self.retries)