Bug 2215974

Summary: Use iproute instead of python3-ethtool
Product: Red Hat Enterprise Linux 9 Reporter: mhorky
Component: subscription-managerAssignee: mhorky
Status: VERIFIED --- QA Contact: Red Hat subscription-manager QE Team <rhsm-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.3CC: jsefler, redakkan, zpetrace
Target Milestone: rcKeywords: AutoVerified, Triaged
Target Release: 9.3   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: subscription-manager-1.29.36-1.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 mhorky 2023-06-19 14:29:24 UTC
To get rid of tech debt and delegate some of internal logic to dedicated tool, subscription-manager replaces 'python3-ethtool' package with 'iproute' for network fact collection. This results in a change of dependencies in specfile and in new network collector.

While there may be behavioral changes (current tooling does not support network interface teaming, for example), the collected facts *should* be nearly the same.

Comment 2 John Sefler 2023-07-20 22:20:07 UTC
Pre-verification testing...
Before applying the fix for this Bugzilla...

[root@rhsm-auto93-client1 ~]# rpm -q subscription-manager
subscription-manager-1.29.35-1.el9.x86_64
[root@rhsm-auto93-client1 ~]# rpm -q subscription-manager --requires
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/usr/bin/python3
config(subscription-manager) = 1.29.35-1.el9
dmidecode
dnf >= 1.0.0
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libdnf-plugin-subscription-manager = 1.29.35
libglib-2.0.so.0()(64bit)
python(abi) = 3.9
python3-cloud-what = 1.29.35-1.el9
python3-dateutil
python3-dbus
python3-decorator
python3-dnf-plugins-core
python3-ethtool         <=========== NOTICE THE PRIOR REQUIRED DEPENDENCY
python3-gobject-base
python3-iniparse
python3-inotify
python3-librepo
python3-setuptools
python3-subscription-manager-rhsm = 1.29.35
python3.9dist(ethtool)
python3.9dist(iniparse)
python3.9dist(python-dateutil)
python3.9dist(setuptools)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
rtld(GNU_HASH)
subscription-manager-rhsm-certificates
systemd
systemd
systemd
usermode
virt-what
[root@rhsm-auto93-client1 ~]# 
[root@rhsm-auto93-client1 ~]# subscription-manager facts | grep address | sort
dmi.bios.address: 0xe8000
lscpu.address_sizes: 46 bits physical, 57 bits virtual
net.interface.eth0.ipv4_address: 10.8.30.92
net.interface.eth0.ipv4_address_list: 10.8.30.92
net.interface.eth0.ipv6_address.global: 2620:52:0:800:2eab:a1f1:9233:6357
net.interface.eth0.ipv6_address.global_list: 2620:52:0:800:2eab:a1f1:9233:6357
net.interface.eth0.ipv6_address.link: fe80::a3cd:3097:1f73:f84d
net.interface.eth0.ipv6_address.link_list: fe80::a3cd:3097:1f73:f84d
net.interface.eth0.mac_address: 52:54:00:03:8e:1c
net.interface.lo.ipv4_address: 127.0.0.1
net.interface.lo.ipv4_address_list: 127.0.0.1
net.interface.lo.ipv6_address.host: ::1
net.interface.lo.ipv6_address.host_list: ::1
network.ipv4_address: 10.8.30.92
network.ipv6_address: fe80::a3cd:3097:1f73:f84d, 2620:52:0:800:2eab:a1f1:9233:6357
proc_cpuinfo.common.address_sizes: 46 bits physical, 57 bits virtual
[root@rhsm-auto93-client1 ~]# 

After applying the fix for this Bugzilla...

[root@rhsm-auto93-client1 ~]# rpm -q subscription-manager
subscription-manager-1.29.35+35.g614325532-1.git.0.160f2a4.x86_64
[root@rhsm-auto93-client1 ~]# rpm -q subscription-manager --changelog | grep 2215974
- 2215974: Collect network facts using 'ip' (mhorky)
[root@rhsm-auto93-client1 ~]# rpm -q subscription-manager --requires
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/usr/bin/python3
config(subscription-manager) = 1.29.35+35.g614325532-1.git.0.160f2a4
dmidecode
iproute     <============== NOTICE NEW DEPENDENCY iproute REPLACES python3-ethtool
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libdnf-plugin-subscription-manager = 1.29.35+35.g614325532
libglib-2.0.so.0()(64bit)
python(abi) = 3.9
python3-cloud-what = 1.29.35+35.g614325532-1.git.0.160f2a4
python3-dateutil
python3-dbus
python3-decorator
python3-dnf
python3-dnf-plugins-core
python3-gobject-base
python3-iniparse
python3-inotify
python3-librepo
python3-setuptools
python3-subscription-manager-rhsm = 1.29.35+35.g614325532
python3.9dist(iniparse)
python3.9dist(python-dateutil)
python3.9dist(setuptools)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
rtld(GNU_HASH)
subscription-manager-rhsm-certificates
systemd
systemd
systemd
usermode
virt-what
[root@rhsm-auto93-client1 ~]# 
[root@rhsm-auto93-client1 ~]# subscription-manager facts | grep address | sort
dmi.bios.address: 0xe8000
lscpu.address_sizes: 46 bits physical, 57 bits virtual
net.interface.eth0.ipv4_address: 10.8.30.92
net.interface.eth0.ipv4_address_list: 10.8.30.92
net.interface.eth0.ipv6_address.global: 2620:52:0:800:2eab:a1f1:9233:6357
net.interface.eth0.ipv6_address.global_list: 2620:52:0:800:2eab:a1f1:9233:6357
net.interface.eth0.ipv6_address.link: fe80::a3cd:3097:1f73:f84d
net.interface.eth0.ipv6_address.link_list: fe80::a3cd:3097:1f73:f84d
net.interface.eth0.mac_address: 52:54:00:03:8e:1c
net.interface.lo.ipv4_address: 127.0.0.1
net.interface.lo.ipv4_address_list: 127.0.0.1
net.interface.lo.ipv6_address.host: ::1
net.interface.lo.ipv6_address.host_list: ::1
network.ipv4_address: 10.8.30.92
network.ipv6_address: 2620:52:0:800:2eab:a1f1:9233:6357, fe80::a3cd:3097:1f73:f84d
proc_cpuinfo.common.address_sizes: 46 bits physical, 57 bits virtual
[root@rhsm-auto93-client1 ~]# 


VERIFIED: The dependency on python3-ethtool has been replaced by iproute with no changes to any of the address facts.  The only minor difference occurs on the ordering of the comma delimited value for network.ipv6_address.  However, we have no preceding requirement for an expected order.