mirror of
https://github.com/valitydev/salt.git
synced 2024-11-09 01:36:48 +00:00
Merge pull request #21147 from terminalmage/rename-lxc-cmd-funcs
Rename new lxc.cmd_run*, lxc.cmd_retcode functions
This commit is contained in:
commit
5cc7b61d8a
@ -420,15 +420,15 @@ New functions have been added to mimic the behavior of the functions in the
|
|||||||
equivalents:
|
equivalents:
|
||||||
|
|
||||||
|
|
||||||
======================================= ====================================================== ===========================================================
|
======================================= ====================================================== ===================================================
|
||||||
Description :mod:`cmd <salt.modules.cmdmod>` module :mod:`lxc <salt.modules.lxc>` module
|
Description :mod:`cmd <salt.modules.cmdmod>` module :mod:`lxc <salt.modules.lxc>` module
|
||||||
======================================= ====================================================== ===========================================================
|
======================================= ====================================================== ===================================================
|
||||||
Run a command and get all output :mod:`cmd.run <salt.modules.cmdmod.run>` :mod:`lxc.cmd_run <salt.modules.lxc.cmd_run>`
|
Run a command and get all output :mod:`cmd.run <salt.modules.cmdmod.run>` :mod:`lxc.run <salt.modules.lxc.run>`
|
||||||
Run a command and get just stdout :mod:`cmd.run_stdout <salt.modules.cmdmod.run_stdout>` :mod:`lxc.cmd_run_stdout <salt.modules.lxc.cmd_run_stdout>`
|
Run a command and get just stdout :mod:`cmd.run_stdout <salt.modules.cmdmod.run_stdout>` :mod:`lxc.run_stdout <salt.modules.lxc.run_stdout>`
|
||||||
Run a command and get just stderr :mod:`cmd.run_stderr <salt.modules.cmdmod.run_stderr>` :mod:`lxc.cmd_run_stderr <salt.modules.lxc.cmd_run_stderr>`
|
Run a command and get just stderr :mod:`cmd.run_stderr <salt.modules.cmdmod.run_stderr>` :mod:`lxc.run_stderr <salt.modules.lxc.run_stderr>`
|
||||||
Run a command and get just the retcode :mod:`cmd.retcode <salt.modules.cmdmod.retcode>` :mod:`lxc.cmd_retcode <salt.modules.lxc.cmd_retcode>`
|
Run a command and get just the retcode :mod:`cmd.retcode <salt.modules.cmdmod.retcode>` :mod:`lxc.retcode <salt.modules.lxc.retcode>`
|
||||||
Run a command and get all information :mod:`cmd.run_all <salt.modules.cmdmod.run_all>` :mod:`lxc.cmd_run_all <salt.modules.lxc.cmd_run_all>`
|
Run a command and get all information :mod:`cmd.run_all <salt.modules.cmdmod.run_all>` :mod:`lxc.run_all <salt.modules.lxc.run_all>`
|
||||||
======================================= ====================================================== ===========================================================
|
======================================= ====================================================== ===================================================
|
||||||
|
|
||||||
|
|
||||||
2014.7.x and Earlier
|
2014.7.x and Earlier
|
||||||
|
@ -1230,9 +1230,9 @@ def init(name,
|
|||||||
if old_chunks != chunks:
|
if old_chunks != chunks:
|
||||||
to_reboot = True
|
to_reboot = True
|
||||||
if remove_seed_marker:
|
if remove_seed_marker:
|
||||||
cmd_run(name,
|
run(name,
|
||||||
'rm -f \'{0}\''.format(SEED_MARKER),
|
'rm -f \'{0}\''.format(SEED_MARKER),
|
||||||
python_shell=False)
|
python_shell=False)
|
||||||
|
|
||||||
# last time to be sure any of our property is correctly applied
|
# last time to be sure any of our property is correctly applied
|
||||||
cfg = _LXCConfig(name=name, network_profile=network_profile,
|
cfg = _LXCConfig(name=name, network_profile=network_profile,
|
||||||
@ -1271,9 +1271,9 @@ def init(name,
|
|||||||
gids = [gid,
|
gids = [gid,
|
||||||
'/lxc.initial_pass',
|
'/lxc.initial_pass',
|
||||||
'/.lxc.{0}.initial_pass'.format(name)]
|
'/.lxc.{0}.initial_pass'.format(name)]
|
||||||
if not any(cmd_retcode(name,
|
if not any(retcode(name,
|
||||||
'test -e "{0}"'.format(x),
|
'test -e "{0}"'.format(x),
|
||||||
ignore_retcode=True) == 0
|
ignore_retcode=True) == 0
|
||||||
for x in gids):
|
for x in gids):
|
||||||
# think to touch the default user generated by default templates
|
# think to touch the default user generated by default templates
|
||||||
# which has a really unsecure passwords...
|
# which has a really unsecure passwords...
|
||||||
@ -1281,10 +1281,10 @@ def init(name,
|
|||||||
for default_user in ['ubuntu']:
|
for default_user in ['ubuntu']:
|
||||||
if (
|
if (
|
||||||
default_user not in users
|
default_user not in users
|
||||||
and cmd_retcode(name,
|
and retcode(name,
|
||||||
'id {0}'.format(default_user),
|
'id {0}'.format(default_user),
|
||||||
python_shell=False,
|
python_shell=False,
|
||||||
ignore_retcode=True) == 0
|
ignore_retcode=True) == 0
|
||||||
):
|
):
|
||||||
users.append(default_user)
|
users.append(default_user)
|
||||||
for user in users:
|
for user in users:
|
||||||
@ -1305,10 +1305,10 @@ def init(name,
|
|||||||
log.debug(msg)
|
log.debug(msg)
|
||||||
if ret.get('result', True):
|
if ret.get('result', True):
|
||||||
changes.append({'password': 'Password(s) updated'})
|
changes.append({'password': 'Password(s) updated'})
|
||||||
if cmd_retcode(name,
|
if retcode(name,
|
||||||
('sh -c \'touch "{0}"; test -e "{0}"\''
|
('sh -c \'touch "{0}"; test -e "{0}"\''
|
||||||
.format(gid)),
|
.format(gid)),
|
||||||
ignore_retcode=True) != 0:
|
ignore_retcode=True) != 0:
|
||||||
ret['comment'] = 'Failed to set password marker'
|
ret['comment'] = 'Failed to set password marker'
|
||||||
changes[-1]['password'] += '. ' + ret['comment'] + '.'
|
changes[-1]['password'] += '. ' + ret['comment'] + '.'
|
||||||
ret['result'] = False
|
ret['result'] = False
|
||||||
@ -1320,9 +1320,9 @@ def init(name,
|
|||||||
gids = [gid,
|
gids = [gid,
|
||||||
'/lxc.initial_dns',
|
'/lxc.initial_dns',
|
||||||
'/lxc.{0}.initial_dns'.format(name)]
|
'/lxc.{0}.initial_dns'.format(name)]
|
||||||
if not any(cmd_retcode(name,
|
if not any(retcode(name,
|
||||||
'test -e "{0}"'.format(x),
|
'test -e "{0}"'.format(x),
|
||||||
ignore_retcode=True) == 0
|
ignore_retcode=True) == 0
|
||||||
for x in gids):
|
for x in gids):
|
||||||
try:
|
try:
|
||||||
set_dns(name,
|
set_dns(name,
|
||||||
@ -1333,10 +1333,10 @@ def init(name,
|
|||||||
ret['result'] = False
|
ret['result'] = False
|
||||||
else:
|
else:
|
||||||
changes.append({'dns': 'DNS updated'})
|
changes.append({'dns': 'DNS updated'})
|
||||||
if cmd_retcode(name,
|
if retcode(name,
|
||||||
('sh -c \'touch "{0}"; test -e "{0}"\''
|
('sh -c \'touch "{0}"; test -e "{0}"\''
|
||||||
.format(gid)),
|
.format(gid)),
|
||||||
ignore_retcode=True) != 0:
|
ignore_retcode=True) != 0:
|
||||||
ret['comment'] = 'Failed to set DNS marker'
|
ret['comment'] = 'Failed to set DNS marker'
|
||||||
changes[-1]['dns'] += '. ' + ret['comment'] + '.'
|
changes[-1]['dns'] += '. ' + ret['comment'] + '.'
|
||||||
ret['result'] = False
|
ret['result'] = False
|
||||||
@ -1345,9 +1345,9 @@ def init(name,
|
|||||||
gid = '/.lxc.initial_seed'
|
gid = '/.lxc.initial_seed'
|
||||||
gids = [gid, '/lxc.initial_seed']
|
gids = [gid, '/lxc.initial_seed']
|
||||||
if (
|
if (
|
||||||
any(cmd_retcode(name,
|
any(retcode(name,
|
||||||
'test -e {0}'.format(x),
|
'test -e {0}'.format(x),
|
||||||
ignore_retcode=True) == 0
|
ignore_retcode=True) == 0
|
||||||
for x in gids)
|
for x in gids)
|
||||||
or not ret.get('result', True)
|
or not ret.get('result', True)
|
||||||
):
|
):
|
||||||
@ -2327,20 +2327,20 @@ def info(name):
|
|||||||
free = limit - usage
|
free = limit - usage
|
||||||
ret['memory_limit'] = limit
|
ret['memory_limit'] = limit
|
||||||
ret['memory_free'] = free
|
ret['memory_free'] = free
|
||||||
size = cmd_run_stdout(name, 'df /', python_shell=False)
|
size = run_stdout(name, 'df /', python_shell=False)
|
||||||
# The size is the 2nd column of the last line
|
# The size is the 2nd column of the last line
|
||||||
ret['size'] = size.splitlines()[-1].split()[1]
|
ret['size'] = size.splitlines()[-1].split()[1]
|
||||||
|
|
||||||
# First try iproute2
|
# First try iproute2
|
||||||
ip_cmd = cmd_run_all(name, 'ip link show', python_shell=False)
|
ip_cmd = run_all(name, 'ip link show', python_shell=False)
|
||||||
if ip_cmd['retcode'] == 0:
|
if ip_cmd['retcode'] == 0:
|
||||||
ip_data = ip_cmd['stdout']
|
ip_data = ip_cmd['stdout']
|
||||||
ip_cmd = cmd_run_all(name, 'ip addr show', python_shell=False)
|
ip_cmd = run_all(name, 'ip addr show', python_shell=False)
|
||||||
ip_data += '\n' + ip_cmd['stdout']
|
ip_data += '\n' + ip_cmd['stdout']
|
||||||
ip_data = salt.utils.network._interfaces_ip(ip_data)
|
ip_data = salt.utils.network._interfaces_ip(ip_data)
|
||||||
else:
|
else:
|
||||||
# That didn't work, try ifconfig
|
# That didn't work, try ifconfig
|
||||||
ip_cmd = cmd_run_all(name, 'ifconfig', python_shell=False)
|
ip_cmd = run_all(name, 'ifconfig', python_shell=False)
|
||||||
if ip_cmd['retcode'] == 0:
|
if ip_cmd['retcode'] == 0:
|
||||||
ip_data = \
|
ip_data = \
|
||||||
salt.utils.network._interfaces_ifconfig(
|
salt.utils.network._interfaces_ifconfig(
|
||||||
@ -2429,11 +2429,11 @@ def set_password(name, users, password, encrypted=True):
|
|||||||
|
|
||||||
failed_users = []
|
failed_users = []
|
||||||
for user in users:
|
for user in users:
|
||||||
result = cmd_retcode(name,
|
result = retcode(name,
|
||||||
'chpasswd{0}'.format(' -e' if encrypted else ''),
|
'chpasswd{0}'.format(' -e' if encrypted else ''),
|
||||||
stdin=':'.join((user, password)),
|
stdin=':'.join((user, password)),
|
||||||
python_shell=False,
|
python_shell=False,
|
||||||
output_loglevel='quiet')
|
output_loglevel='quiet')
|
||||||
if result != 0:
|
if result != 0:
|
||||||
failed_users.append(user)
|
failed_users.append(user)
|
||||||
if failed_users:
|
if failed_users:
|
||||||
@ -2579,10 +2579,10 @@ def set_dns(name, dnsservers=None, searchdomains=None):
|
|||||||
dns = ['nameserver {0}'.format(x) for x in dnsservers]
|
dns = ['nameserver {0}'.format(x) for x in dnsservers]
|
||||||
dns.extend(['search {0}'.format(x) for x in searchdomains])
|
dns.extend(['search {0}'.format(x) for x in searchdomains])
|
||||||
dns = '\n'.join(dns) + '\n'
|
dns = '\n'.join(dns) + '\n'
|
||||||
result = cmd_run_all(name,
|
result = run_all(name,
|
||||||
'tee /etc/resolv.conf',
|
'tee /etc/resolv.conf',
|
||||||
stdin=dns,
|
stdin=dns,
|
||||||
python_shell=False)
|
python_shell=False)
|
||||||
if result['retcode'] != 0:
|
if result['retcode'] != 0:
|
||||||
error = ('Unable to write to /etc/resolv.conf in container \'{0}\''
|
error = ('Unable to write to /etc/resolv.conf in container \'{0}\''
|
||||||
.format(name))
|
.format(name))
|
||||||
@ -2594,17 +2594,17 @@ def set_dns(name, dnsservers=None, searchdomains=None):
|
|||||||
|
|
||||||
def _need_install(name):
|
def _need_install(name):
|
||||||
ret = 0
|
ret = 0
|
||||||
has_minion = cmd_retcode(name, "command -v salt-minion")
|
has_minion = retcode(name, "command -v salt-minion")
|
||||||
# we assume that installing is when no minion is running
|
# we assume that installing is when no minion is running
|
||||||
# but testing the executable presence is not enougth for custom
|
# but testing the executable presence is not enougth for custom
|
||||||
# installs where the bootstrap can do much more than installing
|
# installs where the bootstrap can do much more than installing
|
||||||
# the bare salt binaries.
|
# the bare salt binaries.
|
||||||
if has_minion:
|
if has_minion:
|
||||||
processes = cmd_run_stdout(name, "ps aux")
|
processes = run_stdout(name, "ps aux")
|
||||||
if 'salt-minion' not in processes:
|
if 'salt-minion' not in processes:
|
||||||
ret = 1
|
ret = 1
|
||||||
else:
|
else:
|
||||||
cmd_retcode(name, "salt-call --local service.stop salt-minion")
|
retcode(name, "salt-call --local service.stop salt-minion")
|
||||||
else:
|
else:
|
||||||
ret = 1
|
ret = 1
|
||||||
return ret
|
return ret
|
||||||
@ -2707,7 +2707,7 @@ def bootstrap(name,
|
|||||||
needs_install = _need_install(name)
|
needs_install = _need_install(name)
|
||||||
else:
|
else:
|
||||||
needs_install = True
|
needs_install = True
|
||||||
seeded = cmd_retcode(name, 'test -e \'{0}\''.format(SEED_MARKER)) == 0
|
seeded = retcode(name, 'test -e \'{0}\''.format(SEED_MARKER)) == 0
|
||||||
tmp = tempfile.mkdtemp()
|
tmp = tempfile.mkdtemp()
|
||||||
if seeded and not unconditional_install:
|
if seeded and not unconditional_install:
|
||||||
ret = True
|
ret = True
|
||||||
@ -2720,9 +2720,9 @@ def bootstrap(name,
|
|||||||
if install:
|
if install:
|
||||||
rstr = __salt__['test.rand_str']()
|
rstr = __salt__['test.rand_str']()
|
||||||
configdir = '/tmp/.c_{0}'.format(rstr)
|
configdir = '/tmp/.c_{0}'.format(rstr)
|
||||||
cmd_run(name,
|
run(name,
|
||||||
'install -m 0700 -d {0}'.format(configdir),
|
'install -m 0700 -d {0}'.format(configdir),
|
||||||
python_shell=False)
|
python_shell=False)
|
||||||
bs_ = __salt__['config.gather_bootstrap_script'](
|
bs_ = __salt__['config.gather_bootstrap_script'](
|
||||||
bootstrap=bootstrap_url)
|
bootstrap=bootstrap_url)
|
||||||
dest_dir = os.path.join('/tmp', rstr)
|
dest_dir = os.path.join('/tmp', rstr)
|
||||||
@ -2730,7 +2730,7 @@ def bootstrap(name,
|
|||||||
'mkdir -p {0}'.format(dest_dir),
|
'mkdir -p {0}'.format(dest_dir),
|
||||||
'chmod 700 {0}'.format(dest_dir),
|
'chmod 700 {0}'.format(dest_dir),
|
||||||
]:
|
]:
|
||||||
if cmd_run_stdout(name, cmd):
|
if run_stdout(name, cmd):
|
||||||
log.error(
|
log.error(
|
||||||
('tmpdir {0} creation'
|
('tmpdir {0} creation'
|
||||||
' failed ({1}').format(dest_dir, cmd))
|
' failed ({1}').format(dest_dir, cmd))
|
||||||
@ -2753,7 +2753,7 @@ def bootstrap(name,
|
|||||||
# out of the output in case of unexpected problem
|
# out of the output in case of unexpected problem
|
||||||
log.info('Running {0} in LXC container \'{1}\''
|
log.info('Running {0} in LXC container \'{1}\''
|
||||||
.format(cmd, name))
|
.format(cmd, name))
|
||||||
ret = cmd_retcode(name, cmd, output_loglevel='info',
|
ret = retcode(name, cmd, output_loglevel='info',
|
||||||
use_vt=True) == 0
|
use_vt=True) == 0
|
||||||
else:
|
else:
|
||||||
ret = False
|
ret = False
|
||||||
@ -2763,9 +2763,9 @@ def bootstrap(name,
|
|||||||
cp(name, cfg_files['config'], '/etc/salt/minion')
|
cp(name, cfg_files['config'], '/etc/salt/minion')
|
||||||
cp(name, cfg_files['privkey'], os.path.join(pki_dir, 'minion.pem'))
|
cp(name, cfg_files['privkey'], os.path.join(pki_dir, 'minion.pem'))
|
||||||
cp(name, cfg_files['pubkey'], os.path.join(pki_dir, 'minion.pub'))
|
cp(name, cfg_files['pubkey'], os.path.join(pki_dir, 'minion.pub'))
|
||||||
cmd_run(name,
|
run(name,
|
||||||
'salt-call --local service.enable salt-minion',
|
'salt-call --local service.enable salt-minion',
|
||||||
python_shell=False)
|
python_shell=False)
|
||||||
ret = True
|
ret = True
|
||||||
shutil.rmtree(tmp)
|
shutil.rmtree(tmp)
|
||||||
if orig_state == 'stopped':
|
if orig_state == 'stopped':
|
||||||
@ -2774,7 +2774,7 @@ def bootstrap(name,
|
|||||||
freeze(name)
|
freeze(name)
|
||||||
# mark seeded upon successful install
|
# mark seeded upon successful install
|
||||||
if ret:
|
if ret:
|
||||||
cmd_run(name,
|
run(name,
|
||||||
'touch \'{0}\''.format(SEED_MARKER),
|
'touch \'{0}\''.format(SEED_MARKER),
|
||||||
python_shell=False)
|
python_shell=False)
|
||||||
return ret
|
return ret
|
||||||
@ -2795,7 +2795,7 @@ def attachable(name):
|
|||||||
return __context__['lxc.attachable']
|
return __context__['lxc.attachable']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
_ensure_exists(name)
|
_ensure_exists(name)
|
||||||
# Can't use cmd_run() here because it uses attachable() and would
|
# Can't use run() here because it uses attachable() and would
|
||||||
# endlessly recurse, resulting in a traceback
|
# endlessly recurse, resulting in a traceback
|
||||||
cmd = 'lxc-attach --clear-env -n {0} -- /usr/bin/env'.format(name)
|
cmd = 'lxc-attach --clear-env -n {0} -- /usr/bin/env'.format(name)
|
||||||
result = __salt__['cmd.retcode'](cmd, python_shell=False) == 0
|
result = __salt__['cmd.retcode'](cmd, python_shell=False) == 0
|
||||||
@ -2815,7 +2815,7 @@ def _run(name,
|
|||||||
ignore_retcode=False,
|
ignore_retcode=False,
|
||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
Common logic for lxc.cmd_run functions
|
Common logic for lxc.run functions
|
||||||
'''
|
'''
|
||||||
_ensure_exists(name)
|
_ensure_exists(name)
|
||||||
valid_output = ('stdout', 'stderr', 'retcode', 'all')
|
valid_output = ('stdout', 'stderr', 'retcode', 'all')
|
||||||
@ -2937,12 +2937,13 @@ def run_cmd(name,
|
|||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
.. deprecated:: 2015.2.0
|
.. deprecated:: 2015.2.0
|
||||||
Use :mod:`lxc.cmd_run <salt.modules.lxc.cmd_run>` instead
|
Use :mod:`lxc.run <salt.modules.lxc.run>` instead
|
||||||
'''
|
'''
|
||||||
salt.utils.warn_until(
|
salt.utils.warn_until(
|
||||||
'Boron',
|
'Boron',
|
||||||
'lxc.run_cmd has been deprecated, please use one of the lxc.cmd_run* '
|
'lxc.run_cmd has been deprecated, please use one of the lxc.run '
|
||||||
'functions. See the documentation for more information.'
|
'functions (or lxc.retcode). See the documentation for more '
|
||||||
|
'information.'
|
||||||
)
|
)
|
||||||
if stdout and stderr:
|
if stdout and stderr:
|
||||||
output = 'all'
|
output = 'all'
|
||||||
@ -2965,16 +2966,16 @@ def run_cmd(name,
|
|||||||
keep_env=keep_env)
|
keep_env=keep_env)
|
||||||
|
|
||||||
|
|
||||||
def cmd_run(name,
|
def run(name,
|
||||||
cmd,
|
cmd,
|
||||||
no_start=False,
|
no_start=False,
|
||||||
preserve_state=True,
|
preserve_state=True,
|
||||||
stdin=None,
|
stdin=None,
|
||||||
python_shell=True,
|
python_shell=True,
|
||||||
output_loglevel='debug',
|
output_loglevel='debug',
|
||||||
use_vt=False,
|
use_vt=False,
|
||||||
ignore_retcode=False,
|
ignore_retcode=False,
|
||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
.. versionadded:: 2015.2.0
|
.. versionadded:: 2015.2.0
|
||||||
|
|
||||||
@ -2991,8 +2992,8 @@ def cmd_run(name,
|
|||||||
|
|
||||||
The same error will be displayed in stderr if the command being run
|
The same error will be displayed in stderr if the command being run
|
||||||
does not exist. If no output is returned using this function, try using
|
does not exist. If no output is returned using this function, try using
|
||||||
:mod:`lxc.cmd_run_stderr <salt.modules.lxc.cmd_run_stderr>` or
|
:mod:`lxc.run_stderr <salt.modules.lxc.run_stderr>` or
|
||||||
:mod:`lxc.cmd_run_all <salt.modules.lxc.cmd_run_all>`.
|
:mod:`lxc.run_all <salt.modules.lxc.run_all>`.
|
||||||
|
|
||||||
name
|
name
|
||||||
Name of the container in which to run the command
|
Name of the container in which to run the command
|
||||||
@ -3025,7 +3026,7 @@ def cmd_run(name,
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
salt myminion lxc.cmd_run mycontainer 'ifconfig -a'
|
salt myminion lxc.run mycontainer 'ifconfig -a'
|
||||||
'''
|
'''
|
||||||
return _run(name,
|
return _run(name,
|
||||||
cmd,
|
cmd,
|
||||||
@ -3040,16 +3041,16 @@ def cmd_run(name,
|
|||||||
keep_env=keep_env)
|
keep_env=keep_env)
|
||||||
|
|
||||||
|
|
||||||
def cmd_run_stdout(name,
|
def run_stdout(name,
|
||||||
cmd,
|
cmd,
|
||||||
no_start=False,
|
no_start=False,
|
||||||
preserve_state=True,
|
preserve_state=True,
|
||||||
stdin=None,
|
stdin=None,
|
||||||
python_shell=True,
|
python_shell=True,
|
||||||
output_loglevel='debug',
|
output_loglevel='debug',
|
||||||
use_vt=False,
|
use_vt=False,
|
||||||
ignore_retcode=False,
|
ignore_retcode=False,
|
||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
.. versionadded:: 2015.2.0
|
.. versionadded:: 2015.2.0
|
||||||
|
|
||||||
@ -3066,8 +3067,8 @@ def cmd_run_stdout(name,
|
|||||||
|
|
||||||
The same error will be displayed in stderr if the command being run
|
The same error will be displayed in stderr if the command being run
|
||||||
does not exist. If no output is returned using this function, try using
|
does not exist. If no output is returned using this function, try using
|
||||||
:mod:`lxc.cmd_run_stderr <salt.modules.lxc.cmd_run_stderr>` or
|
:mod:`lxc.run_stderr <salt.modules.lxc.run_stderr>` or
|
||||||
:mod:`lxc.cmd_run_all <salt.modules.lxc.cmd_run_all>`.
|
:mod:`lxc.run_all <salt.modules.lxc.run_all>`.
|
||||||
|
|
||||||
name
|
name
|
||||||
Name of the container in which to run the command
|
Name of the container in which to run the command
|
||||||
@ -3100,7 +3101,7 @@ def cmd_run_stdout(name,
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
salt myminion lxc.cmd_run_stdout mycontainer 'ifconfig -a'
|
salt myminion lxc.run_stdout mycontainer 'ifconfig -a'
|
||||||
'''
|
'''
|
||||||
return _run(name,
|
return _run(name,
|
||||||
cmd,
|
cmd,
|
||||||
@ -3115,16 +3116,16 @@ def cmd_run_stdout(name,
|
|||||||
keep_env=keep_env)
|
keep_env=keep_env)
|
||||||
|
|
||||||
|
|
||||||
def cmd_run_stderr(name,
|
def run_stderr(name,
|
||||||
cmd,
|
cmd,
|
||||||
no_start=False,
|
no_start=False,
|
||||||
preserve_state=True,
|
preserve_state=True,
|
||||||
stdin=None,
|
stdin=None,
|
||||||
python_shell=True,
|
python_shell=True,
|
||||||
output_loglevel='debug',
|
output_loglevel='debug',
|
||||||
use_vt=False,
|
use_vt=False,
|
||||||
ignore_retcode=False,
|
ignore_retcode=False,
|
||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
.. versionadded:: 2015.2.0
|
.. versionadded:: 2015.2.0
|
||||||
|
|
||||||
@ -3173,7 +3174,7 @@ def cmd_run_stderr(name,
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
salt myminion lxc.cmd_run_stderr mycontainer 'ip addr show'
|
salt myminion lxc.run_stderr mycontainer 'ip addr show'
|
||||||
'''
|
'''
|
||||||
return _run(name,
|
return _run(name,
|
||||||
cmd,
|
cmd,
|
||||||
@ -3188,7 +3189,7 @@ def cmd_run_stderr(name,
|
|||||||
keep_env=keep_env)
|
keep_env=keep_env)
|
||||||
|
|
||||||
|
|
||||||
def cmd_retcode(name,
|
def retcode(name,
|
||||||
cmd,
|
cmd,
|
||||||
no_start=False,
|
no_start=False,
|
||||||
preserve_state=True,
|
preserve_state=True,
|
||||||
@ -3214,8 +3215,8 @@ def cmd_retcode(name,
|
|||||||
|
|
||||||
The same error will be displayed in stderr if the command being run
|
The same error will be displayed in stderr if the command being run
|
||||||
does not exist. If the retcode is nonzero and not what was expected,
|
does not exist. If the retcode is nonzero and not what was expected,
|
||||||
try using :mod:`lxc.cmd_run_stderr <salt.modules.lxc.cmd_run_stderr>`
|
try using :mod:`lxc.run_stderr <salt.modules.lxc.run_stderr>`
|
||||||
or :mod:`lxc.cmd_run_all <salt.modules.lxc.cmd_run_all>`.
|
or :mod:`lxc.run_all <salt.modules.lxc.run_all>`.
|
||||||
|
|
||||||
name
|
name
|
||||||
Name of the container in which to run the command
|
Name of the container in which to run the command
|
||||||
@ -3248,7 +3249,7 @@ def cmd_retcode(name,
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
salt myminion lxc.cmd_retcode mycontainer 'ip addr show'
|
salt myminion lxc.retcode mycontainer 'ip addr show'
|
||||||
'''
|
'''
|
||||||
return _run(name,
|
return _run(name,
|
||||||
cmd,
|
cmd,
|
||||||
@ -3263,16 +3264,16 @@ def cmd_retcode(name,
|
|||||||
keep_env=keep_env)
|
keep_env=keep_env)
|
||||||
|
|
||||||
|
|
||||||
def cmd_run_all(name,
|
def run_all(name,
|
||||||
cmd,
|
cmd,
|
||||||
no_start=False,
|
no_start=False,
|
||||||
preserve_state=True,
|
preserve_state=True,
|
||||||
stdin=None,
|
stdin=None,
|
||||||
python_shell=True,
|
python_shell=True,
|
||||||
output_loglevel='debug',
|
output_loglevel='debug',
|
||||||
use_vt=False,
|
use_vt=False,
|
||||||
ignore_retcode=False,
|
ignore_retcode=False,
|
||||||
keep_env='http_proxy,https_proxy,no_proxy'):
|
keep_env='http_proxy,https_proxy,no_proxy'):
|
||||||
'''
|
'''
|
||||||
.. versionadded:: 2015.2.0
|
.. versionadded:: 2015.2.0
|
||||||
|
|
||||||
@ -3321,7 +3322,7 @@ def cmd_run_all(name,
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
salt myminion lxc.cmd_run_all mycontainer 'ip addr show'
|
salt myminion lxc.run_all mycontainer 'ip addr show'
|
||||||
'''
|
'''
|
||||||
return _run(name,
|
return _run(name,
|
||||||
cmd,
|
cmd,
|
||||||
@ -3340,9 +3341,7 @@ def _get_md5(name, path):
|
|||||||
'''
|
'''
|
||||||
Get the MD5 checksum of a file from a container
|
Get the MD5 checksum of a file from a container
|
||||||
'''
|
'''
|
||||||
output = cmd_run_stdout(name,
|
output = run_stdout(name, 'md5sum "{0}"'.format(path), ignore_retcode=True)
|
||||||
'md5sum "{0}"'.format(path),
|
|
||||||
ignore_retcode=True)
|
|
||||||
try:
|
try:
|
||||||
return output.split()[0]
|
return output.split()[0]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
@ -3408,7 +3407,7 @@ def cp(name, source, dest, makedirs=False):
|
|||||||
# Destination file sanity checks
|
# Destination file sanity checks
|
||||||
if not os.path.isabs(dest):
|
if not os.path.isabs(dest):
|
||||||
raise SaltInvocationError('Destination path must be absolute')
|
raise SaltInvocationError('Destination path must be absolute')
|
||||||
if cmd_retcode(name,
|
if retcode(name,
|
||||||
'test -d \'{0}\''.format(dest),
|
'test -d \'{0}\''.format(dest),
|
||||||
ignore_retcode=True) == 0:
|
ignore_retcode=True) == 0:
|
||||||
# Destination is a directory, full path to dest file will include the
|
# Destination is a directory, full path to dest file will include the
|
||||||
@ -3419,12 +3418,11 @@ def cp(name, source, dest, makedirs=False):
|
|||||||
# dir is a directory, and then (if makedirs=True) attempt to create the
|
# dir is a directory, and then (if makedirs=True) attempt to create the
|
||||||
# parent directory.
|
# parent directory.
|
||||||
dest_dir, dest_name = os.path.split(dest)
|
dest_dir, dest_name = os.path.split(dest)
|
||||||
if cmd_retcode(name,
|
if retcode(name,
|
||||||
'test -d \'{0}\''.format(dest_dir),
|
'test -d \'{0}\''.format(dest_dir),
|
||||||
ignore_retcode=True) != 0:
|
ignore_retcode=True) != 0:
|
||||||
if makedirs:
|
if makedirs:
|
||||||
result = cmd_run_all(name,
|
result = run_all(name, 'mkdir -p \'{0}\''.format(dest_dir))
|
||||||
'mkdir -p \'{0}\''.format(dest_dir))
|
|
||||||
if result['retcode'] != 0:
|
if result['retcode'] != 0:
|
||||||
error = ('Unable to create destination directory {0} in '
|
error = ('Unable to create destination directory {0} in '
|
||||||
'container \'{1}\''.format(dest_dir, name))
|
'container \'{1}\''.format(dest_dir, name))
|
||||||
@ -3441,7 +3439,7 @@ def cp(name, source, dest, makedirs=False):
|
|||||||
source_md5 = __salt__['file.get_sum'](source, 'md5')
|
source_md5 = __salt__['file.get_sum'](source, 'md5')
|
||||||
if source_md5 != _get_md5(name, dest):
|
if source_md5 != _get_md5(name, dest):
|
||||||
# Using cat here instead of opening the file, reading it into memory,
|
# Using cat here instead of opening the file, reading it into memory,
|
||||||
# and passing it as stdin to cmd_run(). This will keep down memory
|
# and passing it as stdin to run(). This will keep down memory
|
||||||
# usage for the minion and make the operation run quicker.
|
# usage for the minion and make the operation run quicker.
|
||||||
__salt__['cmd.run_stdout'](
|
__salt__['cmd.run_stdout'](
|
||||||
'cat "{0}" | lxc-attach --clear-env --set-var {1} -n {2} -- '
|
'cat "{0}" | lxc-attach --clear-env --set-var {1} -n {2} -- '
|
||||||
|
Loading…
Reference in New Issue
Block a user