aci_config_rollback Attribute Error: NoneType object has no attribute read
SUMMARY Trying to compare to Cisco APIC Snapshots using aci_config_rollback module
ISSUE TYPE task path:
/data/tools/ansible/playbooks/roles/cisco.apic/tasks/compare_snapshots.yml:20
ESTABLISH LOCAL CONNECTION FOR USER: root
EXEC /bin/sh -c 'echo ~root && sleep 0'
EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710" && echo ansible-tmp-1559753113.2-180977196103710="echo /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/network/aci/aci_config_rollback.py
PUT /root/.ansible/tmp/ansible-local-4142tNAUms/tmpuI5x6D TO /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py
EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/ /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py && sleep 0'
EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py && sleep 0'
EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 113, in
_ansiballz_main()
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 105, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 48, in invoke_module
imp.load_module('main', mod, module, MOD_DESC)
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 309, in
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 273, in main
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 292, in get_preview
AttributeError: 'NoneType' object has no attribute 'read'
fatal: [localhost -> localhost]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 113, in \n _ansiballz_main()\n File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 105, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 48, in invoke_module\n imp.load_module('main', mod, module, MOD_DESC)\n File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 309, in \n File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 273, in main\n File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/main.py", line 292, in get_preview\nAttributeError: 'NoneType' object has no attribute 'read'\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
to retry, use: --limit @/data/tools/ansible/playbooks/roles/cisco.apic/tasks/compare_snapshots.retry
COMPONENT NAME aci_config_rollback
Snippet from module page:
name: Compare Snapshot Files
aci_config_rollback:
host: apic
username: admin
password: SomeSecretPassword
export_policy: config_backup
snapshot: run-2017-08-28T06-24-01
compare_export_policy: config_backup
compare_snapshot: run-2017-08-27T23-43-56
state: preview
delegate_to: localhost
ANSIBLE VERSION ansible 2.7.10 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Mar 26 2019, 22:13:06) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
CONFIGURATION [root@localhost tasks]# ansible-config dump --only-changed [root@localhost tasks]#
OS / ENVIRONMENT Target is Cisco APIC
STEPS TO REPRODUCE replace snapshot and compare_snapshot fields with your snapshot names
---
- name: Compare ACI Snapshots
hosts: localhost
gather_facts: true
- name: Compare APIC Snapshot
aci_config_rollback:
host: x.x.x.x
username: admin
password:
export_policy: config_backup
snapshot: run-2019-02-05T19-28-56
compare_export_policy: config_backup
compare_snapshot: run-2019-02-07T22-34-49
state: preview
validate_certs: no
delegate_to: localhost
register: snapshot_compare_result
- name: Print Snapshot Compare Results
debug:
msg: "{{ snapshot_compare_result }}"
EXPECTED RESULTS Expected to see snapshot comparison results
ACTUAL RESULTS Error - MUDULE FAILURE
task path: /data/tools/ansible/playbooks/roles/cisco.apic/tasks/compare_snapshots.yml:20
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710 `" && echo ansible-tmp-1559753113.2-180977196103710="` echo /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710 `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/network/aci/aci_config_rollback.py
<localhost> PUT /root/.ansible/tmp/ansible-local-4142tNAUms/tmpuI5x6D TO /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/ /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python2 /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 113, in <module>
_ansiballz_main()
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 105, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py", line 48, in invoke_module
imp.load_module('__main__', mod, module, MOD_DESC)
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py", line 309, in <module>
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py", line 273, in main
File "/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py", line 292, in get_preview
AttributeError: 'NoneType' object has no attribute 'read'
fatal: [localhost -> localhost]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File \"/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py\", line 113, in <module>\n _ansiballz_main()\n File \"/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py\", line 105, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/root/.ansible/tmp/ansible-tmp-1559753113.2-180977196103710/AnsiballZ_aci_config_rollback.py\", line 48, in invoke_module\n imp.load_module('__main__', mod, module, MOD_DESC)\n File \"/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py\", line 309, in <module>\n File \"/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py\", line 273, in main\n File \"/tmp/ansible_aci_config_rollback_payload_ZNJN9z/__main__.py\", line 292, in get_preview\nAttributeError: 'NoneType' object has no attribute 'read'\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
to retry, use: --limit @/data/tools/ansible/playbooks/roles/cisco.apic/tasks/compare_snapshots.retry
Linked to #8
https://github.com/ansible/ansible/issues/57417