From 7bdf09a021fb5e8fef10932331b37ab80af7ebf1 Mon Sep 17 00:00:00 2001 From: asafc64 Date: Wed, 14 Feb 2018 17:46:11 +0200 Subject: [PATCH] Better error when url leads to bad results --- .../cm/customscript/domain/script_downloader.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/package/cloudshell/cm/customscript/domain/script_downloader.py b/package/cloudshell/cm/customscript/domain/script_downloader.py index cd591fe..0f1a4e3 100644 --- a/package/cloudshell/cm/customscript/domain/script_downloader.py +++ b/package/cloudshell/cm/customscript/domain/script_downloader.py @@ -45,8 +45,17 @@ def download(self, url, auth): file_txt += ''.join(chunk) self.cancel_sampler.throw_if_canceled() + self._validate_response(response, file_txt) + return ScriptFile(name=file_name, text=file_txt) + def _validate_response(self, response, content): + if response.status_code < 200 or response.status_code > 300: + raise Exception('Failed to download script file: '+str(response.status_code)+' '+response.reason) + + if content.lstrip('\n\r').lower().startswith(''): + raise Exception('Failed to download script file: url points to an html file') + def _get_filename(self, response): file_name = None for header_value, pattern in self.filename_patterns.iteritems():