Commit Graph

1292 Commits

Author SHA1 Message Date
Gareth J. Greenaway
132b56d785 Updating mount to allow opts in the state file to be removed and have the volume remounted 2017-09-13 10:30:15 -07:00
Mike Place
1a81663e46 Merge pull request #43302 from lyft/upstream-boto_cloudfront
Upstream boto_cloudfront execution and state modules
2017-09-12 10:10:20 -06:00
Aneesh Agrawal
2e9f1999f6 Upstream boto_cloudfront execution and state modules
AWS recently added support for tagging CloudFront distributions,
which allows us to start managing them via Salt
as we can insert a Salt-controlled identifier as a `Name` tag.
(CloudFront distributions get unique IDs generated by AWS,
which we can't predict and thus use to manage them idempotently.)
2017-09-11 23:36:31 +00:00
Mike Place
da16b6670a Merge pull request #42752 from skizunov/develop4
Add config option to ensure jid is unique
2017-09-11 13:38:30 -06:00
rallytime
e11aa7e5ef Adjust test mocking to handle __utils__['files.is_text_file'] 2017-09-11 10:25:00 -04:00
rallytime
1279556873 Move salt.utils.istextfile to salt.utils.files.is_text_file
Moves the original function to `salt.utils.files.py`, adds a deprecation
warning to the original function, and updates all of the istextfile
references in salt code.
2017-09-11 10:21:43 -04:00
Sergey Kizunov
3c58717c58 Add config option to ensure jid is unique
Having a jid that is occasionally not unique (eg two processes creating
jobs at about the same time) causes problems in my usage due to
job tracking assuming unique jids. Add a config option called `unique_jid`
that will enforce unique jids, but will change the jid format by
appending an underscore and the process id.

Signed-off-by: Sergey Kizunov <sergey.kizunov@ni.com>
2017-09-07 13:25:35 -05:00
Mike Place
a414325a82 Merge pull request #43070 from lyft/support-states-returning-a-list-of-comments
Support states returning a list for ret['comment']
2017-09-05 16:19:26 -06:00
Mike Place
9c57869234 Merge pull request #43276 from rallytime/utils-state-moves
Move state-related utils to salt.utils.state.py
2017-09-05 14:20:08 -06:00
Aneesh Agrawal
ba63920874 Support states returning a list for ret['comment']
Some states are complicated and multiple subparts,
or maybe cross-call into __states__ if they manage subresources.
In these cases, they will have multiple comments.
Make this more ergonomic by supporting a list of strings as the
value for ret['comment'] in state returns and documenting this.
By joining comments on newlines, it is possible to combine
single-line and multi-line comments cleanly, as opposed to e.g. commas.

The driving impetus for this is some of the boto modules.
An update to the boto_sqs module is included as an example.

Add a check that outgoing state return data has the right shape,
and add a testcase as well.
Fix the NPM state tests and the saltmod runner & wheel state functions
to comply with the prescribed format.
2017-09-05 19:52:42 +00:00
rallytime
4322f009cf Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/auth/__init__.py
  - salt/auth/ldap.py
  - salt/grains/metadata.py
  - salt/master.py
  - salt/modules/apache.py
  - salt/modules/dockermod.py
2017-09-01 16:37:29 -04:00
rallytime
d891433214 Adjust test mocking to handle __utils__['state.check_result'] 2017-09-01 16:09:59 -04:00
rallytime
26410c662f Update some salt.utils.x paths for moved util functions
Through merge forwards, some of the old-style paths have made their
way into develop. This PR corrects some of these instances on the more
popular functions.
2017-08-29 16:24:47 -04:00
Nicole Thomas
df18a89836 Lint: Remove unused import 2017-08-28 09:21:52 -04:00
Erik Johnson
7279f98e92 docker_image states: Handle Hub images prefixed with "docker.io/"
On some platforms, for reason which I do not yet grok, images pulled
from the Hub are prefixed with "docker.io/". This causes the
docker_image states to fail unless the user manually adds "docker.io/"
before the image name.

This commit adds a new function called "docker.resolve_tag" which
disambiguates this variance and allows images to be specified without
the "docker.io/" prefix.

Resolves #42935.
2017-08-25 00:06:28 -05:00
Andy Bulford
89ac3f9092 Merge branch 'develop' into add-docker-network-ipam-support 2017-08-23 23:02:07 +01:00
Mike Place
ae5d3ffe99 Merge pull request #43013 from amendlik/kernelpkg-remove
Add kernelpkg functions to remove kernel packages
2017-08-23 11:47:58 -06:00
Andy Bulford
49f4f990c3 Merge branch 'develop' into add-docker-network-ipam-support 2017-08-22 09:44:21 +01:00
Mike Place
3940084df9 Merge branch 'develop' into postgres-valid-until 2017-08-21 16:16:18 -06:00
Mike Place
b071384611 Merge pull request #42977 from redmatter/fix-broken-docker-network-create
Remove check_duplicates from create_network call
2017-08-21 15:59:50 -06:00
Mike Place
a063ddbaad Merge branch 'develop' into kernelpkg-remove 2017-08-21 14:18:22 -06:00
rallytime
6ca3607770 Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/engines/slack.py
  - salt/modules/win_pkg.py
  - salt/utils/versions.py
2017-08-18 09:28:26 -04:00
Andrew Bulford
d4507f1a08 Re-use container connection logic on net creation
Re-factoring a little following the previous commit, so that the same
container connection logic can be used in both places, rather than it
being repeated.
2017-08-18 13:36:46 +01:00
Andrew Bulford
d59d0adfeb Add ability to re-configure docker networks
Previously any changes to network states wouldn't result in any change
to the network when the state was applied.  This was less of an issue
the only attributes you could set for a network were its name and
driver, but with the recent support for driver options and now IPAM
config being added, it's useful for the state to be able to modify the
network if it needs to.

The Docker API doesn't provide any facility to modify an existing
network, so the only option is to recreate it with the new options,
which means disconnecting and reconnecting all containers.

Fixes #43047
2017-08-18 13:36:14 +01:00
Andrew Bulford
ec2a8a82c8 Add support for IPAM config in Docker networks
Fixes #43047
2017-08-18 13:35:48 +01:00
Andrew Bulford
8048fbcfa7 Remove check_duplicates from create_network call
The create_network function in dockermod.py doesn't take a
check_duplicates argument so passing it here causes a failure.

Fixes #42976
2017-08-18 13:26:33 +01:00
Adam Mendlik
f87fe54b7b Fix linter errors for kernelpkg modules and states 2017-08-17 11:27:57 -06:00
rallytime
8a0f948e4a Merge branch '2016.11' into '2017.7'
Conflicts:
  - salt/utils/versions.py
  - tests/unit/modules/test_boto_elb.py
  - tests/unit/modules/test_boto_secgroup.py
  - tests/unit/states/test_boto_vpc.py
2017-08-17 09:10:31 -04:00
Andrew Bulford
d3f792d47d Remove check_duplicates from create_network call
The create_network function in dockermod.py doesn't take a
check_duplicates argument so passing it here causes a failure.

Fixes #42976
2017-08-16 14:05:31 +01:00
Nicole Thomas
abac36d907 Merge pull request #42450 from pwdng/ldap_fix
Use OrderedSet instead of set to allow handling of OpenLDAP X-ORDERED…
2017-08-15 17:30:35 -04:00
Nicole Thomas
275122d04e Merge pull request #42834 from terminalmage/salt.utils.versions
Move 4 functions from salt.utils to salt.utils.versions
2017-08-15 17:28:24 -04:00
Mike Place
4f406602cf Merge branch 'develop' into ldap_fix 2017-08-15 12:36:47 -06:00
rallytime
5597b1a30e Skip 2 failing tests in Python 3 due to upstream bugs 2017-08-15 14:26:44 -04:00
rallytime
6ae1111295 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
moto versions >= 1.0.0 have changed the way the mocked connections through
boto are handled with the @mock_ec2 decorator. They use the boto3 connection
method. However, since we are still using boto in many places, we need to use
the new @mock_ec2_deprecated decorator instead to handle the boto connection
functions for the unit tests.

Versions of moto < 1.0.0 are not Python 3 compatible, so salt-jenkins should
be installing newer versions of moto for those tests. Unfortunately, we cannot
install an older version of moto for Python2 that use the original @mock_ec2 call
and also import the @mock_ec2_deprecated function for newer versions of moto
simultaneously as the @mock_ec2_deprecated function doesn't exist in older
versions of moto.
2017-08-15 14:22:59 -04:00
Erik Johnson
2b76029ded Move 4 functions from salt.utils to salt.utils.versions
This moves the following functions from salt.utils to salt.utils.versions:

- warn_until
- kwargs_warn_until
- compare_versions (as salt.utils.versions.compare)
- version_cmp
2017-08-15 12:53:57 -05:00
garethgreenaway
8b48341a36 Merge branch 'develop' into fixing_beacons 2017-08-15 09:00:09 -07:00
Mike Place
db32d81d8a Merge pull request #42917 from rallytime/merge-develop
[develop] Merge forward from 2017.7 to develop
2017-08-14 21:53:18 -06:00
Nicole Thomas
4fcdab3ae9 Merge pull request #42657 from nhavens/2017.7
back-port #42612 to 2017.7
2017-08-14 15:42:25 -04:00
garethgreenaway
bbaae409b5 Merge branch 'develop' into postgres-valid-until 2017-08-14 12:09:43 -07:00
Gareth J. Greenaway
71963cccce fixing more lint issues 2017-08-14 12:04:38 -07:00
Gareth J. Greenaway
23d572199a Adding test_beacon for the beacon state module. Updating beacon state module documentation. Removing over aggressive code in the validate function for service beacon. 2017-08-14 12:04:38 -07:00
rallytime
78e744bda4 Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/client/mixins.py
  - salt/fileclient.py
  - salt/modules/status.py
  - tests/integration/states/test_npm.py
2017-08-14 14:21:17 -04:00
Adam Bolte
7848189ad4
Implement rbenv state module test mode checks
Fixes #42815 and updates unit tests.
2017-08-14 19:13:42 +10:00
Gilbert Gilb's
3c136e3138 Add support for PostgreSQL password expiration. 2017-08-12 13:48:12 +02:00
rallytime
43643227c6 Skip 2 failing tests in Python 3 due to upstream bugs 2017-08-11 12:57:39 -04:00
rallytime
3055e17ed5 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
moto versions >= 1.0.0 have changed the way the mocked connections through
boto are handled with the @mock_ec2 decorator. They use the boto3 connection
method. However, since we are still using boto in many places, we need to use
the new @mock_ec2_deprecated decorator instead to handle the boto connection
functions for the unit tests.

Versions of moto < 1.0.0 are not Python 3 compatible, so salt-jenkins should
be installing newer versions of moto for those tests. Unfortunately, we cannot
install an older version of moto for Python2 that use the original @mock_ec2 call
and also import the @mock_ec2_deprecated function for newer versions of moto
simultaneously as the @mock_ec2_deprecated function doesn't exist in older
versions of moto.
2017-08-10 16:40:11 -04: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
f20f3742cb Merge branch '2017.7' into 'develop'
Conflicts:
  - tests/unit/test_crypt.py
2017-08-07 10:43:06 -04:00
Mike Place
547ada9418 Merge pull request #42612 from nhavens/develop
fix for issue #42611
2017-08-03 17:37:05 -05:00
Mike Place
b8acf9f6ec Merge pull request #42624 from lyft/modernize-boto-sqs-modules
Modernize boto_sqs execution and state modules
2017-08-03 17:34:18 -05:00