saltext.vault.utils.vault.helpers¶
Several utility functions for the Vault modules
- saltext.vault.utils.vault.helpers.get_salt_run_type(opts: dict[str, Any]) Literal[0, 1, 2, 3, 4][source]¶
Determine the current operation’s calling context from specific markers in
__opts__and thevaultconfig. Possible contexts:regular minion, credentials issued by master (e.g. via
salt-callorsalt minion_id)regular minion, locally configured (e.g. via
salt-callorsalt minion_id)regular master (e.g. via
salt-run)master impersonating a minion (during pillar compilation or via
salt-ssh)master called via peer running (e.g. when a minion requests new credentials)
- saltext.vault.utils.vault.helpers.iso_to_timestamp(iso_time: str) int[source]¶
Most endpoints respond with RFC3339-formatted strings This is a hacky way to use inbuilt tools only for converting to a timestamp
- saltext.vault.utils.vault.helpers.expand_pattern_lists(pattern: str, **mappings) list[str][source]¶
Expands the pattern for any list-valued mappings, such that for any list of length N in the mappings present in the pattern, N copies of the pattern are returned, each with an element of the list substituted.
- pattern
A pattern to expand, for example
by-role/{pillar[roles]}- mappings
A dictionary of variables that can be expanded into the pattern.
Example: Given the pattern `` by-role/{pillar[roles]}`` and the below pillar
roles: - web - database
This function expands into two patterns,
[by-role/web, by-role/database].Note that this method does not expand any non-list patterns.
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str, cast: type[int]) int[source]¶
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str, cast: type[float] = float) float
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str) float
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str | None, cast: type[int]) int | None
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str | None) float | None
- saltext.vault.utils.vault.helpers.timestring_map(val: int | float | str | None, cast: type[float] = float) float | None
Turn a time string (like
60m) into a float with seconds as a unit.
- saltext.vault.utils.vault.helpers.pretty_td(td: timedelta, /, now: bool | tuple[str, str] = False, precision: Literal['weeks', 'days', 'hours', 'minutes', 'seconds'] | None = None) str[source]¶
Get a human-readable timedelta representation.
- td
Timedelta to render.
- now
Report durations relative to now:
in .../... agoinstead of.../-(...).If passed a tuple of two values instead of true, in addition to
in/ago, prepends the first element if the duration is positive and the second if it is negative.For example,
("expires", "expired")results in"expires in 3 days"or"expired 3 days ago".Defaults to false.
- precision
Smallest unit to report, rounding the duration to that unit.
If omitted, automatically report the largest nonzero unit and the adjacent smaller unit.
If the requested precision is larger than the duration itself, the largest nonzero unit is used instead.
Microseconds are ignored.
- saltext.vault.utils.vault.helpers.dec2hex(decval: int | str) str[source]¶
Converts decimal values to nicely formatted hex strings
- saltext.vault.utils.vault.helpers.filter_state_internal_kwargs(kwargs: Mapping[str, Any], allow: Sequence[str] | None = None) dict[str, Any][source]¶
Remove state-internal kwargs from a kwargs dict.
- kwargs
Pass received variadic keyword arguments.
- allow
Optional list of arguments to un-ignore while filtering. Example:
check_cmdis valid forfile.managed.
- saltext.vault.utils.vault.helpers.deserialize_csl(data: None) None[source]¶
- saltext.vault.utils.vault.helpers.deserialize_csl(data: str | Sequence[str]) list[str]
Ensure a value is a proper Python list, not a string containing a comma-separated list.
- saltext.vault.utils.vault.helpers.filter_unset(data: Mapping[K, V | None], unset: None = None) dict[K, V][source]¶
- saltext.vault.utils.vault.helpers.filter_unset(data: Mapping[K, V | EllipsisType], unset: EllipsisType) dict[K, V]
- saltext.vault.utils.vault.helpers.filter_unset(data: Mapping[K, V], unset: object) dict[K, V]
Remove all unset values in a dictionary and return the filtered result.
- data
Dictionary to filter.
- unset
Identity of what counts as unset; evaluated via
is not. Defaults toNone. Other working examples:...(ellipsis), a specific object such assalt.defaults.NOT_SETor a string literal (not recommended though).
- saltext.vault.utils.vault.helpers.try_base64(data: str | bytes) tuple[bytes, bool][source]¶
Given a string or bytes input, check if it is valid Base64 and decode it if so. Otherwise, return the raw bytes.
Returns a tuple of output, was_base64.
- saltext.vault.utils.vault.helpers.x_of(*, _min=1, _max=1, _reason=None, _predicate=<function <lambda>>, **kwargs)[source]¶
Ensure a minimum and maximum number of parameters passed as keyword arguments to this function satisfy a predicate. By default, exactly one parameter must be not None.
- _min
Minimum number of params that must satisfy
_predicate. Defaults to 1.- _max
Maximum number of params that must satisfy
_predicate. Defaults to 1.- _predicate
Predicate function that receives the value of each passed kwarg and returns a boolean. Defaults to
bool.- kwargs
Pass all parameters to check by name (which is included in the error message).
- saltext.vault.utils.vault.helpers.one_of(*, _reason=None, _predicate=<function <lambda>>, **kwargs)[source]¶
Ensure exactly one of the passed-in kwargs satsifies a predicate.
- _predicate
Predicate function that receives the value of each passed kwarg and returns a boolean. Defaults to
lambda x: x is not None.- kwargs
Pass all parameters to check by name (which is included in the error message).
- saltext.vault.utils.vault.helpers.none_of(*, _reason, _predicate=<function <lambda>>, **kwargs)[source]¶
Ensure none one of the passed-in kwargs satsifies a predicate.
- _predicate
Predicate function that receives the value of each passed kwarg and returns a boolean. Defaults to
lambda x: x is not None.- kwargs
Pass all parameters to check by name (which is included in the error message).
- saltext.vault.utils.vault.helpers.in_vals(vals: Sequence[T], *, _multi: Literal[True], **kwargs: object) list[T][source]¶
- saltext.vault.utils.vault.helpers.in_vals(vals: Sequence[T], *, _multi: Literal[False] = False, **kwargs: object) T
Ensure an input is a subset of allowed values. Raises an exception if validation fails, otherwise returns the normalized value. By default, the input must be exactly one of the allowed values. A single variadic keyword argument defines the parameter name to include in the error message and the value to check.
- vals
A sequence of allowed values.
- _multi
Allow a sequence of more than one allowed value. Defaults to false. If true, the return is ensured to be a list. Otherwise, returns the validated value as passed in.