Bug 1484860

Summary: missing dependency of Ansible: python-passlib
Product: Red Hat Ansible Engine Reporter: Pavel Cahyna <pcahyna>
Component: ansibleAssignee: Pavel Cahyna <pcahyna>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: ovasik, tbowling
Target Milestone: ---Keywords: Extras
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ansible-2.3.2.0-2.el7_4 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-05 10:38:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pavel Cahyna 2017-08-24 12:28:06 UTC
Description of problem:
The Ansible rpm is mssing the python-passlib dependency (has it only as a build dependency for unit tests, but some functionality needs it as a runtime depenency)

Version-Release number of selected component (if applicable):
2.3.2.0-1.el7

How reproducible:
Easily

Steps to Reproduce:
1. test/runner/ansible-test integration -vvv posix/ci/ --start-at lookups

Actual results:
TASK [lookups : create a password (with salt) file] ****************************
task path: /root/rpmbuild/BUILD/ansible-2.3.2.0/test/integration/targets/lookups/tasks/main.yml:104
fatal: [testhost]: FAILED! => {
    "failed": true, 
    "msg": "An unhandled exception occurred while running the lookup plugin 'password'. Error was a <class 'ansible.errors.AnsibleError'>, original message: passlib must be installed to encrypt vars_prompt values"
}
        to retry, use: --limit @/root/rpmbuild/BUILD/ansible-2.3.2.0/test/integration/lookups-QUKGNg.retry

PLAY RECAP *********************************************************************
testhost                   : ok=21   changed=4    unreachable=0    failed=1   

NOTICE: To resume at this test target, use the option: --start-at lookups
NOTICE: To resume after this test target, use the option: --start-at loops
ERROR: Command "ansible-playbook lookups-QUKGNg.yml -i inventory -e @integration_config.yml -vvv" returned exit status 2.


Expected results:
test succeeds.

Additional info:
We actually have the package in Extras, so this is a matter of just including one Requires: line.

Comment 2 Pavel Cahyna 2017-08-24 14:10:12 UTC
another way to reproduce (without having the tests):
ansible -m debug -a msg="{{ lookup('password', '/dev/null encrypt=md5_crypt') }}"

Comment 4 Leos Pol 2017-08-28 09:12:23 UTC
# rpm -q ansible
ansible-2.3.2.0-2.el7.noarch
# rpm -q --requires ansible
/usr/bin/python2
PyYAML
config(ansible) = 2.3.2.0-2.el7
python(abi) = 2.7
python-crypto
python-httplib2
python-jinja2
python-paramiko
python-passlib
python-setuptools
python-six
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
sshpass
rpmlib(PayloadIsXz) <= 5.2-1
# yum info python-passlib | grep repo
Loaded plugins: product-id, search-disabled-repos, subscription-manager
From repo   : extras

Comment 6 errata-xmlrpc 2017-09-05 10:38:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2606