[SRU] Upgrade from queens py2 -> rocky py2 packages breaks /usr/share/openstack-dashboard/openstack_dashboard

Bug #1815948 reported by Corey Bryant
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard Charm
Invalid
Undecided
Unassigned
Ubuntu Cloud Archive
Invalid
Undecided
Unassigned
Rocky
Fix Released
High
Corey Bryant
horizon (Ubuntu)
Invalid
Undecided
Unassigned
Cosmic
Fix Released
High
Corey Bryant

Bug Description

[Impact]
After upgrading from queens->rocky with the openstack charms, /usr/share/openstack-dashboard/openstack_dashboard is missing files because it is not a symlink (alternative) to /usr/lib/python3/dist-packages/openstack_dashboard.

Note that the openstack charms are using py2 packages in queens and py3 packages in rocky. The upgrade process of the packages goes:

(1) py2queens -> (2) py2rocky -> (3) py3rocky

Bad state after upgrade: https://paste.ubuntu.com/p/3GnMTVfZDk/

Also worth noting that the queens packages did not use alternatives for /usr/share/openstack-dashboard/openstack_dashboard. In that version of the package the files are copied into /usr/share/openstack-dashboard/openstack_dashboard during the package build so there are no symlinks/alternatives involved.

Looking closer during the upgrade..

After step (1) we have:

$ update-alternatives --display openstack_dashboard juju-45afee-coreycb2-31: Thu Feb 14 19:03:22 2019

update-alternatives: error: no alternatives for openstack_dashboard

$ ls -al /usr/share/openstack-dashboard/
total 56
drwxr-xr-x 3 root root 4096 Feb 14 18:57 .
drwxr-xr-x 127 root root 4096 Feb 14 18:56 ..
lrwxrwxrwx 1 root root 41 Nov 27 19:22 horizon -> ../../lib/python2.7/dist-packages/horizon
-rwxr-xr-x 1 root root 879 Nov 27 19:22 manage.py
-rw-r--r-- 1 root root 508 Feb 14 18:57 manage.pyc
drwxr-xr-x 19 root root 4096 Feb 14 18:57 openstack_dashboard
-rw-r--r-- 1 root root 16748 Nov 27 19:22 settings.py
-rw-r--r-- 1 root root 14252 Feb 14 18:57 settings.pyc

$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 228
drwxr-xr-x 19 root root 4096 Feb 14 18:57 .
drwxr-xr-x 3 root root 4096 Feb 14 18:57 ..
-rw-r--r-- 1 root root 204 May 8 2018 .eslintrc
-rw-r--r-- 1 root root 0 May 8 2018 __init__.py
-rw-r--r-- 1 root root 149 Feb 14 18:57 __init__.pyc
drwxr-xr-x 3 root root 4096 Feb 14 18:57 api
drwxr-xr-x 4 root root 4096 Feb 14 19:01 conf
-rw-r--r-- 1 root root 4471 May 8 2018 context_processors.py
-rw-r--r-- 1 root root 3388 Feb 14 18:57 context_processors.pyc
drwxr-xr-x 3 root root 4096 Feb 14 18:57 contrib
drwxr-xr-x 6 root root 4096 Feb 14 18:57 dashboards
drwxr-xr-x 2 root root 4096 Feb 14 18:57 django_pyscss_fix
drwxr-xr-x 2 root root 12288 Feb 14 19:01 enabled
-rw-r--r-- 1 root root 2084 May 8 2018 exceptions.py
-rw-r--r-- 1 root root 927 Feb 14 18:57 exceptions.pyc
-rw-r--r-- 1 root root 1063 May 8 2018 hooks.py
-rw-r--r-- 1 root root 556 Feb 14 18:57 hooks.pyc
-rw-r--r-- 1 root root 6794 May 8 2018 karma.conf.js
drwxr-xr-x 4 root root 4096 Feb 14 18:57 local
drwxr-xr-x 36 root root 4096 Feb 14 18:56 locale
drwxr-xr-x 3 root root 4096 Feb 14 18:57 management
-rw-r--r-- 1 root root 2171 May 8 2018 policy.py
-rw-r--r-- 1 root root 2034 Feb 14 18:57 policy.pyc
-rw-r--r-- 1 root root 16748 Nov 27 19:22 settings.py
-rw-r--r-- 1 root root 16675 Nov 27 19:22 settings.py.orig
-rw-r--r-- 1 root root 14292 Feb 14 18:57 settings.pyc
drwxr-xr-x 7 root root 4096 Feb 14 18:56 static
drwxr-xr-x 7 root root 4096 Feb 14 18:56 templates
drwxr-xr-x 2 root root 4096 Feb 14 18:57 templatetags
drwxr-xr-x 11 root root 4096 Feb 14 18:57 test
-rw-r--r-- 1 root root 4135 May 8 2018 theme_settings.py
-rw-r--r-- 1 root root 2130 Feb 14 18:57 theme_settings.pyc
drwxr-xr-x 5 root root 4096 Feb 14 18:56 themes
-rw-r--r-- 1 root root 2335 May 8 2018 urls.py
-rw-r--r-- 1 root root 1617 Feb 14 18:57 urls.pyc
drwxr-xr-x 2 root root 4096 Feb 14 18:57 usage
drwxr-xr-x 2 root root 4096 Feb 14 18:57 utils
-rw-r--r-- 1 root root 4597 May 8 2018 views.py
-rw-r--r-- 1 root root 4430 Feb 14 18:57 views.pyc
drwxr-xr-x 2 root root 4096 Feb 14 18:56 wsgi

