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

Bug #1815948 reported by Corey Bryant on 2019-02-14
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack openstack-dashboard charm
Undecided
Unassigned
Ubuntu Cloud Archive
Undecided
Unassigned
Rocky
High
Corey Bryant
horizon (Ubuntu)
Undecided
Unassigned
Cosmic
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
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

Corey Bryant (corey.bryant) wrote :

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

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

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

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

Corey Bryant (corey.bryant) wrote :

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

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

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

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

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 /usr/share
+ [SRU] Upgrade from queens py2 -> rocky py2 packages breaks /usr/share
/openstack-dashboard/openstack_dashboard
description: updated
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

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
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
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
Ł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.

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

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.

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...

Corey Bryant (corey.bryant) wrote :

Additionally the dashboard is functional after upgrade.

tags: added: verification-rocky-done
removed: verification-rocky-needed
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.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers