- Docker 1.12 on CemtoOS7 does not output status line anymore.
- Do not rely on Docker output to verify if the image was the latest.
(cherry picked from commit 5f3c887c38)
- Published port defined as IP::PORT where parsed in expected.parameters
as 0.0.0.0::PORT leading to changed==True on every playbook run.
(cherry picked from commit 64f63a3cac)
* ensure locale for solaris fact gathering
fixes issue with locale interfering with proper reading of decimals
fixes#24542
* fixed typoe
(cherry picked from commit e558ec19cd)
* Fix expect for python 3
- Change generator next to python 3 compatible
- Added tests for expect
* Add pexpect to integration.txt
- add pexpect library to requirements for integration tests
* Use ansible_python_interpreter in integration tests for expect
* Use double-quotes for expect integration tests
* Cast user input to string for expect integration tests
* Cast user input to string earlier in expect integration tests
* Use ansible.module_utils.six.moves input for expect integration tests
* Fix yamllint errors in the expect test
* Use cat to trigger timeout for expect integration tests
* Use realpath filter in expect integration tests
(cherry picked from commit daada2000c)
* replace deprecated cmp() with custom conditional
cmp is not present in Python3 but several modules use it
Reference 24756
(cherry picked from commit 5240e5a230)
Reads the directory_mode param as 'raw' type to mirror the same behavior as mode.
This'll cause non-quoted values to be represented as an int, rather than a str.
Covered by 'assert recursive copied directories mode' test.
Fixes#24202
(cherry picked from commit 8d8cfb5fcd)
* Bugfix: Directories in /etc/skel will get users ownership when home dir is created
* Bugfix: Chmod works now recursive for the home dir
(cherry picked from commit 0dc5e8bf71)
* replace deprecated cmp() with custom conditional
cmp is not present in Python3 but several modules use it
Reference 24756
(cherry picked from commit 1e4b227e6f)
When only looking at the failed state of the TaskResult, certain failures
cause the linear strategy to fail out sooner than it should and not execute
the always portion of blocks.
Fixes#24301
(cherry picked from commit f217dae938)
Fix converts commit_timeout to string as
Elementree.SubElement requires text as string.
Fixes#24611
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 2f955e7da8)
When checksums of local and remote files match, and when follow = True,
determine if remote destination is a symlink. If so, de-reference it and
pass the link target to the file module as 'dest'.
This change fixes an edge case in file copy behavior when:
- 'dest' is a symlink to some other file ('realdest')
- follow = True
- the checksums of the source file, 'src', and the symlink target, 'realdest',
match.
Because the checksums match, the copy module is skipped and the file module
is invoked directly with 'dest' = the symlink, and 'src' = the source of the
copy module, whether that source is present on the target machine or not.
When 'src' doesn't exist on the target machine, this leads to an error that
looks like this because it can't change the target of the symlink:
TASK [copy] ********************************************************************
fatal: [192.168.56.101]: FAILED! => {"changed": false, "checksum": "f572d396fae9206628714fb2ce00f72e94f2258f", "failed": true, "gid": 1000, "group": "ajdecon", "mode": "0777", "msg": "src file does not exist, use \"force=yes\" if you really want to create the link: /tmp/issue1568/dest_dir/source", "owner": "ajdecon", "path": "/tmp/issue1568/dest_dir/dest", "size": 8, "src": "source", "state": "link", "uid": 1000}
When the path 'src' *does* exist on the target machine, the file module makes
this the symlink "dest -> src" instead of "dest -> realdest"... even if the
checksum of 'src' on the target machine is different from the checksum of 'src'
on the machine where Ansible is running.
(cherry picked from commit 2f74f6738d)
For playbook base objects, when dumping attributes via dump_attrs() an
attribute like loop_control is a class. Using the default serialization
for these is slow and consumes a lot of memory. Since LoopControl is also
based on the Base class, we can use serialize() instead and save a lot of
resources.
This also adds a from_attrs() complimentary method to nicely turn the
dumped attrs back into proper field attributes.
Fixes#23579
(cherry picked from commit 78478e80ea)