summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Firth <dan.firth@codethink.co.uk>2013-10-10 14:31:47 +0100
committerDaniel Firth <dan.firth@codethink.co.uk>2013-10-10 14:31:47 +0100
commit6104e59732b140e73cee5f5c575fb31334b2ab0d (patch)
treeae6fe2d8b453a0ebfcec8a6729fcd74978ae9b16
parentdf64e4300d7b39c29ce75273196a7894c86a98a9 (diff)
downloadmorph-6104e59732b140e73cee5f5c575fb31334b2ab0d.tar.gz
Morph now validates the 'tarball-server' option as a url
-rw-r--r--morphlib/app.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/morphlib/app.py b/morphlib/app.py
index a0833d45..0c4f3455 100644
--- a/morphlib/app.py
+++ b/morphlib/app.py
@@ -20,10 +20,17 @@ import logging
import os
import sys
import time
+import urlparse
import warnings
import morphlib
+class InvalidUrlError(cliapp.AppException):
+
+ def __init__(self, parameter, url):
+ cliapp.AppException.__init__(
+ self, 'Value %s for argument %s is not a url' %
+ (url, parameter))
defaults = {
'trove-host': 'git.baserock.org',
@@ -200,6 +207,13 @@ class Morph(cliapp.Application):
tmpdir = os.path.join(tmpdir_base, 'morph_tmp')
self.settings['tempdir'] = tmpdir
+ if self.settings['tarball-server']:
+ url_split = urlparse.urlparse(self.settings['tarball-server'])
+ if not (url_split.netloc and
+ url_split.scheme in ('http', 'https', 'file')):
+ raise InvalidUrlError('tarball-server',
+ self.settings['tarball-server'])
+
if 'MORPH_DUMP_PROCESSED_CONFIG' in os.environ:
self.settings.dump_config(sys.stdout)
sys.exit(0)