Commit Graph

70 Commits

Author SHA1 Message Date
Erik Johnson
7c9d95a725
[PY3] Add unicode_literals to config, executors 2018-01-07 14:48:45 -06:00
Erik Johnson
002aa88a97
Replace yaml usage with a helper to ensure unicode is handled properly
Without allow_unicode=True, unicode characters are processed through the
str representer and on Python 2 are dumped as a Unicode code point (i.e.
a literal \u0414). This commit makes allow_unicode=True the default in
our salt.utils.yamlloader.safe_dump() helper. It also adds a new
salt.utils.yamlloader.dump() helper which wraps yaml.dump() and also
makes allow_unicode=True the default.

To make importing and using our custom yaml loader/dumper easier, a
convenience module called salt.utils.yaml has been added, which does a
wildcard import from both salt.utils.yamldumper and
salt.utils.yamlloader.

Refs to yaml.load/dump and yaml.safe_load/safe_dump have been updated to
salt.utils.yaml, to ensure that unicode is handled properly.
2018-01-03 14:14:21 -06:00
Erik Johnson
7b13a7df8b
Replace json module usage with a helper to ensure unicode content is handled properly
This adds wrappers for json.dump{,s} which disable `ensure_ascii` by
default.
2017-12-27 09:30:58 -06:00
Erik Johnson
877abb89d0
Complete the salt.utils refactor
This moves the remaining 30 functions from salt.utils to new locations.
2017-10-15 09:43:31 -05:00
Daniel Wallace
3bae894306
digitalocean should be one word.
Everything on their webpage is a reference to DigitalOcean
2017-09-19 12:47:16 -06:00
Alexandru Bleotu
bf3785739e Fixed failing config.test_api tests for when the ROOT_DIR is / 2017-09-13 13:01:15 -04:00
Alexandru Bleotu
5c3dd00692 Updated config.test_api tests to take into account a ROOT_DIR override 2017-09-12 18:27:26 -04:00
Sergey Kizunov
88ee8ad566 Add config option id_function
Signed-off-by: Sergey Kizunov <sergey.kizunov@ni.com>
2017-09-07 13:41:10 -05:00
Erik Johnson
3184168365 Use explicit unicode strings + break up salt.utils
This PR is part of what will be an ongoing effort to use explicit
unicode strings in Salt. Because Python 3 does not suport Python 2's raw
unicode string syntax (i.e. `ur'\d+'`), we must use
`salt.utils.locales.sdecode()` to ensure that the raw string is unicode.
However, because of how `salt/utils/__init__.py` has evolved into the
hulking monstrosity it is today, this means importing a large module in
places where it is not needed, which could negatively impact
performance. For this reason, this PR also breaks out some of the
functions from `salt/utils/__init__.py` into new/existing modules under
`salt/utils/`. The long term goal will be that the modules within this
directory do not depend on importing `salt.utils`.

A summary of the changes in this PR is as follows:

* Moves the following functions from `salt.utils` to new locations
  (including a deprecation warning if invoked from `salt.utils`):
  `to_bytes`, `to_str`, `to_unicode`, `str_to_num`, `is_quoted`,
  `dequote`, `is_hex`, `is_bin_str`, `rand_string`,
  `contains_whitespace`, `clean_kwargs`, `invalid_kwargs`, `which`,
  `which_bin`, `path_join`, `shlex_split`, `rand_str`, `is_windows`,
  `is_proxy`, `is_linux`, `is_darwin`, `is_sunos`, `is_smartos`,
  `is_smartos_globalzone`, `is_smartos_zone`, `is_freebsd`, `is_netbsd`,
  `is_openbsd`, `is_aix`
* Moves the functions already deprecated by @rallytime to the bottom of
  `salt/utils/__init__.py` for better organization, so we can keep the
  deprecated ones separate from the ones yet to be deprecated as we
  continue to break up `salt.utils`
* Updates `salt/*.py` and all files under `salt/client/` to use explicit
  unicode string literals.
* Gets rid of implicit imports of `salt.utils` (e.g. `from salt.utils
  import foo` becomes `import salt.utils.foo as foo`).
* Renames the `test.rand_str` function to `test.random_hash` to more
  accurately reflect what it does
* Modifies `salt.utils.stringutils.random()` (née `salt.utils.rand_string()`)
  such that it returns a string matching the passed size. Previously
  this function would get `size` bytes from `os.urandom()`,
  base64-encode it, and return the result, which would in most cases not
  be equal to the passed size.
2017-08-08 13:33:43 -05:00
rallytime
ccf790a83f Update all references for moved functions to use "files" util
- fopen
- flopen
- fpopen
- safe_rm
- is_empty
- is_fcntl_available
2017-07-18 10:31:01 -06:00
rallytime
e512a29f08 Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/modules/state.py
  - salt/modules/yumpkg.py
  - salt/modules/zypper.py
  - salt/states/pkg.py
  - salt/version.py
  - tests/unit/config/test_config.py
  - tests/unit/modules/test_zypper.py
2017-06-28 11:31:53 -06:00
garethgreenaway
4fe273f78e Merge pull request #41969 from twangboy/win_unit_test_config
Fix `unit.config.test_config` for Windows
2017-06-28 08:18:07 -07:00
twangboy
98bc208db9 Fix paths, skip impossible 2017-06-27 17:31:23 -06:00
twangboy
1f497d8f78 Fix paths 2017-06-27 16:43:54 -06:00
rallytime
833b2145c4 Merge branch 'nitrogen' into 'develop'
No conflicts.
2017-06-01 17:15:36 -06:00
Dmitry Kuzmenko
64954d8e40 Fixed pylint errors. 2017-06-01 16:49:57 +03:00
Dmitry Kuzmenko
2b3276077c Py3: Fixed schema serialization. Enabled tests back. 2017-06-01 16:49:49 +03:00
Alexandru Bleotu
513254678f Fixed tests in test_api to not have a side-effect of changing the salt.config.DEFAULT_API_OPTS array 2017-05-17 17:21:15 +01:00
Alexandru Bleotu
4737b0d4fd Added test to prevent errors when the config root path includes the default root path 2017-05-17 17:21:15 +01:00
Pedro Algarvio
abe608d739
Drop @patch usage 2017-04-28 13:36:42 +01:00
Pedro Algarvio
61003bca0a
Take care of resource leakage on tests 2017-04-04 18:58:20 +01:00
Pedro Algarvio
e6f43b46c0
Import from the original modules 2017-04-04 18:58:20 +01:00
Pedro Algarvio
8031ac0209
Move mixins to tests.support.mixins.
The adapted config mixin get config methods are not static methods
2017-04-04 17:29:34 +01:00
rallytime
2222e1cae9 Merge branch '2016.11' into 'develop'
Conflicts:
  - salt/modules/napalm_network.py
  - tests/integration/states/test_archive.py
  - tests/integration/states/test_file.py
  - tests/unit/modules/test_docker.py
2017-03-21 10:19:52 -06:00
rallytime
f4d4768a6d Merge branch '2016.3' into '2016.11'
Conflicts:
  - salt/utils/__init__.py
2017-03-20 11:08:28 -06:00
Ivan Babrou
af1545deed
Use the first address if cannot connect to any
This fixes #39995. The previous work happened in #39289.
2017-03-18 21:09:16 -07:00
Pedro Algarvio
0b41b92d7d
Use salt.utils.versions instead of distutils.version 2017-03-08 19:22:33 +00:00
Pedro Algarvio
40a64191a1
Absolute imports and A LOT of code cleanup. 2017-03-01 01:33:07 +00:00
Pedro Algarvio
3beb3fb801
Move whatever we need from salttesting to salt.
Let's drop the salttesting dependency cycle.
2017-02-28 22:52:49 +00:00
rallytime
b4366103a6 Merge branch '2016.11' into 'develop'
Conflicts:
  - .pylintrc
  - .testing.pylintrc
  - salt/fileclient.py
  - salt/minion.py
  - salt/modules/docker.py
  - salt/modules/win_iis.py
  - salt/states/docker.py
  - salt/states/file.py
  - salt/utils/__init__.py
  - tests/integration/modules/test_sysmod.py
