Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dellemc.OS10 version 1.2.0 has an old netcommon version as a dependency #147

Closed
irgama opened this issue Aug 23, 2023 · 14 comments
Closed

Comments

@irgama
Copy link

irgama commented Aug 23, 2023

SUMMARY

When installing 1.2.0 of this collection, it downloads netcommon 2.6.1 as a dependency. The latest version of netcommon is 4.6.1, which version 1.1.1 would grab as a dependency.

This needs to be changed:
dependencies:
ansible.netcommon: '>=2.0.0,<3.0.0'

ISSUE TYPE
  • Bug Report
COMPONENT NAME

galaxy.yaml for the collection

ANSIBLE VERSION

ansible [core 2.14.4]
config file = /var/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.9.16 (main, Mar 29 2023, 03:56:49) [GCC 8.5.0 20210514 (Red Hat 8.5.0-16)] (/usr/local/bin/python3.9)
jinja version = 3.1.2
libyaml = True

COLLECTION VERSION

1.2.0

OS / ENVIRONMENT

UBI8, configuring Dell OS10 10.5.5

STEPS TO REPRODUCE

ansible-galaxy collection install dellemc.os10

EXPECTED RESULTS

ansible.netcommon 4.1.0

ACTUAL RESULTS

ansible.netcommon 2.6.1

@irgama
Copy link
Author

irgama commented Aug 23, 2023

I am going back to 1.1.1, as 1.2.0 has broken a number of very basic functionalities.
I noticed this because the old versions of netcommon call for paramiko, while the new versions call for libssh.

If anyone else runs into this issue, the fix is to add the following parameter:
ansible_network_cli_ssh_type: libssh

@prasadapr prasadapr assigned prasadapr and unassigned prasadapr Oct 20, 2023
@prasadapr
Copy link
Collaborator

Hi @irgama, Pls can you install the latest OS10 collection 1.2.2.
we have installed latest collections (1.2.2) on Ansible-core version - 2.14.0 and not observed any issues.

@prasadapr
Copy link
Collaborator

Pls find the enclosed logs/details for the details:

root@ubuntu22-vm-38-27:~# ansible  --version
ansible [core 2.14.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True
root@ubuntu22-vm-38-27:~# 

root@ubuntu22-vm-38-27:~# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@ubuntu22-vm-38-27:~# 

root@ubuntu22-vm-38-27:~# 
root@ubuntu22-vm-38-27:~# ansible-galaxy collection install dellemc.os10
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/dellemc-os10-1.2.2.tar.gz to /root/.ansible/tmp/ansible-local-1364499n6arrqy5/tmp5jl4r1q3/dellemc-os10-1.2.2-gcr2mgko
Installing 'dellemc.os10:1.2.2' to '/root/.ansible/collections/ansible_collections/dellemc/os10'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-netcommon-2.6.1.tar.gz to /root/.ansible/tmp/ansible-local-1364499n6arrqy5/tmp5jl4r1q3/ansible-netcommon-2.6.1-b5lfmaee
dellemc.os10:1.2.2 was installed successfully
Installing 'ansible.netcommon:2.6.1' to '/root/.ansible/collections/ansible_collections/ansible/netcommon'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-utils-2.11.0.tar.gz to /root/.ansible/tmp/ansible-local-1364499n6arrqy5/tmp5jl4r1q3/ansible-utils-2.11.0-mibkvk4o
ansible.netcommon:2.6.1 was installed successfully
Installing 'ansible.utils:2.11.0' to '/root/.ansible/collections/ansible_collections/ansible/utils'
ansible.utils:2.11.0 was installed successfully
root@ubuntu22-vm-38-27:~# 

root@ubuntu22-vm-38-27:~# ansible-galaxy collection list
# /root/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
ansible.netcommon 2.6.1  
ansible.utils     2.11.0 
dellemc.os10      1.2.2  
root@ubuntu22-vm-38-27:~# 

@prasadapr
Copy link
Collaborator

Hi @irgama,

Pls can you share/provide the execution steps, where you have observed the below one as you mentioned above. if you share the execution logs, it will be easy to reproduce. The below line i have copy pasted here:
I noticed this because the old versions of netcommon call for paramiko, while the new versions call for libssh

@lucastobey
Copy link

@prasadapr He is saying in collection ansible.netcommon v3.0.0+ they have defaulted to using ansible-pylibssh. It's an improvement over paramiko in many ways, see here: https://www.ansible.com/blog/whats-new-network-automation-with-ansible.netcommon-3.0.0

Also on this older 2.6.0 version I am constantly getting the following error after every task using os10_config:
[WARNING]: The "network_cli" connection plugin has an improperly configured remote target value, forcing "inventory_hostname" templated value instead of the string

This is using the v1.2.2 of the collection and ansible core 2.15.5

@prasadapr
Copy link
Collaborator

Hi @lucastobey, thanks for your update.

From your update, observed two things:

1. regarding the ansible.netcommon version

we can update ansible.netcommon version in the galaxy.com, that's fine.
defaulted to using ansible-pylibssh - not getting clearly. It means we have to install "ansible-pylibssh" and execute the playbook.

2. Regarding older 2.6.0 version I am constantly getting the following error after every task using os10_config"

I have executed the playbook with os10_config and not observed any issue. I am not observed any warning message what you have mentioned.
Please find my details and any thing missing pls let me know:


root@ubuntu22-vm-38-48:~/os10-collections# ansible --version
ansible [core 2.15.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True
root@ubuntu22-vm-38-48:~/os10-collections# 

root@ubuntu22-vm-38-48:~/os10-collections# ansible-galaxy collection list

# /root/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
ansible.netcommon 2.6.1  
ansible.utils     2.11.0 
dellemc.os10      1.2.2  
root@ubuntu22-vm-38-48:~/os10-collections# 


root@ubuntu22-vm-38-48:~/os10-collections# cat  os10_config_cmds.yaml 
---
- name: configurep multiple config cmds
  hosts: leaf
  gather_facts: false
  connection: network_cli
  collections:
   - dellemc.os10

  tasks:
   - name: Flowcontrol ethernet 1/1/4
     os10_config:
       lines:
         - flowcontrol receive on
         - flowcontrol transmit off
       before: ['interface ethernet 1/1/4']
root@ubuntu22-vm-38-48:~/os10-collections# 


root@ubuntu22-vm-38-48:~/os10-collections# ansible-playbook -i inventory.yaml os10_config_cmds.yaml  -vvv
ansible-playbook [core 2.15.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /root/os10-collections/inventory.yaml as it did not pass its verify_file() method
script declined parsing /root/os10-collections/inventory.yaml as it did not pass its verify_file() method
Parsed /root/os10-collections/inventory.yaml inventory source with ini plugin
redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: os10_config_cmds.yaml ************************************************************************************************************************************************************
1 plays in os10_config_cmds.yaml

PLAY [configurep multiple config cmds] *****************************************************************************************************************************************************
redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10

TASK [Flowcontrol ethernet 1/1/4] **********************************************************************************************************************************************************
task path: /root/os10-collections/os10_config_cmds.yaml:10
redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli
redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
redirecting (type: action) dellemc.os10.os10_config to dellemc.os10.os10
<100.104.94.11> ESTABLISH LOCAL CONNECTION FOR USER: root
<100.104.94.11> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-local-14258797b_2uv4y `"&& mkdir "` echo /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026 `" && echo ansible-tmp-1698841087.5761042-1425883-221172546959026="` echo /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026 `" ) && sleep 0'
Using module file /root/.ansible/collections/ansible_collections/dellemc/os10/plugins/modules/os10_config.py
<100.104.94.11> PUT /root/.ansible/tmp/ansible-local-14258797b_2uv4y/tmpwm407i8y TO /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026/AnsiballZ_os10_config.py
<100.104.94.11> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026/ /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026/AnsiballZ_os10_config.py && sleep 0'
<100.104.94.11> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026/AnsiballZ_os10_config.py && sleep 0'
<100.104.94.11> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-local-14258797b_2uv4y/ansible-tmp-1698841087.5761042-1425883-221172546959026/ > /dev/null 2>&1 && sleep 0'
changed: [leaf] => {
    "changed": true,
    "commands": [
        "interface ethernet 1/1/4",
        "flowcontrol receive on",
        "flowcontrol transmit off",
        "commit"
    ],
    "invocation": {
        "module_args": {
            "after": null,
            "backup": false,
            "backup_options": null,
            "before": [
                "interface ethernet 1/1/4"
            ],
            "config": null,
            "lines": [
                "flowcontrol receive on",
                "flowcontrol transmit off"
            ],
            "match": "line",
            "parents": null,
            "provider": null,
            "replace": "line",
            "save": false,
            "src": null,
            "update": "merge"
        }
    },
    "saved": false,
    "updates": [
        "interface ethernet 1/1/4",
        "flowcontrol receive on",
        "flowcontrol transmit off",
        "commit"
    ]
}

PLAY RECAP *********************************************************************************************************************************************************************************
leaf                       : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

root@ubuntu22-vm-38-48:~/os10-collections# 


@lucastobey
Copy link

@prasadapr There must be a bug in the network_cli which is part of ansible.netcommon in the older version which is causing my issue as I don't have this warning when using newer versions of netcommon.

@prasadapr
Copy link
Collaborator

Hi @lucastobey, still i am not getting how they are getting the issue. if we know the steps to reproduce the issue, we can try to fix the issue. same configuration we are using and not getting the issue.

# /root/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
ansible.netcommon 2.6.1  
ansible.utils     2.11.0 
dellemc.os10      1.2.2  
root@ubuntu22-vm-38-48:~/os10-collections# 

Pls can you help me how to reproduce this issue

@lucastobey
Copy link

@prasadapr can't say. I'm sure there's a bug in the netcommon collection version that's required today by this dellemc collection. I did a bit of searching and found a few issues in netcommon that potentially point to it, but didn't look into them in great detail. Not sure what's different about my setup vs yours and why I get the warning with network_cli. I do know an upgrade to the netcommon collection fixes the issue which is one of the reasons I suggest to consider upgrading it (alongside the original reasons of @irgama).

@Shourai
Copy link
Contributor

Shourai commented Dec 14, 2023

I also came across this and is breaking installs when you add packages that require netcommon versions higher than 3.
This means you cannot install this and for example https://github.com/ansible-collections/cisco.ios.
Since you cannot meet the requirement ansible.netcommon: '>=2.0.0,<3.0.0' and >=6.0.0

prasadapr added a commit that referenced this issue Jan 12, 2024
#147 (#158)

* fix for issue-147

* removed the empty line

---------

Co-authored-by: prasada.reddy <prasada.reddy@dellteam.com>
prasadapr pushed a commit that referenced this issue Jan 18, 2024
#147 #158 (#159)

* fix for issue-147

* removed the empty line

* updated version number in galaxy file

---------

Co-authored-by: prasada.reddy <prasada.reddy@dellteam.com>
prasadapr added a commit that referenced this issue Jan 18, 2024
#147 (#161)

* fix for issue-147

* removed the empty line

* updated release version 1.2.4

---------

Co-authored-by: prasada.reddy <prasada.reddy@dellteam.com>
@prasadapr
Copy link
Collaborator

prasadapr commented Jan 23, 2024

Hi @irgama,
As per the Issue done the changes and fixed the issue in the latest ansible collection version #1.2.4.


[root@ubuntu22-vm-38-27:~/release_1_2_4/dellemc.os10#](mailto:root@ubuntu22-vm-38-27:~/release_1_2_4/dellemc.os10) cat galaxy.yml 
dependencies:
  ansible.netcommon: '>=2.0.0,<5.0.0'
description: Ansible Network Collection for Dell EMC SmartFabric OS10
license_file: LICENSE
name: os10
namespace: dellemc
readme: README.md
tags: [dell, dellemc, os10, emc, networking]
version: 1.2.4


root@ubuntu22-vm-38-27:~# ansible-galaxy collection install dellemc.os10
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/dellemc-os10-1.2.4.tar.gz to /root/.ansible/tmp/ansible-local-376826zp23aq2u/tmpeoza5avj/dellemc-os10-1.2.4-kke247zq
Installing 'dellemc.os10:1.2.4' to '/root/.ansible/collections/ansible_collections/dellemc/os10'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-netcommon-4.1.0.tar.gz to /root/.ansible/tmp/ansible-local-376826zp23aq2u/tmpeoza5avj/ansible-netcommon-4.1.0-iulwzpxk
dellemc.os10:1.2.4 was installed successfully
Installing 'ansible.netcommon:4.1.0' to '/root/.ansible/collections/ansible_collections/ansible/netcommon'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-utils-3.0.0.tar.gz to /root/.ansible/tmp/ansible-local-376826zp23aq2u/tmpeoza5avj/ansible-utils-3.0.0-e4z507uu
ansible.netcommon:4.1.0 was installed successfully
Installing 'ansible.utils:3.0.0' to '/root/.ansible/collections/ansible_collections/ansible/utils'
ansible.utils:3.0.0 was installed successfully
root@ubuntu22-vm-38-27:~# 

root@ubuntu22-vm-38-27:~# ansible-galaxy collection list
# /root/.ansible/collections/ansible_collections
Collection        Version
----------------- -------
ansible.netcommon 4.1.0  
ansible.utils     3.0.0  
dellemc.os10      1.2.4  
root@ubuntu22-vm-38-27:~#

@prasadapr
Copy link
Collaborator

Hi @irgama / @lucastobey, issue got addressed. so shall we close this Issue.

@irgama
Copy link
Author

irgama commented Jan 25, 2024 via email

@prasadapr
Copy link
Collaborator

Hi @irgama / @lucastobey, Thanks for the confirmation. so closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants