~ubucon-site-developers/ubucon-site/ubucon-layer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from charms import django
from charms.reactive import (
    when,
    when_not,
    is_state,
    set_state,
    hook,
)

from charmhelpers.core.unitdata import kv
from charmhelpers.core.hookenv import (
    config,
    status_set,
    status_get,
    open_port,
)

from nginxlib import configure_site


@when('django.available')
@when_not('django.ready')
def manage_tasks():
    django.manage(['initdb'])
    django.manage(['collectstatic', '--noinput'])
    set_state('django.ready')


@when('nginx.available', 'django.ready')
def create_vhost():
    dcfg = django.config()
    configure_site('ubucon', 'ubucon-vhost.conf',
        port=config('django-port'),
        source_path=dcfg.get('source-path'),
        media_dir=dcfg.get('media-path'),
        static_dir=dcfg.get('static-path'),
    )

    open_port(80)
    status_set('active', 'ready')