New packages are covering the change of file ownership files and the packages upgrade works fine.
I've been able to reproduce the issue using tripleo-modify-image and the problem is actually in yum_update.sh script which is not covering the upgrades when there are new packages with obsoletes/provides. The yum command is trying to build is trying is:
That command is wrong as in this particular case it needs to install openstack-neutron package which has the obsolets/provides to python3-networking-ovn.
I see yum_update.sh has logic to identify the packages to be updated but it just cover basic cases. IMO, trying to replicate in bash the logic that yum/dnf has to resolve deps/provides/obsoletes chains is wrong and a different approach would be better of just let package manager do it's work. I understant the reason for this is to avoid updating packages from deps or OS repos and limit to only delorean-current and component ones, but using current approach will be hard and easy to reach corner cases like this.
As workaround for this particular case, i think we can move provides/obsoletes to openstack-neutron-common or python3-network in packaging, i'll propose it and discuss with neutron team.
New packages are covering the change of file ownership files and the packages upgrade works fine.
I've been able to reproduce the issue using tripleo- modify- image and the problem is actually in yum_update.sh script which is not covering the upgrades when there are new packages with obsoletes/provides. The yum command is trying to build is trying is:
dnf -y update openstack- neutron- common openstack- tripleo- common- container- base puppet-concat puppet-glance puppet-kafka puppet-keystone puppet-midonet puppet-vcsrepo python3-neutron
That command is wrong as in this particular case it needs to install openstack-neutron package which has the obsolets/provides to python3- networking- ovn.
I see yum_update.sh has logic to identify the packages to be updated but it just cover basic cases. IMO, trying to replicate in bash the logic that yum/dnf has to resolve deps/provides/ obsoletes chains is wrong and a different approach would be better of just let package manager do it's work. I understant the reason for this is to avoid updating packages from deps or OS repos and limit to only delorean-current and component ones, but using current approach will be hard and easy to reach corner cases like this.
As workaround for this particular case, i think we can move provides/obsoletes to openstack- neutron- common or python3-network in packaging, i'll propose it and discuss with neutron team.