From 6104e59732b140e73cee5f5c575fb31334b2ab0d Mon Sep 17 00:00:00 2001 From: Daniel Firth Date: Thu, 10 Oct 2013 14:31:47 +0100 Subject: Morph now validates the 'tarball-server' option as a url --- morphlib/app.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) -- cgit v1.2.1