mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
collect additional url utils
This commit is contained in:
parent
b23791716d
commit
3a9c5afea1
7 changed files with 34 additions and 27 deletions
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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):]
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue