collect additional url utils

This commit is contained in:
Justin Findlay 2015-05-02 11:19:34 -06:00
parent b23791716d
commit 3a9c5afea1
7 changed files with 34 additions and 27 deletions

View file

@ -97,6 +97,7 @@ _INVALID_REPO = (
# Import salt libs
import salt.utils
import salt.utils.url
import salt.fileserver
from salt.exceptions import FileserverConfigError
from salt.utils.event import tagify
@ -767,7 +768,7 @@ def init():
continue
try:
repo_conf['mountpoint'] = salt.utils.strip_proto(
repo_conf['mountpoint'] = salt.utils.url.strip_proto(
repo_conf['mountpoint']
)
except TypeError:

View file

@ -60,6 +60,7 @@ except ImportError:
# Import salt libs
import salt.utils
import salt.utils.url
import salt.fileserver
from salt.utils.event import tagify
@ -249,7 +250,7 @@ def init():
_failhard()
try:
repo_conf['mountpoint'] = salt.utils.strip_proto(
repo_conf['mountpoint'] = salt.utils.url.strip_proto(
repo_conf['mountpoint']
)
except TypeError:

View file

@ -32,6 +32,7 @@ import logging
# Import salt libs
import salt.fileserver
import salt.utils
import salt.utils.url
log = logging.getLogger(__name__)
@ -74,7 +75,7 @@ def find_file(path, tgt_env='base', **kwargs): # pylint: disable=W0613
'for security reasons (path requested: {0})'.format(path))
return fnd
mountpoint = salt.utils.strip_proto(__opts__['minionfs_mountpoint'])
mountpoint = salt.utils.url.strip_proto(__opts__['minionfs_mountpoint'])
# Remove the mountpoint to get the "true" path
path = path[len(mountpoint):].lstrip(os.path.sep)
try:
@ -231,7 +232,7 @@ def file_list(load):
if load['saltenv'] not in envs():
return []
mountpoint = salt.utils.strip_proto(__opts__['minionfs_mountpoint'])
mountpoint = salt.utils.url.strip_proto(__opts__['minionfs_mountpoint'])
prefix = load.get('prefix', '').strip('/')
if mountpoint and prefix.startswith(mountpoint + os.path.sep):
prefix = prefix[len(mountpoint + os.path.sep):]
@ -314,7 +315,7 @@ def dir_list(load):
if load['saltenv'] not in envs():
return []
mountpoint = salt.utils.strip_proto(__opts__['minionfs_mountpoint'])
mountpoint = salt.utils.url.strip_proto(__opts__['minionfs_mountpoint'])
prefix = load.get('prefix', '').strip('/')
if mountpoint and prefix.startswith(mountpoint + os.path.sep):
prefix = prefix[len(mountpoint + os.path.sep):]

View file

@ -55,6 +55,7 @@ except ImportError:
# Import salt libs
import salt.utils
import salt.utils.url
import salt.fileserver
from salt.utils.event import tagify
@ -172,7 +173,7 @@ def init():
_failhard()
try:
repo_conf['mountpoint'] = salt.utils.strip_proto(
repo_conf['mountpoint'] = salt.utils.url.strip_proto(
repo_conf['mountpoint']
)
except TypeError:

View file

@ -483,7 +483,7 @@ def install(pkgs=None, # pylint: disable=R0912,R0913,R0914
find_links = [l.strip() for l in find_links.split(',')]
for link in find_links:
if not (salt.utils.valid_url(link, VALID_PROTOS) or os.path.exists(link)):
if not (salt.utils.url.validate(link, VALID_PROTOS) or os.path.exists(link)):
raise CommandExecutionError(
'{0!r} must be a valid URL or path'.format(link)
)
@ -496,14 +496,14 @@ def install(pkgs=None, # pylint: disable=R0912,R0913,R0914
)
if index_url:
if not salt.utils.valid_url(index_url, VALID_PROTOS):
if not salt.utils.url.validate(index_url, VALID_PROTOS):
raise CommandExecutionError(
'{0!r} must be a valid URL'.format(index_url)
)
cmd.append('--index-url={0!r}'.format(index_url))
if extra_index_url:
if not salt.utils.valid_url(extra_index_url, VALID_PROTOS):
if not salt.utils.url.validate(extra_index_url, VALID_PROTOS):
raise CommandExecutionError(
'{0!r} must be a valid URL'.format(extra_index_url)
)

View file

@ -1602,23 +1602,6 @@ def option(value, default='', opts=None, pillar=None):
return default
def valid_url(url, protos):
'''
Return true if the passed URL is in the list of accepted protos
'''
if urlparse(url).scheme in protos:
return True
return False
def strip_proto(uri):
'''
Return a copy of the string with the protocol designation stripped, if one
was present.
'''
return re.sub('^[^:/]+://', '', uri)
def parse_docstring(docstring):
'''
Parse a docstring into its parts.

View file

@ -1,8 +1,11 @@
# -*- coding: utf-8 -*-
'''
salt:// URL utils
URL utils
'''
# Import python libs
import re
# Import salt libs
from salt.ext.six.moves.urllib.parse import urlparse, urlunparse # pylint: disable=import-error,no-name-in-module
import salt.utils
@ -68,3 +71,20 @@ def split_env(url):
path, senv = parse(url)
return create(path), senv
def validate(url, protos):
'''
Return true if the passed URL scheme is in the list of accepted protos
'''
if urlparse(url).scheme in protos:
return True
return False
def strip_proto(url):
'''
Return a copy of the string with the protocol designation stripped, if one
was present.
'''
return re.sub('^[^:/]+://', '', url)