mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
3273bbdab7
Conflicts: - doc/ref/configuration/master.rst - doc/ref/modules/all/index.rst - doc/topics/grains/index.rst - doc/topics/releases/2016.3.4.rst - doc/topics/spm/spm_formula.rst - doc/topics/tutorials/cron.rst - doc/topics/tutorials/index.rst - doc/topics/tutorials/stormpath.rst - salt/engines/slack.py - salt/log/handlers/fluent_mod.py - salt/modules/cyg.py - salt/modules/junos.py - salt/modules/namecheap_dns.py - salt/modules/namecheap_domains.py - salt/modules/namecheap_ns.py - salt/modules/namecheap_ssl.py - salt/modules/namecheap_users.py - salt/modules/reg.py - salt/modules/tomcat.py - salt/modules/vault.py - salt/modules/win_file.py - salt/modules/zpool.py - salt/output/highstate.py - salt/renderers/pass.py - salt/runners/cache.py - salt/states/boto_apigateway.py - salt/states/boto_iam.py - salt/states/boto_route53.py - salt/states/msteams.py - salt/states/reg.py - salt/states/win_iis.py - tests/integration/modules/test_cmdmod.py - tests/integration/states/test_user.py - tests/support/helpers.py - tests/unit/cloud/clouds/test_openstack.py - tests/unit/fileserver/test_gitfs.py - tests/unit/modules/test_junos.py - tests/unit/pillar/test_git.py - tests/unit/states/test_win_path.py - tests/unit/test_pillar.py - tests/unit/utils/test_format_call.py - tests/unit/utils/test_utils.py - tests/unit/utils/test_warnings.py
145 lines
4.8 KiB
Python
145 lines
4.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: Thayne Harbaugh (tharbaug@adobe.com)
|
|
|
|
tests.integration.shell.proxy
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
'''
|
|
|
|
# Import python libs
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
import logging
|
|
|
|
# Import salt tests libs
|
|
import tests.integration.utils
|
|
from tests.integration.utils import testprogram
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class ProxyTest(testprogram.TestProgramCase):
|
|
'''
|
|
Various integration tests for the salt-proxy executable.
|
|
'''
|
|
|
|
def test_exit_status_no_proxyid(self):
|
|
'''
|
|
Ensure correct exit status when --proxyid argument is missing.
|
|
'''
|
|
|
|
proxy = testprogram.TestDaemonSaltProxy(
|
|
name='proxy-no_proxyid',
|
|
parent_dir=self._test_dir,
|
|
)
|
|
# Call setup here to ensure config and script exist
|
|
proxy.setup()
|
|
stdout, stderr, status = proxy.run(
|
|
args=[
|
|
'--config-dir', proxy.abs_path(proxy.config_dir), # Needed due to verbatim_args=True
|
|
'-d',
|
|
],
|
|
verbatim_args=True, # prevents --proxyid from being added automatically
|
|
catch_stderr=True,
|
|
with_retcode=True,
|
|
# The proxy minion had a bug where it would loop forever
|
|
# without daemonizing - protect that with a timeout.
|
|
timeout=60,
|
|
)
|
|
try:
|
|
self.assert_exit_status(
|
|
status, 'EX_USAGE',
|
|
message='no --proxyid specified',
|
|
stdout=stdout,
|
|
stderr=tests.integration.utils.decode_byte_list(stderr)
|
|
)
|
|
finally:
|
|
# Although the start-up should fail, call shutdown() to set the
|
|
# internal _shutdown flag and avoid the registered atexit calls to
|
|
# cause timeout exeptions and respective traceback
|
|
proxy.shutdown()
|
|
|
|
def test_exit_status_unknown_user(self):
|
|
'''
|
|
Ensure correct exit status when the proxy is configured to run as an unknown user.
|
|
'''
|
|
|
|
proxy = testprogram.TestDaemonSaltProxy(
|
|
name='proxy-unknown_user',
|
|
config_base={'user': 'some_unknown_user_xyz'},
|
|
parent_dir=self._test_dir,
|
|
)
|
|
# Call setup here to ensure config and script exist
|
|
proxy.setup()
|
|
stdout, stderr, status = proxy.run(
|
|
args=['-d'],
|
|
catch_stderr=True,
|
|
with_retcode=True,
|
|
)
|
|
try:
|
|
self.assert_exit_status(
|
|
status, 'EX_NOUSER',
|
|
message='unknown user not on system',
|
|
stdout=stdout,
|
|
stderr=tests.integration.utils.decode_byte_list(stderr)
|
|
)
|
|
finally:
|
|
# Although the start-up should fail, call shutdown() to set the
|
|
# internal _shutdown flag and avoid the registered atexit calls to
|
|
# cause timeout exeptions and respective traceback
|
|
proxy.shutdown()
|
|
|
|
# pylint: disable=invalid-name
|
|
def test_exit_status_unknown_argument(self):
|
|
'''
|
|
Ensure correct exit status when an unknown argument is passed to salt-proxy.
|
|
'''
|
|
|
|
proxy = testprogram.TestDaemonSaltProxy(
|
|
name='proxy-unknown_argument',
|
|
parent_dir=self._test_dir,
|
|
)
|
|
# Call setup here to ensure config and script exist
|
|
proxy.setup()
|
|
stdout, stderr, status = proxy.run(
|
|
args=['-d', '--unknown-argument'],
|
|
catch_stderr=True,
|
|
with_retcode=True,
|
|
)
|
|
try:
|
|
self.assert_exit_status(
|
|
status, 'EX_USAGE',
|
|
message='unknown argument',
|
|
stdout=stdout, stderr=stderr
|
|
)
|
|
finally:
|
|
# Although the start-up should fail, call shutdown() to set the
|
|
# internal _shutdown flag and avoid the registered atexit calls to
|
|
# cause timeout exeptions and respective traceback
|
|
proxy.shutdown()
|
|
|
|
def test_exit_status_correct_usage(self):
|
|
'''
|
|
Ensure correct exit status when salt-proxy starts correctly.
|
|
'''
|
|
|
|
proxy = testprogram.TestDaemonSaltProxy(
|
|
name='proxy-correct_usage',
|
|
parent_dir=self._test_dir,
|
|
)
|
|
# Call setup here to ensure config and script exist
|
|
proxy.setup()
|
|
stdout, stderr, status = proxy.run(
|
|
args=['-d'],
|
|
catch_stderr=True,
|
|
with_retcode=True,
|
|
)
|
|
try:
|
|
self.assert_exit_status(
|
|
status, 'EX_OK',
|
|
message='correct usage',
|
|
stdout=stdout,
|
|
stderr=tests.integration.utils.decode_byte_list(stderr)
|
|
)
|
|
finally:
|
|
proxy.shutdown(wait_for_orphans=3)
|