$ apt policy python-django-horizon
python-django-horizon:
  Installed: 3:13.0.1-0ubuntu4
  Candidate: 3:13.0.1-0ubuntu4
  Version table:
 *** 3:13.0.1-0ubuntu4 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        100 /var/lib/dpkg/status

At step (2) we have:

$ apt policy python-django-horizon
python-django-horizon:
  Installed: 3:14.0.1-0ubuntu1~cloud0
  Candidate: 3:14.0.1-0ubuntu1~cloud0
  Version table:
 *** 3:14.0.1-0ubuntu1~cloud0 500
        500 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main amd64 Packages
        100 /var/lib/dpkg/status

$ update-alternatives --display openstack_dashboard

openstack_dashboard - auto mode
  link best version is /usr/lib/python2.7/dist-packages/openstack_dashboard
  link currently points to /usr/lib/python2.7/dist-packages/openstack_dashboard
  link openstack_dashboard is /usr/share/openstack-dashboard/openstack_dashboard
/usr/lib/python2.7/dist-packages/openstack_dashboard - priority 300

$ ls -al /usr/share/openstack-dashboard/
total 36
drwxr-xr-x 4 root root 4096 Feb 14 19:06 .
drwxr-xr-x 127 root root 4096 Feb 14 18:56 ..
drwxr-xr-x 3 root root 4096 Feb 14 19:06 bin
-rwxr-xr-x 1 root root 881 Dec 5 16:45 manage.py
drwxr-xr-x 4 root root 4096 Feb 14 19:06 openstack_dashboard
-rw-r--r-- 1 root root 15713 Dec 5 16:45 settings.py

$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 24
drwxr-xr-x 4 root root 4096 Feb 14 19:06 .
drwxr-xr-x 4 root root 4096 Feb 14 19:06 ..
drwxr-xr-x 2 root root 4096 Feb 14 19:06 conf
drwxr-xr-x 2 root root 12288 Feb 14 19:06 enabled

And after step (3) we have:

$ update-alternatives --display openstack_dashboard
openstack_dashboard - auto mode
  link best version is /usr/lib/python3/dist-packages/openstack_dashboard
  link currently points to /usr/lib/python3/dist-packages/openstack_dashboard
  link openstack_dashboard is /usr/share/openstack-dashboard/openstack_dashboard
/usr/lib/python3/dist-packages/openstack_dashboard - priority 200

$ ls -al /usr/share/openstack-dashboard
total 36
drwxr-xr-x 4 root root 4096 Feb 14 18:28 .
drwxr-xr-x 127 root root 4096 Feb 14 17:29 ..
drwxr-xr-x 3 root root 4096 Feb 14 18:28 bin
-rwxr-xr-x 1 root root 881 Dec 5 16:45 manage.py
drwxr-xr-x 4 root root 4096 Feb 14 18:28 openstack_dashboard
-rw-r--r-- 1 root root 15713 Dec 5 16:45 settings.py

$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 24
drwxr-xr-x 4 root root 4096 Feb 14 18:28 .
drwxr-xr-x 4 root root 4096 Feb 14 18:28 ..
drwxr-xr-x 2 root root 4096 Feb 14 18:28 conf
drwxr-xr-x 2 root root 12288 Feb 14 18:28 enabled

