Closed baby-gnu closed 2 years ago
@baby-gnu Thanks for all your investigation efforts in reaching this fix!
:tada: This PR is included in version 3.0.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:
@baby-gnu Pushed out to all relevant formulas using https://github.com/myii/ssf-formula/pull/411 (with you as the commit author). Thanks again.
PR progress checklist (to be filled in by reviewers)
What type of PR is this?
Primary type
[build]
Changes related to the build system[chore]
Changes to the build process or auxiliary tools and libraries such as documentation generation[ci]
Changes to the continuous integration configuration[feat]
A new feature[fix]
A bug fix[perf]
A code change that improves performance[refactor]
A code change that neither fixes a bug nor adds a feature[revert]
A change used to revert a previous commit[style]
Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)Secondary type
[docs]
Documentation changes[test]
Adding missing or correcting existing testsDoes this PR introduce a
BREAKING CHANGE
?No.
Related issues and/or pull requests
Fixes #203
Describe the changes you're proposing
fix(libmatchers): python client API can use
config.get
optionsOnly
salt-ssh
can't use them actually.openssh/libsaltcli.jinja: detect non empty
opts['__cli']
asapi
.openssh/libmatchers.jinja: only
ssh
andunknown
can't useconfig.get
optionsmerge
anddelimiter
.Pillar / config required to test the proposed changes
Debug log showing how the proposed changes work
I created
a simple
salt://foo/test.sls
salt://foo/parameters/defaults
With the following
test-libsaltcli
script:Here is the output I got when running the
test-libsaltcli
script:before this PR
```# ./test-libsaltcli INFO:salt.state:Loading fresh modules for state activity INFO:salt.fileclient:Fetching file from saltenv 'base', ** done ** 'foo/libmatchers.jinja' INFO:salt.fileclient:Fetching file from saltenv 'base', ** done ** 'foo/libsaltcli.jinja' ERROR:salt.loaded.int.module.logmod:map.jinja configuration: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' ERROR:salt.loaded.int.module.logmod:map.jinja: the 'delimiter' and 'merge' options of 'config.get' are skipped when the salt command type is 'unknown' INFO:salt.state:Running state [do-nothing] at time 14:35:01.961919 INFO:salt.state:Executing state test.nop for [do-nothing] INFO:salt.state:Success! INFO:salt.state:Completed state [do-nothing] at time 14:35:01.962937 (duration_in_ms=1.018) ```after this PR
```# ./test-libsaltcli INFO:salt.state:Loading fresh modules for state activity INFO:salt.fileclient:Fetching file from saltenv 'base', ** done ** 'foo/libmatchers.jinja' INFO:salt.fileclient:Fetching file from saltenv 'base', ** done ** 'foo/libsaltcli.jinja' INFO:salt.state:Running state [do-nothing] at time 14:36:08.336434 INFO:salt.state:Executing state test.nop for [do-nothing] INFO:salt.state:Success! INFO:salt.state:Completed state [do-nothing] at time 14:36:08.337350 (duration_in_ms=0.916) ```I found the proper
DEBUG:salt.loaded.int.module.logmod:[libsaltcli] the salt command type has been identified to be: api
log.Complete log log with
```DEBUG:salt.utils.decorators.jinja:Marking 'set_dict_key_value' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'update_dict_key_value' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'append_dict_key_value' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'extend_dict_key_value' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'to_bytes' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'to_num' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'str_to_num' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_hex' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'random_str' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'contains_whitespace' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'check_whitelist_blacklist' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'to_snake_case' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'to_camelcase' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'compare_dicts' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'compare_lists' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'json_encode_dict' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'json_decode_dict' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'json_encode_list' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'json_decode_list' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'exactly_n_true' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'exactly_one_true' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'traverse' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'substring_in_list' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_list' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_iter' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'sorted_ignorecase' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'mysql_to_dict' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'json_query' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'which' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'path_join' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_empty' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_text_file' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_bin_file' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'list_files' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_ip' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_ipv4' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'is_ipv6' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'ipv4' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'ipv6' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'ipaddr' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'ip_host' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'network_hosts' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'network_size' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'gen_mac' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'mac_str_to_bytes' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'dns_check' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'filter_by_networks' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'get_uid' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'base64_encode' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'base64_decode' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'md5' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'sha1' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'sha256' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'sha512' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'hmac' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'hmac_compute' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'random_hash' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'rand_str' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'file_hashsum' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'http_query' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'strftime' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'date_format' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'raise' as a jinja global DEBUG:salt.utils.decorators.jinja:Marking 'match' as a jinja test DEBUG:salt.utils.decorators.jinja:Marking 'equalto' as a jinja test DEBUG:salt.utils.decorators.jinja:Marking 'skip' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'sequence' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'to_bool' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'indent' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'tojson' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'quote' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'regex_escape' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'regex_search' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'regex_match' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'regex_replace' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'uuid' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'unique' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'min' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'max' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'avg' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'union' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'intersect' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'difference' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'symmetric_difference' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'method_call' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'yaml_dquote' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'yaml_squote' as a jinja filter DEBUG:salt.utils.decorators.jinja:Marking 'yaml_encode' as a jinja filter DEBUG:salt.config:Reading configuration from /etc/salt/minion DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/_schedule.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/_schedule.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/beacons.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/beacons.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/engine.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/engine.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/f_defaults.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/f_defaults.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/reactor.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/reactor.conf DEBUG:salt.config:Using cached minion ID from /etc/salt/minion_id: salt-alcali_196_salt_master_0 DEBUG:salt.loader:Grains refresh requested. Refreshing grains. DEBUG:salt.config:Reading configuration from /etc/salt/minion DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/_schedule.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/_schedule.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/beacons.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/beacons.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/engine.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/engine.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/f_defaults.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/f_defaults.conf DEBUG:salt.config:Including configuration from '/etc/salt/minion.d/reactor.conf' DEBUG:salt.config:Reading configuration from /etc/salt/minion.d/reactor.conf DEBUG:salt.utils.entrypoints:Using importlib_metadata to load entry points DEBUG:salt.loader.lazy:Override __utils__:level=logging.DEBUG
Note that running from python directly does not set the
opts[__cli]
, it's only from scripts.Documentation checklist
README
(e.g.Available states
).pillar.example
.Testing checklist
state_top
).Additional context