mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge branch '2015.8' into '2106.3'
Conflicts: - salt/loader.py - salt/modules/s3.py - salt/utils/s3.py - tests/unit/modules/s3_test.py
This commit is contained in:
commit
61e37d5956
9 changed files with 90 additions and 94 deletions
|
@ -29,7 +29,6 @@ import salt.utils.templates
|
|||
import salt.utils.url
|
||||
import salt.utils.gzip_util
|
||||
import salt.utils.http
|
||||
import salt.utils.s3
|
||||
from salt.utils.locales import sdecode
|
||||
from salt.utils.openstack.swift import SaltSwift
|
||||
|
||||
|
@ -63,6 +62,7 @@ class Client(object):
|
|||
'''
|
||||
def __init__(self, opts):
|
||||
self.opts = opts
|
||||
self.utils = salt.loader.utils(self.opts)
|
||||
self.serial = salt.payload.Serial(self.opts)
|
||||
|
||||
# Add __setstate__ and __getstate__ so that the object may be
|
||||
|
@ -596,17 +596,17 @@ class Client(object):
|
|||
return self.opts['pillar']['s3'][key]
|
||||
except (KeyError, TypeError):
|
||||
return default
|
||||
salt.utils.s3.query(method='GET',
|
||||
bucket=url_data.netloc,
|
||||
path=url_data.path[1:],
|
||||
return_bin=False,
|
||||
local_file=dest,
|
||||
action=None,
|
||||
key=s3_opt('key'),
|
||||
keyid=s3_opt('keyid'),
|
||||
service_url=s3_opt('service_url'),
|
||||
verify_ssl=s3_opt('verify_ssl', True),
|
||||
location=s3_opt('location'))
|
||||
self.utils['s3.query'](method='GET',
|
||||
bucket=url_data.netloc,
|
||||
path=url_data.path[1:],
|
||||
return_bin=False,
|
||||
local_file=dest,
|
||||
action=None,
|
||||
key=s3_opt('key'),
|
||||
keyid=s3_opt('keyid'),
|
||||
service_url=s3_opt('service_url'),
|
||||
verify_ssl=s3_opt('verify_ssl', True),
|
||||
location=s3_opt('location'))
|
||||
return dest
|
||||
except Exception as exc:
|
||||
raise MinionError(
|
||||
|
|
|
@ -69,7 +69,6 @@ import logging
|
|||
import salt.fileserver as fs
|
||||
import salt.modules
|
||||
import salt.utils
|
||||
import salt.utils.s3 as s3
|
||||
|
||||
# Import 3rd-party libs
|
||||
# pylint: disable=import-error,no-name-in-module,redefined-builtin
|
||||
|
@ -400,7 +399,7 @@ def _refresh_buckets_cache_file(cache_file):
|
|||
|
||||
# helper s3 query function
|
||||
def __get_s3_meta(bucket, key=key, keyid=keyid):
|
||||
return s3.query(
|
||||
return __utils__['s3.query'](
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=keyid,
|
||||
|
@ -634,7 +633,7 @@ def _get_file_from_s3(metadata, saltenv, bucket_name, path, cached_file_path):
|
|||
log.debug('cached file size equal to metadata size and '
|
||||
'cached file mtime later than metadata last '
|
||||
'modification time.')
|
||||
ret = s3.query(
|
||||
ret = __utils__['s3.query'](
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=keyid,
|
||||
|
@ -665,7 +664,7 @@ def _get_file_from_s3(metadata, saltenv, bucket_name, path, cached_file_path):
|
|||
return
|
||||
|
||||
# ... or get the file from S3
|
||||
s3.query(
|
||||
__utils__['s3.query'](
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=keyid,
|
||||
|
|
|
@ -334,12 +334,14 @@ def pillars(opts, functions, context=None):
|
|||
'''
|
||||
Returns the pillars modules
|
||||
'''
|
||||
ret = LazyLoader(
|
||||
_module_dirs(opts, 'pillar', 'pillar'),
|
||||
opts,
|
||||
tag='pillar',
|
||||
pack={'__salt__': functions, '__context__': context},
|
||||
)
|
||||
if context is None:
|
||||
context = {}
|
||||
ret = LazyLoader(_module_dirs(opts, 'pillar', 'pillar'),
|
||||
opts,
|
||||
tag='pillar',
|
||||
pack={'__salt__': functions,
|
||||
'__context__': context,
|
||||
'__utils__': utils(opts)})
|
||||
ret.pack['__ext_pillar__'] = ret
|
||||
return FilterDictWrapper(ret, '.ext_pillar')
|
||||
|
||||
|
@ -423,12 +425,11 @@ def fileserver(opts, backends):
|
|||
'''
|
||||
Returns the file server modules
|
||||
'''
|
||||
return LazyLoader(
|
||||
_module_dirs(opts, 'fileserver', 'fileserver'),
|
||||
opts,
|
||||
tag='fileserver',
|
||||
whitelist=backends,
|
||||
)
|
||||
return LazyLoader(_module_dirs(opts, 'fileserver', 'fileserver'),
|
||||
opts,
|
||||
tag='fileserver',
|
||||
whitelist=backends,
|
||||
pack={'__utils__': utils(opts)})
|
||||
|
||||
|
||||
def roster(opts, whitelist=None):
|
||||
|
|
|
@ -27,7 +27,7 @@ __proxyenabled__ = ['fx2']
|
|||
|
||||
try:
|
||||
run_all = __salt__['cmd.run_all']
|
||||
except NameError:
|
||||
except (NameError, KeyError):
|
||||
import salt.modules.cmdmod
|
||||
__salt__ = {
|
||||
'cmd.run_all': salt.modules.cmdmod._run_all_quiet
|
||||
|
|
|
@ -56,10 +56,6 @@ from __future__ import absolute_import
|
|||
# Import Python libs
|
||||
import logging
|
||||
|
||||
# Import Salt libs
|
||||
import salt.utils
|
||||
import salt.utils.s3
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -94,17 +90,17 @@ def delete(bucket, path=None, action=None, key=None, keyid=None,
|
|||
role_arn,
|
||||
)
|
||||
|
||||
return salt.utils.s3.query(method='DELETE',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
return __utils__['s3.query'](method='DELETE',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
|
||||
|
||||
def get(bucket=None, path=None, return_bin=False, action=None,
|
||||
|
@ -171,19 +167,19 @@ def get(bucket=None, path=None, return_bin=False, action=None,
|
|||
role_arn,
|
||||
)
|
||||
|
||||
return salt.utils.s3.query(method='GET',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
return_bin=return_bin,
|
||||
local_file=local_file,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
return __utils__['s3.query'](method='GET',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
return_bin=return_bin,
|
||||
local_file=local_file,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
|
||||
|
||||
def head(bucket, path=None, key=None, keyid=None, service_url=None,
|
||||
|
@ -208,17 +204,17 @@ def head(bucket, path=None, key=None, keyid=None, service_url=None,
|
|||
role_arn,
|
||||
)
|
||||
|
||||
return salt.utils.s3.query(method='HEAD',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
full_headers=True,
|
||||
role_arn=role_arn)
|
||||
return __utils__['s3.query'](method='HEAD',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
full_headers=True,
|
||||
role_arn=role_arn)
|
||||
|
||||
|
||||
def put(bucket, path=None, return_bin=False, action=None, local_file=None,
|
||||
|
@ -249,19 +245,19 @@ def put(bucket, path=None, return_bin=False, action=None, local_file=None,
|
|||
role_arn,
|
||||
)
|
||||
|
||||
return salt.utils.s3.query(method='PUT',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
return_bin=return_bin,
|
||||
local_file=local_file,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
return __utils__['s3.query'](method='PUT',
|
||||
bucket=bucket,
|
||||
path=path,
|
||||
return_bin=return_bin,
|
||||
local_file=local_file,
|
||||
action=action,
|
||||
key=key,
|
||||
keyid=keyid,
|
||||
kms_keyid=kms_keyid,
|
||||
service_url=service_url,
|
||||
verify_ssl=verify_ssl,
|
||||
location=location,
|
||||
role_arn=role_arn)
|
||||
|
||||
|
||||
def _get_key(key, keyid, service_url, verify_ssl, kms_keyid, location, role_arn):
|
||||
|
|
|
@ -98,7 +98,6 @@ from salt.ext.six.moves.urllib.parse import quote as _quote
|
|||
# Import salt libs
|
||||
from salt.pillar import Pillar
|
||||
import salt.utils
|
||||
import salt.utils.s3 as s3
|
||||
|
||||
# Set up logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -257,7 +256,7 @@ def _refresh_buckets_cache_file(creds, cache_file, multiple_env, environment, pr
|
|||
|
||||
# helper s3 query function
|
||||
def __get_s3_meta():
|
||||
return s3.query(
|
||||
return __utils__['s3.query'](
|
||||
key=creds.key,
|
||||
keyid=creds.keyid,
|
||||
kms_keyid=creds.kms_keyid,
|
||||
|
@ -399,7 +398,7 @@ def _get_file_from_s3(creds, metadata, saltenv, bucket, path,
|
|||
return
|
||||
|
||||
# ... or get the file from S3
|
||||
s3.query(
|
||||
__utils__['s3.query'](
|
||||
key=creds.key,
|
||||
keyid=creds.keyid,
|
||||
kms_keyid=creds.kms_keyid,
|
||||
|
|
|
@ -568,7 +568,7 @@ def get_region_from_metadata():
|
|||
return None
|
||||
|
||||
|
||||
def get_location(opts, provider=None):
|
||||
def get_location(opts=None, provider=None):
|
||||
'''
|
||||
Return the region to use, in this order:
|
||||
opts['location']
|
||||
|
@ -576,6 +576,8 @@ def get_location(opts, provider=None):
|
|||
get_region_from_metadata()
|
||||
DEFAULT_LOCATION
|
||||
'''
|
||||
if opts is None:
|
||||
opts = __opts__
|
||||
ret = opts.get('location', provider.get('location'))
|
||||
if ret is None:
|
||||
ret = get_region_from_metadata()
|
||||
|
|
|
@ -96,6 +96,9 @@ def query(key, keyid, method='GET', params=None, headers=None,
|
|||
headers['x-amz-server-side-encryption'] = 'aws:kms'
|
||||
headers['x-amz-server-side-encryption-aws-kms-key-id'] = kms_keyid
|
||||
|
||||
if not location:
|
||||
location = __utils__['aws.get_location']()
|
||||
|
||||
data = ''
|
||||
payload_hash = None
|
||||
if method == 'PUT':
|
||||
|
|
|
@ -19,10 +19,10 @@ from salttesting.helpers import ensure_in_syspath
|
|||
ensure_in_syspath('../../')
|
||||
|
||||
# Import Salt Libs
|
||||
import salt.utils.s3
|
||||
from salt.modules import s3
|
||||
|
||||
s3.__salt__ = {}
|
||||
s3.__utils__ = {'s3.query': MagicMock(return_value='A')}
|
||||
|
||||
|
||||
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
||||
|
@ -47,8 +47,7 @@ class S3TestCase(TestCase):
|
|||
return_value=('key', 'keyid', 'service_url',
|
||||
'verify_ssl', 'kms_keyid', 'location',
|
||||
'role_arn')):
|
||||
with patch.object(salt.utils.s3, 'query', return_value='A'):
|
||||
self.assertEqual(s3.delete('bucket'), 'A')
|
||||
self.assertEqual(s3.delete('bucket'), 'A')
|
||||
|
||||
def test_get(self):
|
||||
'''
|
||||
|
@ -59,8 +58,7 @@ class S3TestCase(TestCase):
|
|||
return_value=('key', 'keyid', 'service_url',
|
||||
'verify_ssl', 'kms_keyid', 'location',
|
||||
'role_arn')):
|
||||
with patch.object(salt.utils.s3, 'query', return_value='A'):
|
||||
self.assertEqual(s3.get(), 'A')
|
||||
self.assertEqual(s3.get(), 'A')
|
||||
|
||||
def test_head(self):
|
||||
'''
|
||||
|
@ -70,8 +68,7 @@ class S3TestCase(TestCase):
|
|||
return_value=('key', 'keyid', 'service_url',
|
||||
'verify_ssl', 'kms_keyid', 'location',
|
||||
'role_arn')):
|
||||
with patch.object(salt.utils.s3, 'query', return_value='A'):
|
||||
self.assertEqual(s3.head('bucket'), 'A')
|
||||
self.assertEqual(s3.head('bucket'), 'A')
|
||||
|
||||
def test_put(self):
|
||||
'''
|
||||
|
@ -81,8 +78,7 @@ class S3TestCase(TestCase):
|
|||
return_value=('key', 'keyid', 'service_url',
|
||||
'verify_ssl', 'kms_keyid', 'location',
|
||||
'role_arn')):
|
||||
with patch.object(salt.utils.s3, 'query', return_value='A'):
|
||||
self.assertEqual(s3.put('bucket'), 'A')
|
||||
self.assertEqual(s3.put('bucket'), 'A')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Reference in a new issue