[Test Case]
Deploy bionic-queens openstack-dashboard with openstack charms and upgrade to bionic-rocky.
Ensure dashboard is functional after upgrade. /usr/share/openstack-dashboard/ should look like:
ubuntu@juju-cc544d-coreycb2-24:~$ ls -l /usr/share/openstack-dashboard/
total 24
drwxr-xr-x 3 root root 4096 Feb 20 19:17 bin
-rwxr-xr-x 1 root root 881 Feb 20 18:46 manage.py
lrwxrwxrwx 1 root root 37 Feb 20 19:17 openstack_dashboard -> /etc/alternatives/openstack_dashboard
-rw-r--r-- 1 root root 15713 Feb 20 18:46 settings.py

[Regression Potential]
Low. This fix is limited to the rocky preinst script only. Rocky is the first release to use alternatives (symlinks) for /usr/share/openstack-dashboard/openstack_dashboard/. Prior to Rocky, the required files were copied into /usr/share/openstack-dashboard/openstack_dashboard/.

description: updated
description: updated
description: updated
Revision history for this message
Corey Bryant (corey.bryant) wrote :

Seems ok when just upgrading the py2 package from queens->rocky manually with:

$ sudo add-apt-repository cloud-archive:queens
$ sudo apt update
$ sudo apt install openstack-dashboard
$ ls -al /usr/share/openstack-dashboard/
$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
$ sudo add-apt-repository cloud-archive:rocky
$ sudo apt update
$ sudo apt dist-upgrade --yes
$ ls -al /usr/share/openstack-dashboard/openstack_dashboard
lrwxrwxrwx 1 root root 37 Feb 14 19:26 /usr/share/openstack-dashboard/openstack_dashboard -> /etc/alternatives/openstack_dashboard
$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 109
drwxr-xr-x 19 root root 41 Feb 14 19:26 .
drwxr-xr-x 252 root root 328 Feb 14 19:26 ..
-rw-r--r-- 1 root root 204 Oct 22 13:46 .eslintrc
-rw-r--r-- 1 root root 0 Oct 22 13:46 __init__.py
-rw-r--r-- 1 root root 151 Feb 14 19:26 __init__.pyc
drwxr-xr-x 3 root root 23 Feb 14 19:26 api
drwxr-xr-x 4 root root 9 Feb 14 19:26 conf
-rw-r--r-- 1 root root 4469 Oct 22 13:46 context_processors.py
-rw-r--r-- 1 root root 3393 Feb 14 19:26 context_processors.pyc
drwxr-xr-x 3 root root 5 Feb 14 19:26 contrib
drwxr-xr-x 6 root root 8 Feb 14 19:26 dashboards
drwxr-xr-x 2 root root 4 Feb 14 19:26 django_pyscss_fix
drwxr-xr-x 2 root root 125 Feb 14 19:26 enabled
-rw-r--r-- 1 root root 2084 Oct 22 13:46 exceptions.py
-rw-r--r-- 1 root root 929 Feb 14 19:26 exceptions.pyc
-rw-r--r-- 1 root root 1063 Oct 22 13:46 hooks.py
-rw-r--r-- 1 root root 560 Feb 14 19:26 hooks.pyc
-rw-r--r-- 1 root root 6794 Oct 22 13:46 karma.conf.js
drwxr-xr-x 4 root root 9 Feb 14 19:26 local
drwxr-xr-x 36 root root 36 Feb 14 19:25 locale
drwxr-xr-x 3 root root 5 Feb 14 19:26 management
-rw-r--r-- 1 root root 2171 Oct 22 13:46 policy.py
-rw-r--r-- 1 root root 2042 Feb 14 19:26 policy.pyc
-rw-r--r-- 1 root root 15713 Dec 5 16:45 settings.py
-rw-r--r-- 1 root root 13428 Feb 14 19:26 settings.pyc
drwxr-xr-x 5 root root 5 Feb 14 19:25 static
drwxr-xr-x 7 root root 17 Feb 14 19:26 templates
drwxr-xr-x 2 root root 8 Feb 14 19:26 templatetags
drwxr-xr-x 10 root root 22 Feb 14 19:26 test
-rw-r--r-- 1 root root 2504 Oct 22 13:46 theme_settings.py
-rw-r--r-- 1 root root 1446 Feb 14 19:26 theme_settings.pyc
drwxr-xr-x 5 root root 5 Feb 14 19:25 themes
-rw-r--r-- 1 root root 2357 Oct 22 13:46 urls.py
-rw-r--r-- 1 root root 1646 Feb 14 19:26 urls.pyc
drwxr-xr-x 2 root root 12 Feb 14 19:26 usage
drwxr-xr-x 2 root root 16 Feb 14 19:26 utils
-rw-r--r-- 1 root root 4195 Oct 22 13:46 views.py
-rw-r--r-- 1 root root 4150 Feb 14 19:26 views.pyc
drwxr-xr-x 2 root root 3 Feb 14 19:26 wsgi
-rw-r--r-- 1 root root 976 Oct 22 13:46 wsgi.py
-rw-r--r-- 1 root root 657 Feb 14 19:26 wsgi.pyc

