Commit Graph

24 Commits

Author SHA1 Message Date
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
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
Pedro Algarvio
1e2753c875
Fix imports after renames 2017-02-23 23:19:43 +00:00
kstreee
51972d0724 Removes a redundant test case after removed 'batch' in 'netapi'. 2017-02-10 07:12:22 +00:00
kstreee
28f793caac Fix missing first data in stream when subscribing stream using a function 'read_async'. 2016-08-02 07:37:25 +00:00
Colton Myers
d82d7645c9 Merge remote-tracking branch 'upstream/2015.2' into merge-forward-develop
Conflicts:
    salt/modules/cmdmod.py
    salt/modules/debian_ip.py
    salt/modules/drac.py
    salt/modules/rpm.py
    salt/returners/postgres_local_cache.py
2015-03-19 16:13:16 -06:00
Thomas Jackson
205787c256 Add timeout to saltnado's event listener
Fixes #21707

The issue is basically that the master has seen N minions-- and not all N are currently connected. The publish job returns to the salt-api that N minions got the job-- and it dutifilly waits for all the returns. With this we use the same ping timeout that the CLI does while waiting for returns. So once all minions are no longer running the job we will return.
2015-03-17 19:17:32 -07:00
Pedro Algarvio
1a779fd51c Py3 compatibility fixes 2015-01-30 22:25:05 +00:00
Pedro Algarvio
60f215f191 Add from __future__ import absolute_import 2015-01-30 22:25:04 +00:00
Colton Myers
dc43840cee Merge branch '2014.7' into merge-forward
Conflicts:
	salt/modules/glusterfs.py
	salt/modules/macports.py
	salt/modules/makeconf.py
	salt/modules/mdadm.py
	salt/modules/smartos_vmadm.py
	salt/modules/zypper.py
	salt/utils/event.py
	tests/integration/netapi/rest_tornado/test_app.py
	tests/unit/netapi/rest_tornado/test_handlers.py
2014-11-21 12:05:32 -07:00
Thomas Jackson
0a1b88e6b5 Change all saltnado asserts to unittest asserts. This way when there is a failure you get nice pretty printouts! 2014-11-20 18:35:41 -08:00
Pedro Algarvio
0c50d789b7 The imports actually work so shut up PyLint! 2014-11-20 18:22:19 +00:00
Pedro Algarvio
21da23c070 Fix the class name 2014-11-20 17:35:42 +00:00
Pedro Algarvio
5a3fead6de Allow the tests to be properly skipped 2014-11-20 17:16:09 +00:00
Pedro Algarvio
d651788dff Allow the test cases to be properly skipped 2014-11-20 16:40:48 +00:00
Thomas Jackson
6f0552c9e1 Pylint fixes 2014-11-13 09:33:14 -08:00
Thomas Jackson
ebfee14fda Add test for using a Future in multiple "Any" futures 2014-11-13 08:36:28 -08:00
Thomas Jackson
4b8ac6a9e3 Add tests for auth handler
break unit tests for handlers into a separate file
Misc error handling fixes in Login handler
2014-11-13 08:36:26 -08:00
Thomas Jackson
6245c27391 Add tests for deserialize (and fix a few bugs in there)
More cleanup of websockets separation
2014-11-13 08:36:26 -08:00
Thomas Jackson
ecbd269eda Move future testing out of event listener test class 2014-11-13 08:36:26 -08:00
Thomas Jackson
ecefbb91dc Add tests for Any Futures
move eventlistener callbacks into the class
2014-11-13 08:36:26 -08:00
Thomas Jackson
3816236e26 Add test for event you don't want 2014-11-13 08:36:26 -08:00
Thomas Jackson
257a73fb69 Add first tests for rest_tornado! 2014-11-13 08:36:26 -08:00