Files @ 71bc6c4991f8
Branch filter:

Location: majic-ansible-roles/testsite/playbooks/roles/wsgihello/files/hello.wsgi

branko
MAR-132: Fix virtual environment set-up in wsgi_website role:

- Install more up-to-date version of pip. This fixes some issues
related to pip freeze detecting argparse and wsgiref in virtualenv
as separate packages.
- Remove the pkg-resources package from virtualenv. Workaround for
Debian-specific behaviour. More details at:
- https://github.com/pypa/pip/issues/4022
- https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871790
- Deploy Gunicorn requirements file without switching to website admin
user (otherwise Ansible fails to template the file due to
permissions restrictions).
- Updated test for checking packages installed in the virtualenv.
#!/usr/bin/env python

import os

def application(environ, start_response):
    status = '200 OK'

    template = """<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{title}</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
    <p>I am website {title}</p>
    <p>Accept-Encoding header was set to {acceptencoding}</p>
  </body>
</html>
"""
    output = template.format(title=os.environ.get("WEBSITE_NAME", "that nobody set a name for :("),
                             acceptencoding=environ.get("HTTP_ACCEPT_ENCODING"))

    response_headers = [('Content-type', 'text/html'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]