* Add config params for custom refspecs
* Add exceptions for errors encountered modifying git config
* Make the refspecs a configurable parameter
* Make refspecs a per-remote parameter
* Update master config template to include custom refspecs opts
* Add documentation for new config params
* Update GitFS walkthrough with a section on custom refspecs
* Remove dulwich support from salt.utils.gitfs
Dulwich still lacks important features, including (but not limited to)
the following:
- Lack of the necessary support for checking out a ref needed for
git_pillar/winrepo support
- No support in its config objects for multivar git config items, making
it impossible to detect when repos have multiple refspecs set for a
given git remote
Given this information, and the fact that it trails as a distant third
to Pygit2 and GitPython, Salt will cease to support Dulwich as a git
interface moving forward.
* Excise references to dulwich from documentation
* Add mention of custom refspecs to Nitrogen release notes
* Add gitfs_refspecs to mocked opts in gitfs integration tests
Also remove dulwich from unit tests
* Add information about opts argument not being intended for CLI use
Version 2.6.0 changed the wording of one of the exceptions tested,
causing tests to fail when jsonschema 2.6.0 is installed. This commit
updates the tests to change the assert for 2.6.0 and later.
* Fix for #38697
* Lint fixes
* Added missing source_hash_name argument in get_managed function
Additional fix to #33187
Customer was still seeing errors, this should now work.
Tested with 2015.8.13 and 2016.11.2
* [2016.3] Pylint fix (#39202)
* Ignore empty dicts in highstate outputter
Closes#37174
* Sort the return list from the fileserver.envs runner
* Fix the win_ip_test failures (#39230)
The changes made in #38793 changes the "get_all_ointerfaces" call
to be a list of DNS servers. This change adjusts the tests structure
from a string to a list and fixes the test failure.
The changes made in #38793 changes the "get_all_ointerfaces" call
to be a list of DNS servers. This change adjusts the tests structure
from a string to a list and fixes the test failure.
Stabilizes these tests by avoiding errors when cheese, crackers
order changes in the comment and gives errors like:
- 'comment': 'Kernel modules crackers, cheese are already present',
? --------
+ 'comment': 'Kernel modules cheese, crackers are already present',
? ++++++++
* Don't abort pillar.get with merge=True if default is None
This prevents a SaltInvocationError from being raised if the default is
loaded from a import_yaml jinja macro and the file being loaded is empty
(which is an entirely valid use case). In these cases, the loaded
default would be None, which we don't want to cause an exception.
* Add test case for issue 39062
If all the devices submitted to pvcreate() are already initialized as
LVM physical volumes, pvcreate() should return True and no futher
actions should be made.
pvdisplay() would be called by pvcreate() twice: firstly to check
whether a device is already initialized for use by LVM and then to
ensure that the pvcreate executable did its job correctly. The test
replaces pvdisplay() with a mock that always returns True and thus
pvcreate() would think that a specified device is already initialized
and exit. In the other words, instead of testing physical volume
initialization the test simulates a case with all the submitted
devices already initialized.
Fix it by replacing pvdisplay with a mock that returns False on the
first call (thus pvcreate thinks that a device is not a PV yet) and True
on the second call (after the pvcreate executable is called).
'lvm version' produces multiline output whereas test_version and
test_fullversion use mocks with single-line output. Use real-life
'lvm version' output in those mocks instead.
* openvswitch: add a basic unit test for openvswitch
* openvswitch: enclose comments_* variables into a map
* openvswitch: only prepare error messages if type parameter is present
* openvswitch: add test case: create a GRE port
* openvswitch: remove trailing whitespace
* openvswitch: add missing "comments" variable
* openvswitch: pep8 compliance
* openvswitch: mock dig.check_ip
* openvswitch: rename "type" argument into "tunnel_type"
* openvswitch: reference bridge_exists before assignment
* openvswitch: reference port_list before assignment
* openvswitch: add upgrade note about "type" option renaming
These unit tests exposed a bunch of python 3 incompatibilities in the
filebuffer util as well as the find util. The filebuffer changes should
be reviewed carefully.
Once this happens, we need to re-enable the test. The move over
should also allow us to upgrade the version of salt-testing that
is applied to the test VMs. Once this is complete, we can apply
the `@flaky` decorator to this test. (salt-testing must be a
version newer than the September release.)
Allows this code path to succeed for a minimal roster file that does not
specify `ssh_options`
$ sudo salt-ssh 'login1*' test.ping
Permission denied for host login1, do you want to deploy the salt-ssh
key? (password required):
[Y/n] Y
Password for root@login1:
login1:
True
The additional call to parser.parse_args(args) negates the first
patch to running self.config_func. We want the opts that we set
up in the above test to patch the setup args when the parse_args
func is called. This updates the mock to work with better with
patch and removes the additional parser.parse_args call.
`pillarenv_from_saltenv` is already an option for minion config, this
change enables this feature on the master.
If set to `true` salt will derive the pillar environment set on the
master:
$ salt-run pillar.show_pillar saltenv=radman
my_passphrase:
XYZ
$ sudo salt-run pillar.show_pillar saltenv=radman2
my_passphrase:
ABC
Without this copy, the settings in DEFAULT_API_OPTS was getting overridden
by the new settings in the unit test. Let's copy those default settings,
and then restore them at the end of the test. These tests have also been
marked as destructive.
Previously only top-level data elements could be overridden in a map or
extended profile entry. This change adjusts map and profile evaluation
to use a recursive merge using salt.utils.dictupdate.update().
This is a break with compatibility, but in the common case a cloud
profile or map is not structured to truncate configuration but to add
further detail to the profile that it extends.
Update map docs with an example from VMware where we chan now change a
network parameter without having to repeat other device information such
as disk controllers.
Added docs to the release notes for all of these changes.
The affected modules are:
- htpasswd
- img
- smartos_virt
- virt
- virtualenc_mod
- xapi
- zypper
* archive.extracted: don't try to cache local sources
This will keep us from trying to cache file when we already have it
locally, which will help significantly with larger archives.
* Update tests to reflect change in cache behavior
* Add mock return for /bin/tar
This fixes failing tests for Ubuntu 14
The 16.0.0 version of pyOpenSSL has an upstream error in it that
causes a stacktrace in our test suite. The upstream issue has
been fixed in pyOpenSSL in 16.1.0 and upwards, but 16.0.0 is still
available.
This fix skips the test when the specific error generated by the
upstream bug is encountered during the test.
Also removed skipIf logic when on Python 2.6. This fix resolves the
same test failures on 2.6 as well as Ubuntu 12 (which is apparently
running Pyhton 2.7 on our test images from Linode these days).
Also removed skipIf logic when on Python 2.6. This fix resolves the
same test failures on 2.6 as well as Ubuntu 12 (which is apparently
running Pyhton 2.7 on our test images from Linode these days).
Tests were failing because _parse_interfaces is returning the correct data per mocked data. The assertion was expecting the iface line to have been stripped.
Also removed some mocks that were not needed anymore for the
calls to ``file.contains_regex_multiline`` because that function
is no longer called in the state file.
* Modify daemons test to use multiprocessing
Without this approach, instantiating a master/minion from this test
would affect the parser tests down the line.
* Fix typo
* Fix copy/paste error
* Add missing attr
sleep sometimes is found in /bin/sleep, like in ubuntu. We should just
depend on the PATH variable being correct, and finding sleep, instead of
explicitly saying /usr/bin/sleep
* adding optional response template parameters for normal and error cases
* making optional response templates affect checksum calculation in order to correctly determine if the service needs updating
* Remove trailing whitespace
* removing trailing whitespaces
* correcting invalid mock values in unit test code
Previous behavior if an invalid profile parameter was used:
TypeError: 'NoneType' object has no attribute '__getitem__'
New Behavior:
Error: There was a profile error: Failed to deploy VM
Also fix up some pylint complaints
commit d5003a44230f7bb6878057023726ba7135c9909c
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Nov 11 10:22:21 2016 -0700
Revising cron state & module for OS agnostic support of cron when running as non-root
commit c9c20fc34670e1b371c505d8b7959ea00ae0a36e
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Thu Nov 10 15:47:04 2016 -0700
Re-adding removed comment
commit 4058bf3f609aeec11e0ff2a91191eba16556abf0
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Mon Nov 7 11:08:20 2016 -0700
Adding user to error message and fixing key error if there is no updates
commit 768e28e43585451a241979d048d5ac704f4f8f60
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Nov 4 23:24:13 2016 -0700
Added try/except on group identification and refactored success messaging
commit d575189b17c1b75ef6d43b9ca821fb66aa142531
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Nov 4 23:23:38 2016 -0700
Added try/except on group identification and refactored success messaging
commit 13a8207e5bc99044a3dfca4412e34ba9884d44a8
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Nov 4 17:21:18 2016 -0700
Resolving group permissions issues when managing non-root crontabs
commit 89a7d1e04f21f1cbd93b83052cf47ba7a7225d72
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Nov 4 12:32:55 2016 -0700
Adding unit tests for OS specific cron command string rules
commit b2a00009fda987474c40cee3f2ed8affe5f07f5b
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Wed Nov 2 09:10:06 2016 -0700
Fixing cron.file when running as non-root
commit ba27b18b01f304e541af8b6c7107596f34651123
Author: Benjamin J Cane <Benjamin.J.Cane@aexp.com>
Date: Fri Oct 28 10:58:03 2016 -0700
Removed OS specific logic to always run crontab commands as owner of cron
This test connects to random.org, which may throws the following error
on one network I manage:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
Other errors are possible, such as `socket.error`. Since it is
difficult to anticipate the failure mode, skip these tests if https
communication provokes any exception.
Also, this is not a unit test--it's more of a system test. My
recommendation that we recategorize this as an integration test where
global IPv4 routing can more reasonably expected.
Add skipIf pyvmomi is not installed
NameError: global name 'vmodl' is not defined
NameError: global name 'vim' is not defined
Fix skipIf typo for OpenBSD
>>> import sys
>>> sys.platform
'openbsd6'
Avoid warning from glusterfs.py:
Use specific 'len(elem)' or 'elem is not None' test
Enable boto_secgroup_test tests that work now:
test skipped due to error in moto return - fixed in
cc01669643
* 'develop' of https://github.com/saltstack/salt: (72 commits)
Remove known issues section for rc2 (#37569)
Update release candidate docs with RC2 info (#37564)
sqlite is not found in 2015.8 (#37549)
Use 'driver' instead of 'provider' in test cloud configs (#37547)
Added pillar_enc variable to orchestrate to be passed through
Lint
Cache tests
Add unit tests for minion targeting
Slight grammar fix
Pylint fixes
refresh_pillar() should be called always
Improvements and bug fixes: - Ensure all keys in nested dicts under the data payload have dots replaced with underscores and store original key for reference - Replace use of config.option execution module which does not support ":" path syntax with salt.returners.get_returner_options() so config options are actually obtained - Fixed use of datetime module in date_index mode so functions are loaded properly
Pylint fix for develop (#37513)
Saltstack PPA is no longer maintained
allow selection by id
Update vmware.py
handle other Solaris-like distributions that use pkgsrc the same as SmartOS
Fix some lint
Clean up docs
Fix some syntax errors, string type checks
...
* [PY3] Change log.warn statements to log.warning
log.warn is deprecated in Python 3. This change removes the
occurance of deprecation warnings for using log.warn. For example:
```
17:24:23 [WARNING ] /testing/salt/utils/verify.py:522: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
17:24:23 log.warn('Insecure logging configuration detected! Sensitive data may be logged.')
17:24:23
17:24:23 [WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
```
* Tweak unit.utils.verify_test to using warning instead of warn
That function's namespace looks like this:
```
def create_internet_gateway(self, dry_run=False):
```
So when we pass in the vpc_id opbject in the test, the check later
in the function sets `dry_run=True` since the vpc_id opbject exists.
This later throws JSONResponseErrors because the `DryRun` flag is
set. This error raising functionality was added in the most recent
version of moto, which exposed this bug.
This fixes the three boto_vpc_test unit state tests. We'll see if
other tests need to be addressed in other files on a full test run.
These tests now not only test the new functionality added for matching
on source URI and source_hash_name, but also test non-specific hash_type
lookups, specific hash_type lookups, and failed specific hash_type
lookups (i.e. requesting a hash type not present in the file).
Here is the stack trace that happens when running file.line with
mode=replace on a file that exists, but is empty, as described in
the bug report:
unit.modules.file_test.FileModuleTestCase.test_replace_line_in_empty_file .................................................
Traceback (most recent call last):
File "/root/SaltStack/salt/tests/unit/modules/file_test.py", line 593, in test_replace_line_in_empty_file
mode='replace'))
File "/root/SaltStack/salt/salt/modules/file.py", line 1523, in line
for line in body.split(os.linesep)])
TypeError: expected a character buffer object
* status.uptime - avoid nawks srand, causes problems on smartos
* status.uptime - remove docs comment that no longer applies
* status.uptime - optimize a tiny it and get rid of the need for a shell
* status.uptime - actually remove the now redudent line too
* status.uptime - readded fallback to uptime binary, atleast we get something on the BSDs too now
* status.uptime - support python pre 2.7 as per damon-atkins
* status.uptime - want OpenBSD support
* status.uptime - want freebsd support, removed fallback once again so we are consistant
* status.uptime - want NetBSD support
* status.uptime - fold @jfindlay work for OSX into mine, tweak mine based on his work
* status.uptime - push tests from @jfindlay with updates SunOS test
* status.uptime - remove cmd.run_all as it was replaced by sysctl.get
* status.uptime - attempt to fix sunos test
* Figured out why there was a cmd.run mock was there.
* add note for SunOS, so we do not forget
* Update version added tag
This fixes a number of annoyances with the archive.extracted state.
Rather than re-state the changes again here, they can be observed in the
carbon release notes, where they have been documented.
When provisioning a SmartOS machine on Joyent using salt-cloud, the IP
is often set before SSH is fully configured. This can result in a
successful SFTP transfer, followed by a failure to run
salt-bootstrap.sh.