ansible-network / network-engine

This role provides the foundation for building network roles by providing modules and plugins that are common to all Ansible Network roles.
GNU General Public License v3.0
112 stars 52 forks source link

Errors after migrating to ansible 2.10 #247

Open iaalmeida opened 3 years ago

iaalmeida commented 3 years ago

ISSUE TYPE

ANSIBLE VERSION

ansible --version
ansible 2.10.7

ansible-galaxy list | grep ansible.network
- ansible-network.network-engine, v2.7.5

Network OS

SUMMARY

After upgrade ansible from 2.9.18 to 2.10, I was no longer able to run my playbooks with network-engine.

The error was "ModuleNotFoundError: No module named 'ansible.module_utils.network_common'"

In file

  ~/.ansible/roles/ansible-network.network-engine/action_plugins/command_parser.py

I had to change line 26

  from ansible.module_utils.network_common import to_list

to

  from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list

And in file:

  ~/.ansible/roles/ansible-network.network-engine/lib/network_engine/utils.py

I had to change line 13

  from ansible.module_utils.network.common.utils import sort_list

to

  from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import sort_list

STEPS TO REPRODUCE

---
- hosts: branches
  gather_facts: no

  tasks:
    - name: import the network-engine role
      import_role:
        name: ansible-network.network-engine

    - name: Generate global_facts as JSON
      command_parser:
        file: my_parsers.yml
        content: "{{ inventory_hostname }} "

EXPECTED RESULTS

No errors at all.

ACTUAL RESULTS

ERROR! Unexpected Exception, this is probably a bug: No module named 'ansible.module_utils.network_common'
the full traceback was:

Traceback (most recent call last):
  File "~/.ansible/roles/ansible-network.network-engine/action_plugins/command_parser.py", line 23, in <module>
    from ansible.module_utils.network.common.utils import to_list
ModuleNotFoundError: No module named 'ansible.module_utils.network'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "~/.venvs/ansible-3.1/bin/ansible-playbook", line 123, in <module>
    exit_code = cli.run()
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/cli/playbook.py", line 129, in run
    results = pbex.run()
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/executor/playbook_executor.py", line 169, in run
    result = self._tqm.run(play=play)
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/executor/task_queue_manager.py", line 281, in run
    play_return = strategy.run(iterator, play_context)
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/plugins/strategy/linear.py", line 267, in run
    action = action_loader.get(task.action, class_only=True, collection_list=task.collections)
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/plugins/loader.py", line 782, in get
    return self.get_with_context(name, *args, **kwargs).object
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/plugins/loader.py", line 802, in get_with_context
    self._module_cache[path] = self._load_module_source(name, path)
  File "~/.venvs/ansible-3.1/lib/python3.7/site-packages/ansible/plugins/loader.py", line 766, in _load_module_source
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "~/.ansible/roles/ansible-network.network-engine/action_plugins/command_parser.py", line 26, in <module>
    from ansible.module_utils.network_common import to_list
ModuleNotFoundError: No module named 'ansible.module_utils.network_common'
zendritic commented 3 years ago

I have this same issue.

jvanderaa commented 3 years ago

@iaalmeida @zendritic take a look at https://docs.ansible.com/ansible/latest/network/user_guide/cli_parsing.html

This is effectively retired and moved into the Ansible netcommon libraries.

Issue #246 was opened to have this repo marked as archive.