2017-02-27 15:11:37 -07:00
Pedro Algarvio
7fff27627a
Code cleanup 2017-02-24 00:49:32 +00:00
Pedro Algarvio
15af4c9728
Test filenames conformity. Adjust for pytest. 2017-02-23 23:19:42 +00:00
rallytime
7b9b3f700d Merge branch '2016.3' into '2016.11'
Conflicts:
  - salt/modules/dockerng.py
  - salt/states/dockerng.py
2017-02-22 16:27:08 -07:00
Pedro Algarvio
04b4d0947e
Disable tests on Py3.
The order of attributes is sketchy under Py3 and this code will be
deprecated.
2017-02-17 20:48:55 +00:00
Ivan Babrou
e8a2cc0488
Do no try to connect to salt master in syndic config test 2017-02-14 11:16:32 -08:00
rallytime
609e6e4b23 Merge branch '2016.11' into 'develop'
Conflicts:
  - salt/config/__init__.py
  - salt/modules/win_lgpo.py
  - salt/utils/aws.py
  - tests/unit/utils/schema_test.py
2017-02-09 10:29:40 -07:00
rallytime
f6aad99db2 Merge branch '2016.3' into '2016.11'
Conflicts:
  - salt/loader.py
  - salt/output/highstate.py
  - salt/runners/fileserver.py
2017-02-08 16:57:54 -07:00
Erik Johnson
1b9217d636 Update jsonschema tests to reflect change in jsonschema 2.6.0 (#39260)
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.
2017-02-08 16:51:56 -07:00
Stefano Pogliani
23468cbcd1 Apply glob pattern to file_roots and pillar_roots (master & minion).
Implements #38736
2017-01-23 23:30:34 +00:00
rallytime
3f74d697b9 Merge branch '2016.11' into 'develop'
Conflicts:
  - pkg/windows/build_pkg.bat
  - salt/modules/archive.py
2017-01-20 12:07:19 -07:00
rallytime
64d866f7ab Merge branch '2016.3' into '2016.11'
No conflicts.
2017-01-17 11:44:26 -07:00
rallytime
05587201b6 Pylint fix: add line at end of file 2017-01-17 10:26:43 -07:00
rallytime
fa01367599 Keep a copy of the DEFAULT_API_OPTS and restore them after the test run
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.
2017-01-11 10:35:55 -07:00
rallytime
2ad07634d9 Test clean up 2017-01-10 11:35:48 -07:00
rallytime
fd2ee7db30 Add some simple unit tests for salt.config.api_config function
This will help prevent regressions in this area as discussed in
PR #38527.
2017-01-09 16:44:48 -07:00
Mike Place
6646a95c1e Merge pull request #38490 from eradman/cloud_config
Change map and profile extends merge strategy to use recursive update
2017-01-05 16:35:41 -07:00
Alexandru Bleotu
54e41b16a5 Updated config_test tests to use CONFIG_DIR and not /etc/salt 2017-01-05 17:31:40 +00:00
Eric Radman
3ec910cf34 Change map and profile extends merge strategy to use recursive update
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.
2017-01-04 14:11:53 -05:00
rallytime
627242ab5d Merge branch '2016.3' into '2016.11'
Conflicts:
  - tests/unit/config/config_test.py
2016-12-09 11:45:14 -07:00
Denys Havrysh
cd0154ee93 Master config includes may contain errors and be safely skipped 2016-12-08 15:58:44 +02:00