Commit Graph

374 Commits

Author SHA1 Message Date
Pedro Algarvio
3adf8e286e
Some more test suite run fixes
* Allow more time for the daemons to react to the signals sent
* Fix configuration
* More logging
2016-05-23 13:57:21 +01:00
twangboy
66e3624f2b
Fix YAML error on minion start 2016-05-23 13:56:56 +01:00
Pedro Algarvio
57fbe717b9
This seems like a cleaner shutdown 2016-05-23 13:56:07 +01:00
twangboy
fdc3835318
Fix some lint 2016-05-23 13:56:07 +01:00
twangboy
766549ed65
Remove type 2016-05-23 13:56:06 +01:00
twangboy
b60bc974a0
Fix clean function for windows 2016-05-23 13:56:06 +01:00
Pedro Algarvio
fca093580c
Disable logging forwarding for now. 2016-05-23 13:56:06 +01:00
Pedro Algarvio
84e04884aa
errno typo 2016-05-23 13:56:06 +01:00
Pedro Algarvio
3aae5a9c28
Check for connection reset errors on windows 2016-05-23 13:56:06 +01:00
Pedro Algarvio
7a9146981e
CLI test config fixes 2016-05-23 13:56:05 +01:00
Pedro Algarvio
4db35067e1
Refactor the get script path routine into a mix in class 2016-05-23 13:56:05 +01:00
Pedro Algarvio
11793aff30
More test scripts fixes 2016-05-23 13:56:05 +01:00
Pedro Algarvio
a51e69f001
Make the generated scripts more windows friendly 2016-05-23 13:56:04 +01:00
Pedro Algarvio
0a40765136
Better exception handling 2016-05-23 13:56:04 +01:00
Pedro Algarvio
d0c79c4333
Check all ports on the salt-master 2016-05-23 13:56:04 +01:00
Pedro Algarvio
004c7f340b
Disable minion keep alive on linux 2016-05-23 13:56:04 +01:00
twangboy
893894ee70
Add handling to the script template for windows 2016-05-23 13:56:03 +01:00
Pedro Algarvio
e8d3713e6c
More windows friendly. Don't rely on PYTOHNPATH 2016-05-23 13:56:03 +01:00
Pedro Algarvio
c6612482c0
Windows raises EACCES 2016-05-23 13:56:03 +01:00
Pedro Algarvio
eb82b8d229
Remove unnecessary logic 2016-05-23 13:56:03 +01:00
Pedro Algarvio
177d9c4ead
Don't traceback if the process is no longer running. 2016-05-23 13:56:03 +01:00
Pedro Algarvio
e1e1aeb3d7
Keep ports open throughout the tests execution 2016-05-23 13:56:02 +01:00
Pedro Algarvio
5e014d59eb
We're not in a IOLoop 2016-05-23 13:56:02 +01:00
Pedro Algarvio
0a3f5dfbdd
Make sure we're not getting the same port over and over again. 2016-05-23 13:56:02 +01:00
Pedro Algarvio
84861197bb
VT is not available for windows 2016-05-23 13:56:02 +01:00
Pedro Algarvio
50a4fd1dd1
Lint fixes 2016-05-23 13:56:02 +01:00
Pedro Algarvio
f69dc8ef7f
Fix variable reference 2016-05-23 13:56:02 +01:00
Pedro Algarvio
ca93b6421c
CLI daemons improvements 2016-05-23 13:56:01 +01:00
Pedro Algarvio
c264600738
Provide some feedback of whats happening. 2016-05-23 13:56:01 +01:00
Pedro Algarvio
184c3c83ad
Run the test daemons from CLI
This should help running the test suite on Windows machines
2016-05-23 13:56:00 +01:00
Mike Place
d5a3e309bf Event assert (#33262)
* Initial POC

* Allow the queue to fill by waiting for the lag in IPC

* Add docs

* Add run_tests

* Add reactor to tests
2016-05-19 13:41:23 -06:00
plastikos
0efbbcd17f * Improve init script: specifically manage salt configurations rather than arbitrary salt processes (#32666)
* * Improve init script: specifically manage salt configurations rather than arbitrary salt processes

Unfortunately SysV init scripts tend to rummage through PIDs filtering for
appropriate processes to manage.  Unfortunately the filters are usually weak
and don't account for similar processes run by other users, PIDs of dead
processes being re-used for completely different executables, etc..  These
weaknesses can result in killing unrelated processes with potentially serious
results.

These improvements to the SysV init script is a complete rewrite with the
following improvements:

  * Specifically manage individual salt configurations rather than looking for
    salt minion-like processes.
  * Obtain salt minion information from the salt configuration - use the
    information to manage the specifically configured process.
  * Drop all of the platform-specific helper functions that allow the
    previously-mentioned weaknesses.

    + Unfortunately this means that the output information may not match the
      specific platform (this could easily be corrected).

  * Now can manage multiple salt processes started by different users

    + Unfortunately starts/stops/restarts as a group and is unable to manage
      them both as a group or as individual processes (this could easily be
      corrected)

The new initscript also allows various control variables to be overridden by
environment variables or through settings put in ``/etc/sysconf/salt`` or
``/etc/default/salt``.

:SALTMINION_DEBUG: Dump each line expansion before execution, output system
                   information on failure.  Default: unset

:SALTMINION_BINDIR: Location of ``salt-minion``, ``salt-call`` and other
                    executables.  Default: ``/usr/bin``

:SALTMINION_SYSCONFDIR: The parent directory for the ``salt`` configuration
                        directory and the ``sysconfig`` or ``default``
                        directory.

* Add lines that went missing in the rebase+squash
2016-05-09 10:57:13 -07:00
Nicole Thomas
216d9fdc9a [develop] Merge forward from 2016.3 to develop (#32494)
* fix sorting by latest version when called with an attribute

* remove reference to master_alive_check

* Fixes saltstack/salt#28262

* Resolve memory leak in authentication

* outputter virt_list does not exist anymore

* Update proxmox documentation

* Fix documentation on boto_asg and boto_elb modules and states

* modules.win_timezone: don't list all zones in debug log

* Correcty index glusterfs bricks

Fixes issue #32311

* Cleaner deprecation process with decorators

* Add deprecation decorator scaffold

* Capture type error and unhandled exceptions while function calls

* Aware of the current and future version of deprecation

* Implement initially is_deprecated decorator

* Add an alias for the capitalization

* Fix capitalization easier way

* Remove an extra line

* Add successor name to the deprecation decorator.

* Granulate logging and error messages.

* Implement function swapper

* Raise later the caught exception

* Clarify exception message

* Save function original name

* Remove an extra line

* Hide an alternative hidden function name in the error message, preserving the error itself

* Rename variable as private

* Add a method to detect if a function is using its previous version

* Message to the log and/or raise an exception accordingly to the status of used function

* Log an error along with the exception

* Add internal method documentation

* Add documentation and usage process for decorator "is_deprecated"

* Add documentation and process usage for the decorator "with_deprecated"

* Hide private method name

* Fix PEP8, re-word the error message

* Deprecate basic uptime function

* Add initial decorator unit test

* Rename old/new functions, mock versions

* Move frequent data to the test setup

* Add logging on EOL exception

* Rename and document high to low version test on is_deprecated

* Implement a test on low to high version of is_deprecated decorator

* Add a correction to the test description

* Remove a dead code

* Implement a test for high to low version on is_deprecated, using with_successor param

* Correct typso adn mistaeks

* Implement high to low version with successor param on is_deprecated

* Setup a virtual name for the module

* Implement test for with_deprecated should raise an exception if same deprecated function not found

* Implement test for with_deprecated an old function is picked up if configured

* Correct test description purpose

* Implement test with_deprecated when no deprecation is requested

* Add logging test to the configured deprecation request

* Add logging testing when deprecated version wasn't requested

* Implement test EOL for with_deprecated decorator

* Correct test explanation

* Rename the test

* Implement with_deprecated no EOL, deprecated other function name

* Implement with_deprecated, deprecated other function name, EOL reached

* Add test description for the with_deprecated + with_name + EOL

* Fix confusing test names

* Add logging test to the is_deprecated decorator when function as not found.

* Add more test point to each test, remove empty lines

* Bugfix: at certain conditions a wrong alias name is reported to the log

* Fix a typo in a comment

* Add test for the logging

* Disable a pylint: None will _never_ be raised

* Fix test for the deprecated "status.uptime" version

* Bugfix: Do not yank raised exceptions

* Remove unnecessary decorator

* Add test for the new uptime

* Add test for the new uptime fails when /proc/uptime does not exists

* Rename old test case

* Skip test for the UTC time, unless freeze time is used.

* Fix pylint

* Fix documentation

* Bugfix: proxy-pass the docstring of the decorated function

* Lint fix

* Fixes saltstack/salt#28262 for 2015.5 branch

* Update master config docs

* Improve git_pillar documentation/logging

* Add note about different behavior of top file in git_pillar

* Make log entry for a missing pillar SLS file more accurate for git_pillar

* FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.

* FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.

* Update glusterfs_test to be inline with #32312

* Fix salt-cloud paralell provisioning

Closes #31632

* Ignore Raspbian in service.py __virtual__ (#32421)

* Ignore Raspbian in service.py __virtual__

This prevents more than one execution module from trying to load as the
service virtual module.

Refs: #32413

* pack __salt__ before loading provider overrides

We can (and should) pack here since we're just packing a reference to the
object. __salt__ needs to be available when we're loading our provider
overrides

* Fix broken __salt__ dict in provider override

Using ret.items() here sets ``__salt__`` to its items (tuple containing
function name and reference), breaking usage of ``__salt__`` inside
overridden functions.

* Merge #32293 with test fixes (#32418)

* Fix issue #11497

* Remove check for working directory presence in tests

* Fix Domainname introspection

Default value needs to be extracted from the container itself,
because dockerd set Domainname value when network_mode=host.

* Add pgjsonb_queue to queue doc index

* Pylint fixes

* Pass parser options into batch mode

Resolves #31738

* Changed the target file in file.symlink test (#32443)

* Argument name in docs should match actual arg name (#32445)

Fixes #31851

* tests.integration: bypass MacOS TMPDIR, gettempdir (#32447)

Updates 0edd532, 8f558a5.

When logging in as root over `ssh root@host`, `$TMPDIR` and
`tempfile.gettempdir()` are both set to a variation of:
```
/private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/
```
When logging in as root over `sudo -i`, `$TMPDIR` is unset and
`tempfile.gettempdir()` is set to `/tmp`.

My guess is that the second case is an unintended or uncorrected omision
by Apple as they have introduced the longer, randomized temp path in a
recent version of MacOS.

* Issue #28706: Fix state user.present behavior. (#32448)

- As mentionned in issue #28706, state user.present no longer remove
      user from groups if the keyword 'groups' with empty value '[]' is not
      explicitly set, salt will assume current groups are still wanted.

* tests.integration: fix 4230c8a

* Move the tables of virtual modules to individual documentation pages

* Add new doc pages to toctree

* Add external ref to windows package manager docs

* Improve docstrings

* Add documentation on virtual module provider overrides to the module docs

* Clarify the scope of the provider param in states.

* Add link to provider override docs to all package providers

* Add link to provider override docs to all service providers

* Add link to provider override docs to all user providers

* dd link to provider override docs to all shadow providers

* Add link to provider override docs to all group providers

* Backport 31164 and 31364 (#32474)

* Don't send REQ while another one is waiting for response.

The message has to be removed from the queue the only *after* it's
already processed to don't confuse send() functionality that expects
empty queue means: there's no active sendings.

* Fixed zeromq ReqMessageClient destroy

* Add link to provider override docs to opkg.py

This is a companion to https://github.com/saltstack/salt/pull/32458, but
this module was not added until the 2016.3 branch, so the documentation
is being updated there for this module.

* Add documentation for some master/minion configs (#32454)

Refs #32400

Adds docs for:

- cli_summary
- event_return_queue
- event_return_whitelist
- event_return_blacklist
- file_recv_max_size
- fileserver_followsymlinks
- fileserver_ignoresymlinks
- fileserver_limit_traversal

* Automatically detect correct MySQL password column for 5.7 and fix setting passwords (#32440)

* Automatically detect MySQL password column

* Fix changing password in MySQL 5.7

* Fix lint test

* Fix unit tests (?)

They will still fail if "authentication_string" is legitimately the right column name, but I don't know what to do about that.

* Additional unit test fix

* Only unsub if we have a jid

Closes #32479
2016-04-11 17:07:15 -06:00
Justin Findlay
0edd532add tests.integration: TMPDIR on MacOS gives too long paths 2016-03-30 21:09:39 -06:00
Justin Findlay
c74c241831 tests.integration: use os.path.realpath
This reverts bf894c37, 6b99798b, and 4028d80e.  `os.path.realpath`
behaves identically to `salt.utils.abs_readlink` on the doc tests in
that function.
2016-03-30 21:09:39 -06:00
Thomas S Hatch
81d267bcfd try to change the test run to always clean the thindir 2016-03-24 10:40:23 -06:00
Justin Findlay
6b99798b1e tests.integration: use system tmpdir on darwin 2016-03-10 10:57:18 -07:00
rallytime
838dc12b77 Merge branch '2015.8' into '2016.3'
Conflicts:
  - salt/cli/daemons.py
  - salt/config/__init__.py
  - salt/exceptions.py
  - salt/pillar/foreman.py
  - salt/returners/local_cache.py
  - salt/states/saltmod.py
  - salt/utils/__init__.py
  - salt/utils/cloud.py

The merge conflicts in salt/cli/daemons.py are still present in this commit.
@s0undt3ch is going to resolve them after this commit.
2016-03-08 10:14:32 -07:00
rallytime
beb9d0fe84 Ensure all integration test classes and funcs are documented w/examples 2016-03-04 12:13:27 -07:00
Justin Findlay
8623c24335 add integration tests for minion blackout
Related to #30868.
2016-02-19 18:04:31 -07:00
Sergey Kizunov
793c0bef75 Fixed Windows salt-master memory leaks in logger
__process_multiprocessing_logging_queue:
- A leak was observed in this process on Windows. On Windows, creating a
new process doesn't fork (copy the parent process image). Due to this, we
need to setup extended logging inside this process. The leak was due to
the temp null and temp logging handlers being active which just store
messages but don't process them. Setting up extended logging removes
those handlers and fixes the leak (as well as properly dealing with
incoming logging messages).

setup_multiprocessing_logging:
- A leak was obversed in processes that used this on Windows. Similar
to above, due to lack of fork, the new process will have the temp null
and temp logging handlers enabled, causing the leak. In this function,
removing those handlers prevents the leak.

Signed-off-by: Sergey Kizunov <sergey.kizunov@ni.com>
2015-12-20 09:05:19 -06:00
Christophe Drevet-Droguet
f13e9435b1 loader test for custom grains 2015-11-18 22:08:24 +01:00
Mike Place
26fd2bc89e Merge pull request #28215 from s0undt3ch/features/signal-handling
Proper signal handling
2015-11-09 12:11:15 -07:00
rallytime
cded9ac01d Merge branch '2015.8' into 'develop'
Conflicts:
- salt/cloud/clouds/vmware.py
- salt/modules/freebsdpkg.py
- salt/modules/virtualenv_mod.py
- salt/states/boto_asg.py
- tests/integration/__init__.py
- tests/runtests.py
2015-11-06 09:34:31 -07:00
Pedro Algarvio
058cd00aea Name some more runtests daemon processes 2015-11-06 13:15:12 +00:00
Pedro Algarvio
9dc5533fae Name the test daemon processes for ps output 2015-11-06 13:15:12 +00:00
rallytime
eec9d69387 Merge branch '2015.5' into '2015.8'
Conflicts:
	salt/modules/virtualenv_mod.py
	salt/states/file.py
	tests/integration/__init__.py
2015-11-04 15:52:59 -07:00
twangboy
cf1e059be5 Fixed windows tests 2015-11-02 16:16:22 -07:00
Pedro Algarvio
10a9189d83 Merge remote-tracking branch 'upstream/2015.8' into hotfix/merge-forward-develop 2015-09-06 12:42:58 +01:00
Pedro Algarvio
00b9cc9a83 Only place salt's code root dir in sys.path, not anything above that 2015-09-03 10:49:01 +01:00