[osci] New OpenStack packages version is lower then previous
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Fix Committed
|
Critical
|
Dmitry Burmistrov | ||
5.0.x |
Fix Committed
|
Critical
|
Dmitry Burmistrov |
Bug Description
Related bug: 1342041
Our new openstack packages have versions like 2014.1.
Even if the new package version look higher then previous it's not and it creates several problems with updates.
Puppet's yum modules users versioncmp fuction to compare old and new version when it tries to update a package. It works like this:
["2014", ".", "1", ".", "fuel", "5", ".", "0", "-", "mira", "4"]
["2014", ".", "1", ".", "1", ".", "fuel", "5", ".", "1", "-", "mira", "0"]
2014 vs 2014
. vs .
1 vs 1
. vs .
fuel vs 1
1
First, it splits veriosn to componets and then compares each pair. It have returned 1 and it mean that first is newer then second. As you can see it's a second "1" to blame because it moves "fuel" to the next pair. The correct comparsion should look like this:
["2014", ".", "1", ".", "fuel", "5", ".", "0", "-", "mira", "4"]
["2014", ".", "1", ".", "fuel", "5", ".", "1", "-", "mira", "0"]
2014 vs 2014
. vs .
1 vs 1
. vs .
fuel vs fuel
5 vs 5
. vs .
0 vs 1
-1
But we cannot just rename the package because 2014.1.1 is the version of the OpenStack release.
There is a quick fix for yum provider: https:/
Same problem can be seen on the Ubuntu nodes. Apt refuses to update to update packages to the "new" version because it's "older". Trying to "downgrade" to the "new" package olso doesn't work because all dependencies expect to have package that have version >= then required and older doesn't work.
Obviously, we cant fix the apt problem the same way as yum can be fixed and we need some way to make new version be actually newer. The problem is also being made harder by the fact that previously released 5.0 packages cannot be renamed now.
* We can increase epoch for the new packages to force them be newer then all packages previously released.
* We can also make versioning like this: fuel5.1-
* Why do we even add fuel release to packages. With updates we are implementing already wery thin connection between Fuel and OpenStack release is blurred even farther. Lets name then just like: 2014.1.1-mira0
Changed in fuel: | |
milestone: | none → 5.1 |
assignee: | nobody → Fuel OSCI Team (fuel-osci) |
importance: | Undecided → High |
status: | New → Confirmed |
description: | updated |
description: | updated |
description: | updated |
Changed in fuel: | |
importance: | High → Critical |
Changed in fuel: | |
assignee: | Fuel OSCI Team (fuel-osci) → Dmitry Burmistrov (dburmistrov) |
tags: | added: patching |
tags: | added: upgrade |
no longer affects: | fuel/5.1.x |
As for me, the best solution would be not to include fuel version at all and increase epoch to migrate from the old naming to the new one.