mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
Merge branch '2017.7' into watchin_test
This commit is contained in:
commit
0a54584ddb
@ -106,6 +106,13 @@ A REST API for Salt
|
||||
expire_responses : True
|
||||
Whether to check for and kill HTTP responses that have exceeded the
|
||||
default timeout.
|
||||
|
||||
.. deprecated:: 2016.11.9, 2017.7.3, Oxygen
|
||||
|
||||
The "expire_responses" configuration setting, which corresponds
|
||||
to the ``timeout_monitor`` setting in CherryPy, is no longer
|
||||
supported in CherryPy versions >= 12.0.0.
|
||||
|
||||
max_request_body_size : ``1048576``
|
||||
Maximum size for the HTTP request body.
|
||||
collect_stats : False
|
||||
@ -506,6 +513,7 @@ import salt.ext.six as six
|
||||
# Import Salt libs
|
||||
import salt
|
||||
import salt.auth
|
||||
import salt.exceptions
|
||||
import salt.utils
|
||||
import salt.utils.event
|
||||
|
||||
@ -753,11 +761,18 @@ def hypermedia_handler(*args, **kwargs):
|
||||
except (salt.exceptions.SaltDaemonNotRunning,
|
||||
salt.exceptions.SaltReqTimeoutError) as exc:
|
||||
raise cherrypy.HTTPError(503, exc.strerror)
|
||||
except (cherrypy.TimeoutError, salt.exceptions.SaltClientTimeout):
|
||||
except salt.exceptions.SaltClientTimeout:
|
||||
raise cherrypy.HTTPError(504)
|
||||
except cherrypy.CherryPyException:
|
||||
raise
|
||||
except Exception as exc:
|
||||
# The TimeoutError exception class was removed in CherryPy in 12.0.0, but
|
||||
# Still check existence of TimeoutError and handle in CherryPy < 12.
|
||||
# The check was moved down from the SaltClientTimeout error line because
|
||||
# A one-line if statement throws a BaseException inheritance TypeError.
|
||||
if hasattr(cherrypy, 'TimeoutError') and isinstance(exc, cherrypy.TimeoutError):
|
||||
raise cherrypy.HTTPError(504)
|
||||
|
||||
import traceback
|
||||
|
||||
logger.debug("Error while processing request for: %s",
|
||||
@ -2731,8 +2746,6 @@ class API(object):
|
||||
'server.socket_port': self.apiopts.get('port', 8000),
|
||||
'server.thread_pool': self.apiopts.get('thread_pool', 100),
|
||||
'server.socket_queue_size': self.apiopts.get('queue_size', 30),
|
||||
'engine.timeout_monitor.on': self.apiopts.get(
|
||||
'expire_responses', True),
|
||||
'max_request_body_size': self.apiopts.get(
|
||||
'max_request_body_size', 1048576),
|
||||
'debug': self.apiopts.get('debug', False),
|
||||
@ -2750,6 +2763,14 @@ class API(object):
|
||||
},
|
||||
}
|
||||
|
||||
if salt.utils.version_cmp(cherrypy.__version__, '12.0.0') < 0:
|
||||
# CherryPy >= 12.0 no longer supports "timeout_monitor", only set
|
||||
# this config option when using an older version of CherryPy.
|
||||
# See Issue #44601 for more information.
|
||||
conf['global']['engine.timeout_monitor.on'] = self.apiopts.get(
|
||||
'expire_responses', True
|
||||
)
|
||||
|
||||
if cpstats and self.apiopts.get('collect_stats', False):
|
||||
conf['/']['tools.cpstats.on'] = True
|
||||
|
||||
|
@ -2016,7 +2016,11 @@ def check_state_result(running, recurse=False, highstate=None):
|
||||
|
||||
ret = True
|
||||
for state_id, state_result in six.iteritems(running):
|
||||
if not recurse and not isinstance(state_result, dict):
|
||||
expected_type = dict
|
||||
# The __extend__ state is a list
|
||||
if "__extend__" == state_id:
|
||||
expected_type = list
|
||||
if not recurse and not isinstance(state_result, expected_type):
|
||||
ret = False
|
||||
if ret and isinstance(state_result, dict):
|
||||
result = state_result.get('result', _empty)
|
||||
|
@ -5,6 +5,7 @@ from __future__ import absolute_import
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import textwrap
|
||||
|
||||
# Import Salt Testing libs
|
||||
from tests.support.case import ShellCase
|
||||
@ -56,6 +57,36 @@ class KeyTest(ShellCase, ShellCaseCommonTestsMixin):
|
||||
if USERA in user:
|
||||
self.run_call('user.delete {0} remove=True'.format(USERA))
|
||||
|
||||
def test_remove_key(self):
|
||||
'''
|
||||
test salt-key -d usage
|
||||
'''
|
||||
min_name = 'minibar'
|
||||
pki_dir = self.master_opts['pki_dir']
|
||||
key = os.path.join(pki_dir, 'minions', min_name)
|
||||
|
||||
with salt.utils.fopen(key, 'w') as fp:
|
||||
fp.write(textwrap.dedent('''\
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqIZDtcQtqUNs0wC7qQz
|
||||
JwFhXAVNT5C8M8zhI+pFtF/63KoN5k1WwAqP2j3LquTG68WpxcBwLtKfd7FVA/Kr
|
||||
OF3kXDWFnDi+HDchW2lJObgfzLckWNRFaF8SBvFM2dys3CGSgCV0S/qxnRAjrJQb
|
||||
B3uQwtZ64ncJAlkYpArv3GwsfRJ5UUQnYPDEJwGzMskZ0pHd60WwM1gMlfYmNX5O
|
||||
RBEjybyNpYDzpda6e6Ypsn6ePGLkP/tuwUf+q9wpbRE3ZwqERC2XRPux+HX2rGP+
|
||||
mkzpmuHkyi2wV33A9pDfMgRHdln2CLX0KgfRGixUQhW1o+Kmfv2rq4sGwpCgLbTh
|
||||
NwIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
'''))
|
||||
|
||||
check_key = self.run_key('-p {0}'.format(min_name))
|
||||
self.assertIn('Accepted Keys:', check_key)
|
||||
self.assertIn('minibar: -----BEGIN PUBLIC KEY-----', check_key)
|
||||
|
||||
remove_key = self.run_key('-d {0} -y'.format(min_name))
|
||||
|
||||
check_key = self.run_key('-p {0}'.format(min_name))
|
||||
self.assertEqual([], check_key)
|
||||
|
||||
def test_list_accepted_args(self):
|
||||
'''
|
||||
test salt-key -l for accepted arguments
|
||||
|
Loading…
Reference in New Issue
Block a user