Convenient functions to use a salt infra as an api¶
-
class
mc_states.saltapi.
ImgStepError
¶ .
-
class
mc_states.saltapi.
NoRegistryLoaderFound
¶ .
-
exception
mc_states.saltapi.
PortConflictError
¶ .
-
class
mc_states.saltapi.
RenderError
(msg, original=None, ret=None, *args, **kwargs)¶ .
-
class
mc_states.saltapi.
SSHCommandFailed
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHCommandFinished
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHCommandTimeout
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHExecError
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHInterruptError
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHLoginError
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHTimeoutError
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHTransferFailed
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SSHVtError
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
SaltCallFailure
(message, exec_ret=<object object>)¶ .
-
class
mc_states.saltapi.
TransformError
(msg, original=None, ret=None, *args, **kwargs)¶ .
-
mc_states.saltapi.
client
(fun, *args, **kw)¶ Execute a salt function on a specific minion using the salt api. This will set automatic timeouts for well known functions. This will also call well known api calls for a specific time.
Special kwargs:
- salt_cfgdir
- alternative configuration file directory
- salt_cfg
- alternative configuration file
- salt_target
- target to exec things on
- salt_timeout
- timeout for jobs
- salt_job_poll
- poll interval to wait for job finish result
- salt_ttl
- cache ttl either 2 seconds or see __CACHED_FUNS preselector
-
mc_states.saltapi.
concat_res_or_rets
(ret, cret=None, result_keys=None, output_keys=None, dict_keys=None, omit=None)¶ Convenient and magical way to merge 2 structures or strings for usage in salt functions.
- concatenate string with string
- join them (separated with a newline)
- concatenate string with dict:
- append all output keys from dict in the string separated by a new line and prefixed by the output key identfier
- concatenate dict with string:
- concatenate (with newlineà) the string in all output keys
- concatenate dict with dict:
merge corresponding keys in an intelligent way:
- result from ret is setted to false if cret’s one is setted to False
- merge output keys (separate with newline)
- merge dict keys by updating or creating the corresponding key in ret from cret
>>> from collections import OrderedDict >>> from mc_states.saltapi import concat_res_or_rets >>> concat_res_or_rets({}, {'result': False}) {'result': False} >>> concat_res_or_rets({'result': True}, {'result': False}) {'result': False} >>> concat_res_or_rets('oo', {'stdout': 'a', 'stderr': 'b'}) 'oo\nSTDOUT: a\nSTDERR: b' >>> concat_res_or_rets('a', 'b') 'a\nb' >>> concat_res_or_rets(OrderedDict([('stdout', 'a'), ('stderr', 'b')]), ... 'de') OrderedDict([('stdout', 'a\nde'), ('stderr', 'b'), ('output', 'de')]) >>> concat_res_or_rets(OrderedDict([('stdout', 'a'), ('stderr', 'b')]), ... {'stdout': 'c', 'stderr': 'd'}) OrderedDict([('stdout', 'a\nc'), ('stderr', 'b\nd')]) >>> concat_res_or_rets({'changes': {1: 2, 3: 4, 5: 6}}, ... {'changes': {1: 3, 3: 4}}) {'changes': {1: 3, 3: 4, 5: 6}}
-
mc_states.saltapi.
get_local_client
(cfgdir=None, cfg=None, conn=None, **kwargs)¶ Get a local client
- cfgdir/cfg
- args given to localclient