Revision history for this message
Corey Bryant (corey.bryant) wrote :

I think comment #1 points to a charm bug but still need to dig more.

Revision history for this message
Corey Bryant (corey.bryant) wrote :

The charm runs:

sudo apt-get --assume-yes --option Dpkg::Options::=--force-confnew --option Dpkg::Options::=--force-confdef dist-upgrade

and in the openstack-dashboard charm log I'm seeing:

019-02-14 19:06:42 INFO juju-log Upgrading with options: ['--option', 'Dpkg::Options::=--force-confnew', '--option', 'Dpkg::Options::=--force-confdef']
...
2019-02-14 19:06:47 DEBUG config-changed Get:33 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main amd64 python-django-horizon all 3:14.0.1-0ubuntu1~cloud0 [9415 kB]
...
2019-02-14 19:06:58 DEBUG config-changed Setting up python-django-horizon (3:14.0.1-0ubuntu1~cloud0) ...
2019-02-14 19:06:58 DEBUG config-changed update-alternatives: using /usr/lib/python2.7/dist-packages/openstack_dashboard to provide /usr/share/openstack-dashboard/openstack_dashboard (openstack_dashboard) in auto mode
2019-02-14 19:06:58 DEBUG config-changed update-alternatives: warning: not replacing /usr/share/openstack-dashboard/openstack_dashboard with a link

Revision history for this message
Corey Bryant (corey.bryant) wrote :

Also in the log:

2019-02-14 19:06:52 DEBUG config-changed dpkg: warning: unable to delete old directory '/var/lib/openstack-dashboard': Directory not empty
2019-02-14 19:06:53 DEBUG config-changed dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard/openstack_dashboard/conf': Directory not empty
2019-02-14 19:06:53 DEBUG config-changed dpkg: warning: unable to delete old directory '/etc/openstack-dashboard': Directory not empty
...
2019-02-14 19:06:54 DEBUG config-changed dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard/openstack_dashboard/enabled': Directory not empty
2019-02-14 19:06:54 DEBUG config-changed dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard/openstack_dashboard': Directory not empty

Revision history for this message
Corey Bryant (corey.bryant) wrote :

