openstack-upgrade action of cinder "conflicts" with nova-compute if deployed to same metal.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Cinder Charm |
New
|
Undecided
|
Unassigned | ||
OpenStack Nova Compute Charm |
New
|
Undecided
|
Unassigned |
Bug Description
Hi,
As noted on a separate bug (https:/
If I set action-
Likewise, if I did the same but upgraded nova-compute first, cinder-volume would claim that it has already been upgraded.
While I did compare the end result on my recent upgrade (stein->train) and saw no real difference between the packages installed with either order, this gave me pause as I was not sure if all actions related to the upgrade process were being done appropriately for whichever charm was upgraded last.
My concerns:
1. In a case of a "conflict" like this, are we sure that we're running all needed upgrade-related actions? It seems to me like we might not; do_action_
2. Are there any issues or workarounds which should be added to the charm deployment guide to help address this?
Best Regards,
Paul Goins
summary: |
- openstack-upgrade action "conflicts" with nova-compute if deployed to - same metal. + openstack-upgrade action of cinder "conflicts" with nova-compute if + deployed to same metal. |
This is probably caused by the do_openstack_ upgrade function running a full apt upgrade after switching the sources:
hooks/nova_ compute_ utils.py upgrade( configs= None): 'openstack- origin' ) codename_ install_ source( new_src) 'Performing OpenStack upgrade to %s.' % (new_os_rel)) installation_ source( new_src) Options: :=--force- confnew' , Options: :=--force- confdef' , options= dpkg_opts, fatal=True, dist=True)
857 │ def do_openstack_
858 │ """Perform an uprade of cinder. Takes care of upgrading
859 │ packages, rewriting configs + database migration and
860 │ potentially any other post-upgrade actions.
861 │
862 │ :param configs: The charms main OSConfigRenderer object.
863 │
864 │ """
865 │ new_src = config(
866 │ new_os_rel = get_os_
867 │
868 │ juju_log(
869 │
870 │ configure_
871 │ dpkg_opts = [
872 │ '--option', 'Dpkg::
873 │ '--option', 'Dpkg::
874 │ ]
875 │ apt_update()
876 │ apt_upgrade(
Compare with ceph-osd, which only uses apt_install on the specific ceph packages during the upgrade:
lib/charms_ ceph/utils. py osd(new_ version, kick_function= None): set("maintenanc e", "Upgrading OSD") current_ version) ) new_version) ) config( 'source' ), config('key')) fatal=True) CalledProcessEr ror as err: set("blocked" , "Upgrade to {} failed" .format( new_version) ) set('maintenanc e', 'Upgrading packages to %s' % new_version) packages= determine_ packages( ), fatal=True)
2680 │ def upgrade_
2681 │ """Upgrades the current OSD
2682 │
2683 │ :param new_version: str. The new version to upgrade to
2684 │ """
2685 │ if kick_function is None:
2686 │ kick_function = noop
2687 │
2688 │ current_version = get_version()
2689 │ status_
2690 │ log("Current Ceph version is {}".format(
2691 │ log("Upgrading to: {}".format(
2692 │
2693 │ try:
2694 │ add_source(
2695 │ apt_update(
2696 │ except subprocess.
2697 │ log("Adding the Ceph sources failed with message: {}".format(
2698 │ err))
2699 │ status_
2700 │ sys.exit(1)
2701 │
2702 │ kick_function()
2703 │
2704 │ try:
2705 │ # Upgrade the packages before restarting the daemons.
2706 │ status_
2707 │ apt_install(
The nova compute charm has the same problem.