diff options
Diffstat (limited to 'cloudinit/user_data.py')
-rw-r--r-- | cloudinit/user_data.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/cloudinit/user_data.py b/cloudinit/user_data.py index 663f7cda..bf34943d 100644 --- a/cloudinit/user_data.py +++ b/cloudinit/user_data.py @@ -121,19 +121,25 @@ class UserDataProcessor(object): continue include_once_fn = None + content = None if include_once_on: include_once_fn = self._get_include_once_filename(include_url) if include_once_on and os.path.isfile(include_once_fn): content = util.load_file(include_once_fn) else: - (content, st) = url_helper.readurl(include_url) - if include_once_on and url_helper.ok_http_code(st): - util.write_file(include_once_fn, content, mode=0600) - if not url_helper.ok_http_code(st): - content = '' - - new_msg = convert_string(content) - self._process_msg(new_msg, append_msg) + resp = url_helper.readurl(include_url) + if include_once_on and resp.ok(): + util.write_file(include_once_fn, str(resp), mode=0600) + if resp.ok(): + content = str(resp) + else: + LOG.warn(("Fetching from %s resulted in" + " a invalid http code of %s"), + include_url, resp.code) + + if content is not None: + new_msg = convert_string(content) + self._process_msg(new_msg, append_msg) def _explode_archive(self, archive, append_msg): entries = util.load_yaml(archive, default=[], allowed=[list, set]) |