** Description changed:

  Ansible raises an exception when running list plugin:
  
  Version: 2.5.1+dfsg-1ubuntu0.1+esm3
  
  $ ansible -vvv -m debug -a msg="{{lookup('list', 'junk')|zip}}" localhost
  ansible 2.5.1
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/home/vyom/.ansible/plugins/modules', 
u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python2.7/dist-packages/ansible
    executable location = /usr/bin/ansible
    python version = 2.7.17 (default, Nov 21 2024, 12:09:09) [GCC 7.5.0]
  Using /etc/ansible/ansible.cfg as config file
  Parsed /etc/ansible/hosts inventory source with ini plugin
   [WARNING]: provided hosts list is empty, only localhost is available. Note 
that the implicit localhost does not match 'all'
  
  META: ran handlers
  The full traceback is:
  Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", 
line 138, in run
      res = self._execute()
    File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py", 
line 503, in _execute
      self._task.post_validate(templar=templar)
    File "/usr/lib/python2.7/dist-packages/ansible/playbook/task.py", line 260, 
in post_validate
      super(Task, self).post_validate(templar)
    File "/usr/lib/python2.7/dist-packages/ansible/playbook/base.py", line 387, 
in post_validate
      value = method(attribute, getattr(self, name), templar)
    File "/usr/lib/python2.7/dist-packages/ansible/playbook/task.py", line 268, 
in _post_validate_args
      args = templar.template(value)
    File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line 
535, in template
      disable_lookups=disable_lookups,
    File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line 
491, in template
      disable_lookups=disable_lookups,
    File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line 
727, in do_template
      res = j2_concat(rf)
    File "<template>", line 12, in root
    File "/usr/lib/python2.7/dist-packages/ansible/utils/unsafe_proxy.py", line 
91, in __iter__
      return (cls(c) for c in super(AnsibleUnsafeText, self).__iter__())
  AttributeError: 'super' object has no attribute '__iter__'
  
  localhost | FAILED! => {
      "msg": "Unexpected failure during module execution.",
      "stdout": ""
  }
  
  The problem is: AttributeError: 'super' object has no attribute
  '__iter__'
  
  This works fine on non esm version:
  
  Version: 2.5.1+dfsg-1ubuntu0.1
  
  $ ansible -vvv -m debug -a msg="{{lookup('list', 'junk')|zip}}" localhost
  ansible 2.5.1
    config file = /etc/ansible/ansible.cfg
    configured module search path = [u'/home/vyom/.ansible/plugins/modules', 
u'/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python2.7/dist-packages/ansible
    executable location = /usr/bin/ansible
    python version = 2.7.17 (default, Nov 21 2024, 12:09:09) [GCC 7.5.0]
  Using /etc/ansible/ansible.cfg as config file
  Parsed /etc/ansible/hosts inventory source with ini plugin
   [WARNING]: provided hosts list is empty, only localhost is available. Note 
that the implicit localhost does not match 'all'
  
  META: ran handlers
  localhost | SUCCESS => {
      "msg": "<itertools.izip object at 0x7f1f2c3b55f0>"
  }
  META: ran handlers
  META: ran handlers
  
- Thanks Martin Hutchins <mar...@clearcity.co.uk> for the bug report.
+ Thanks Martin Hutchins for the bug report.
  
  Analysis:
  
  This relates to the fix for CVE-2023-5764. The patch file doesn't
  support python2. MRO for the affected class: (AnsibleUnsafeText,
  unicode, AnsibleUnsafe, object) and none of these classes have a
  __iter__ method in python 2.7.17
  
  
https://github.com/ansible/ansible/commit/7239d2d371bc6e274cbb7314e01431adce6ae25a#diff-65f6e2e7666c65b61d2dd334ca36e459e04854c3dc040e91c870886d01ce7aa7
  
  Although the source code has logic for supporting older python versions
  (and syntax also indicates similar support):
  
https://github.com/ansible/ansible/blob/7239d2d371bc6e274cbb7314e01431adce6ae25a/lib/ansible/module_utils/six/__init__.py#L49-L62
  
  While it's setup.cfg doesn't: python_requires = >=3.9. So it's hard to
  classify this as an upstream patch bug.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2097504

Title:
  Ansible raises exception while invoking list plugin

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-pro/+bug/2097504/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to