The automatic back-porting process did't work for this file since the
testing file has been renamed. I manually added the changes to
`timezone_test.py` that were present in PR #41615.
This new part of the test_exit_status_correct_usage test was added
in PR #41382. This test, along with some memory leakage for the
test running in Python 3, has exposed an underlying issue with
Minion._thread_return subprocessing in the test suite. Due to this
issue, this test is extremely flaky.
Per @DmitryKuzmenko's recomendation in https://github.com/saltstack/salt-jenkins/issues/378,
this test should be commented out for the time being. He is planning
on coming back to this issue to uncomment the test once the underlying
problem has been resolved.
tests.support.helpers passes the single-asterisk tuple of args as
individual arguments to runtest_helpers.modules_available. This breaks
tests which pass more than one argument to the requires_salt_modules
decorator.
This has been fixed by making runtests_helpers.modules_available accept
an arbitrary number of args via using a single-asterisk.
An error is logged if any of the publisher_acl targets is not present in
the available usernames (as derived using pwd.getpwall()). However, at
some point publisher_acl was expanded to support globs and regexes to
specify user names. When this was done, the code which checks the
publisher_acl entries against the available users was not updated. This
results in spurious errors in the log when this code tries to look for a
regex or glob expression in the list of available usernames.
However, there is no real reason for this check, as all it does is run
pwd.getpwnam() on the publisher_acl entry, and it does this only when
the entry is not in the list of available users. So there is no way for
this to do anything but raise a KeyError.
The if block which checks the entry against the list of available users
has therefore been removed.
Previously, `pillar.get` would always default list merge behavior
based on the value of the opt `pillar_merge_lists`. This isn't
always desirable, particularly when creating a dictionary of
default values in a state and merging those defaults with a pillar
key. Sometimes you want a list in pillar to overwrite the default.
This patch adds a param `deep_merge_lists` that allows a user to
specify whether lists within the returned dictionary should be
merged with or overwrite lists within the `default` dictionary.
If unspecified, the new param defaults to the prior behavior.