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