Running what the charm does (from comment #3) on my own with a manual upgrade works ok:

$ sudo apt-get --assume-yes --option Dpkg::Options::=--force-confnew --option Dpkg::Options::=--force-confdef dist-upgrade
...
Get:28 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main amd64 python-django-horizon all 3:14.0.1-0ubuntu1~cloud0 [9415 kB]
...
Unpacking openstack-dashboard (3:14.0.1-0ubuntu1~cloud0) over (3:13.0.1-0ubuntu4) ...
dpkg: warning: unable to delete old directory '/var/lib/openstack-dashboard': Directory not empty
dpkg: warning: unable to delete old directory '/etc/openstack-dashboard': Directory not empty
...
Setting up python-django-horizon (3:14.0.1-0ubuntu1~cloud0) ...
update-alternatives: using /usr/lib/python2.7/dist-packages/openstack_dashboard to provide /usr/share/openstack-dashboard/openstack_dashboard (openstack_dashboard) in auto mode

$ ls -al /usr/share/openstack-dashboard/openstack_dashboard
lrwxrwxrwx 1 root root 37 Feb 14 20:03 /usr/share/openstack-dashboard/openstack_dashboard -> /etc/alternatives/openstack_dashboard

Revision history for this message
Corey Bryant (corey.bryant) wrote :

I wonder if it is something to do with config rendered by the charm.

Revision history for this message
Corey Bryant (corey.bryant) wrote :

This appears to be an issue related to charm templates:

I added the following file prior to manually upgrading the py2 package from queens->rocky:

$ sudo cat /usr/share/openstack-dashboard/openstack_dashboard/enabled/_40_router.py
#The name of the dashboard to be added to HORIZON['dashboards']. Required.
DASHBOARD = 'router'

# A list of applications to be added to INSTALLED_APPS.
ADD_INSTALLED_APPS = [
    'openstack_dashboard.dashboards.router',
]

# If set to True, this dashboard will not be added to the settings.
DISABLED = True

$ sudo apt-get --assume-yes --option Dpkg::Options::=--force-confnew --option Dpkg::Options::=--force-confdef dist-upgrade
...
Get:28 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main amd64 python-django-horizon all 3:14.0.1-0ubuntu1~cloud0 [9415 kB]
...
Unpacking openstack-dashboard (3:14.0.1-0ubuntu1~cloud0) over (3:13.0.1-0ubuntu4) ...
dpkg: warning: unable to delete old directory '/var/lib/openstack-dashboard': Directory not empty
dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard/openstack_dashboard/enabled': Directory not empty
dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard/openstack_dashboard': Directory not empty
dpkg: warning: unable to delete old directory '/usr/share/openstack-dashboard': Directory not empty
dpkg: warning: unable to delete old directory '/etc/openstack-dashboard': Directory not empty
...
Setting up python-django-horizon (3:14.0.1-0ubuntu1~cloud0) ...
update-alternatives: using /usr/lib/python2.7/dist-packages/openstack_dashboard to provide /usr/share/openstack-dashboard/openstack_dashboard (openstack_dashboard) in auto mode
update-alternatives: warning: not replacing /usr/share/openstack-dashboard/openstack_dashboard with a link

$ ls -al /usr/share/openstack-dashboard/
total 18
drwxr-xr-x 4 root root 6 Feb 14 20:26 .
drwxr-xr-x 121 root root 121 Feb 14 20:19 ..
drwxr-xr-x 3 root root 3 Feb 14 20:26 bin
-rwxr-xr-x 1 root root 881 Dec 5 16:45 manage.py
drwxr-xr-x 3 root root 3 Feb 14 20:26 openstack_dashboard
-rw-r--r-- 1 root root 15713 Dec 5 16:45 settings.py

$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 13
drwxr-xr-x 3 root root 3 Feb 14 20:26 .
drwxr-xr-x 4 root root 6 Feb 14 20:26 ..
drwxr-xr-x 2 root root 3 Feb 14 20:26 enabled

Revision history for this message
Corey Bryant (corey.bryant) wrote :

I'm not sure whether the fix belongs in the charm or the package. We could remove the rendered charm files from /usr/share/openstack-dashboard/openstack_dashboard prior to upgrading. Another option is the package could forcefully remove /usr/share/openstack-dashboard/openstack_dashboard in the preinst script for rocky. The latter might make sense since it's not much different from removing the alternative in the prerm/postrm scripts.

summary: - Upgrade from rocky python2->python3 packages breaks openstack_dashboard
- alternative
+ Upgrade from queens py2 -> rocky py2 packages breaks
+ /usr/share/openstack-dashboard/openstack_dashboard
Revision history for this message
Nobuto Murata (nobuto) wrote : Re: Upgrade from queens py2 -> rocky py2 packages breaks /usr/share/openstack-dashboard/openstack_dashboard

Subscribing ~field-high because:
- it's blocking one of the user acceptance testing
- upgrading Queens to Rocky using charms is a reasonable expectation

Revision history for this message
Corey Bryant (corey.bryant) wrote :

I'm going to fix this in the package.

Changed in horizon (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in charm-openstack-dashboard:
status: New → Invalid
Changed in horizon (Ubuntu):
assignee: nobody → Corey Bryant (corey.bryant)
summary: - Upgrade from queens py2 -> rocky py2 packages breaks
+ [SRU] Upgrade from queens py2 -> rocky py2 packages breaks
/usr/share/openstack-dashboard/openstack_dashboard
description: updated
Revision history for this message
Corey Bryant (corey.bryant) wrote :

A fix has been provided for cosmic/rocky in the horizon 3:14.0.1-0ubuntu2 package version which is currently in the Cosmic Unapproved queue awaiting review by the SRU team [1].

[1] https://launchpad.net/ubuntu/cosmic/+queue?queue_state=1&queue_text=

Changed in horizon (Ubuntu Cosmic):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Corey Bryant (corey.bryant)
Changed in horizon (Ubuntu):
assignee: Corey Bryant (corey.bryant) → nobody
importance: High → Undecided
status: Triaged → Invalid
Changed in cloud-archive:
status: New → Invalid
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Please test proposed package

Hello Corey, or anyone else affected,

Accepted horizon into cosmic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/horizon/3:14.0.1-0ubuntu2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-cosmic to verification-done-cosmic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-cosmic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in horizon (Ubuntu Cosmic):
status: Triaged → Fix Committed
tags: added: verification-needed verification-needed-cosmic
Revision history for this message
Corey Bryant (corey.bryant) wrote :

Hello Corey, or anyone else affected,

Accepted horizon into rocky-proposed. The package will build now and be available in the Ubuntu Cloud Archive in a few hours, and then in the -proposed repository.

Please help us by testing this new package. To enable the -proposed repository:

  sudo add-apt-repository cloud-archive:rocky-proposed
  sudo apt-get update

Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-rocky-needed to verification-rocky-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-rocky-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: added: verification-rocky-needed
Revision history for this message
Corey Bryant (corey.bryant) wrote :
Download full text (13.6 KiB)

cosmic-proposed testing has completed successfully. I've confirmed /usr/share directories and alternatives look correct and I've also manually performed various tasks with the openstack dashboard.

Testing with python3-django-horizon:

ubuntu@juju-16ffc5-coreycb2-16:~$ ls -al /usr/share/openstack-dashboard/openstack_dashboard
lrwxrwxrwx 1 root root 37 Mar 6 20:41 /usr/share/openstack-dashboard/openstack_dashboard -> /etc/alternatives/openstack_dashboard
ubuntu@juju-16ffc5-coreycb2-16:~$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 164
drwxr-xr-x 20 root root 4096 Mar 6 20:41 .
drwxr-xr-x 303 root root 20480 Mar 6 20:41 ..
-rw-r--r-- 1 root root 204 Oct 22 13:46 .eslintrc
-rw-r--r-- 1 root root 0 Oct 22 13:46 __init__.py
drwxr-xr-x 2 root root 4096 Mar 6 20:41 __pycache__
drwxr-xr-x 4 root root 4096 Mar 6 20:41 api
drwxr-xr-x 4 root root 4096 Mar 6 20:44 conf
-rw-r--r-- 1 root root 4469 Oct 22 13:46 context_processors.py
drwxr-xr-x 4 root root 4096 Mar 6 20:41 contrib
drwxr-xr-x 7 root root 4096 Mar 6 20:41 dashboards
drwxr-xr-x 3 root root 4096 Mar 6 20:41 django_pyscss_fix
drwxr-xr-x 3 root root 4096 Mar 6 20:44 enabled ...

tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Thank you for the verification! The heat-dashboard/armhf autopkgtest seems to be failing for this upload, but checking the logs this seems to be a testbed timeout already seen previously. I will be ignoring this failure temporarily.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package horizon - 3:14.0.1-0ubuntu2

---------------
horizon (3:14.0.1-0ubuntu2) cosmic; urgency=medium

  * d/python*-django-horizon.preinst: As of rocky,
    /usr/share/openstack-dashboard/openstack_dashboard is a symlink created
    with update-alternatives. Prior to rocky, files were copied to
    /usr/share/openstack-dashboard/openstack_dashboard. This change ensures
    the directory is removed if it is not a symlink prior to rocky
    installation (LP: #1815948).

 -- Corey Bryant <email address hidden> Wed, 20 Feb 2019 12:15:16 -0500

Changed in horizon (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for horizon has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Corey Bryant (corey.bryant) wrote :
Download full text (5.4 KiB)

Testing was successful with an upgrade from bionic (queens) to rocky-proposed:

bionic-queens
-------------
ubuntu@juju-ec9b14-coreycb2-18:~$ apt policy openstack-dashboard
openstack-dashboard:
  Installed: 3:13.0.1-0ubuntu4
  Candidate: 3:13.0.1-0ubuntu4
  Version table:
 *** 3:13.0.1-0ubuntu4 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     3:13.0.0-0ubuntu1 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
ubuntu@juju-ec9b14-coreycb2-18:~$ ls -al /usr/share/openstack-dashboard/openstack_dashboard/
total 228
drwxr-xr-x 19 root root 4096 Mar 29 15:43 .
drwxr-xr-x 3 root root 4096 Mar 29 15:43 ..
-rw-r--r-- 1 root root 204 May 8 2018 .eslintrc
-rw-r--r-- 1 root root 0 May 8 2018 __init__.py
-rw-r--r-- 1 root root 149 Mar 29 15:43 __init__.pyc
drwxr-xr-x 3 root root 4096 Mar 29 15:43 api
drwxr-xr-x 4 root root 4096 Mar 29 15:49 conf
-rw-r--r-- 1 root root 4471 May 8 2018 context_processors.py
-rw-r--r-- 1 root root 3388 Mar 29 15:43 context_processors.pyc
drwxr-xr-x 3 root root 4096 Mar 29 15:43 contrib
drwxr-xr-x 6 root root 4096 Mar 29 15:43 dashboards
drwxr-xr-x 2 root root 4096 Mar 29 15:43 django_pyscss_fix
drwxr-xr-x 2 root root 12288 Mar 29 15:49 enabled
-rw-r--r-- 1 root root 2084 May 8 2018 exceptions.py
-rw-r--r-- 1 root root 927 Mar 29 15:43 exceptions.pyc
-rw-r--r-- 1 root root 1063 May 8 2018 hooks.py
-rw-r--r-- 1 root root 556 Mar 29 15:43 hooks.pyc
-rw-r--r-- 1 root root 6794 May 8 2018 karma.conf.js
drwxr-xr-x 4 root root 4096 Mar 29 15:43 local
drwxr-xr-x 36 root root 4096 Mar 29 15:40 locale
drwxr-xr-x 3 root root 4096 Mar 29 15:43 management
-rw-r--r-- 1 root root 2171 May 8 2018 policy.py
-rw-r--r-- 1 root root 2034 Mar 29 15:43 policy.pyc
-rw-r--r-- 1 root root 16748 Nov 27 19:22 settings.py
-rw-r--r-- 1 root root 16675 Nov 27 19:22 settings.py.orig
-rw-r--r-- 1 root root 14292 Mar 29 15:43 settings.pyc
drwxr-xr-x 7 root root 4096 Mar 29 15:40 static
drwxr-xr-x 7 root root 4096 Mar 29 15:40 templates
drwxr-xr-x 2 root root 4096 Mar 29 15:43 templatetags
drwxr-xr-x 11 root root 4096 Mar 29 15:43 test
-rw-r--r-- 1 root root 4135 May 8 2018 theme_settings.py
-rw-r--r-- 1 root root 2130 Mar 29 15:43 theme_settings.pyc
drwxr-xr-x 5 root root 4096 Mar 29 15:40 themes
-rw-r--r-- 1 root root 2335 May 8 2018 urls.py
-rw-r--r-- 1 root root 1617 Mar 29 15:43 urls.pyc
drwxr-xr-x 2 root root 4096 Mar 29 15:43 usage
drwxr-xr-x 2 root root 4096 Mar 29 15:43 utils
-rw-r--r-- 1 root root 4597 May 8 2018 views.py
-rw-r--r-- 1 root root 4430 Mar 29 15:43 views.pyc
drwxr-xr-x 2 root root 4096 Mar 29 15:40 wsgi

after upgrade to rocky-proposed
-------------------------------
ubuntu@juju-ec9b14-coreycb2-18:~$ apt policy openstack-dashboard
openstack-dashboard:
  Installed: 3:14.0.2-0ubuntu1~cloud0
  Candidate: 3:14.0.2-0ubuntu1~cloud0
  Version table:
 *** 3:14.0.2-0ubuntu1~cloud0 500
        500 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic...

Read more...

Revision history for this message
Corey Bryant (corey.bryant) wrote :

Additionally the dashboard is functional after upgrade.

tags: added: verification-rocky-done
removed: verification-rocky-needed
Revision history for this message
Corey Bryant (corey.bryant) wrote :

horizon 3:14.0.2-0ubuntu1~cloud0 has just been promoted to rocky-updates. Marking this as fix released for rocky.

tags: added: py3
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.