wsgi.py is missing

Bug #1763204 reported by Adrian Turjak
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
Fix Released
High
Adrian Turjak

Bug Description

Horizon was likely started very early along with Django, and thus has the old format wsgi file as "django.wsgi".
https://github.com/openstack/horizon/tree/master/openstack_dashboard/wsgi

This is not how django names this file anymore, nor how it is really used.

https://stackoverflow.com/questions/20035252/difference-between-wsgi-py-and-django-wsgi
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/

The expectation is having a wsgi.py file somewhere along your importable python path. Normally this is in the same place as your settings.py file when building a default django project.

Ideally we should rename and move the file to a place it is easier to import from:
horizon/openstack_dashboard/wsgi/django.wsgi horizon/openstack_dashboard/wsgi.py

gunicorn cannot import and run it because it isn't a '.py' file, and is one of the most popular wsgi servers around.

By doing the above move and rename the file can now be imported and run as:
gunicorn openstack_dashboard.wsgi:application

NOTE: This will likely break anyone using it right now. We may instead want to copy the file to the new location and add a deprecation log into the old one with a notice to remove in 2 cycles. Ideally also document that deployers should be using the new file.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to horizon (master)

Fix proposed to branch: master
Review: https://review.openstack.org/561802

Changed in horizon:
assignee: nobody → Adrian Turjak (adriant-y)
status: New → In Progress
Akihiro Motoki (amotoki)
Changed in horizon:
importance: Undecided → High
milestone: none → rocky-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to horizon (master)

Reviewed: https://review.openstack.org/561802
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=0ca736e5da47413db6749053e6083b82cbb24825
Submitter: Zuul
Branch: master

commit 0ca736e5da47413db6749053e6083b82cbb24825
Author: Adrian Turjak <email address hidden>
Date: Tue Apr 17 18:27:27 2018 +1200

    Create new wsgi.py file and deprecate old file

    Django 1.4 stopped creating django.wsgi files and the common
    practice now for a while has been a wsgi.py since it is actually
    python code, and should actually be importable.

    Right now someone has to copy and rename the existing file if they
    want to use it with a server like gunicorn.

    This patch adds a new file in location that is importable via python
    and adds a deprecation log to the old one.

    This also updates the wsgi generation commands to instead create
    'horizon_wsgi.py' and have the apache conf generation also use that
    or the default wsgi file.

    Change-Id: I0f8bd16c8973ad23bcd8f73b54584dc69e5aed0c
    Closes-Bug: #1763204

Changed in horizon:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/horizon 14.0.0.0b2

This issue was fixed in the openstack/horizon 14.0.0.0b2 development milestone.

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.