Ubuntu Pastebin

Paste from marco at Mon, 27 Jun 2016 15:52:25 +0000

Download as text
 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from charmhelpers.core.hookenv import (
    config,
    status_set,
)

from charmhelpers.core.host import service_restart

from charms.reactive import (
    hook,
    when,
    set_state,
    is_state,
    remove_state,
    main,
    bus,
)

from charms.layer import mongodb


@when('config.changed.version')
def install():
    cfg = config()
    if mongodb.installed():
        status_set('maintenance',
                   'uninstalling mongodb {}'.format(mongodb.version()))
        m = mongodb.mongodb(cfg.previous('version')).uninstall()
        remove_state('mongodb.installed')
        remove_state('mongodb.ready')

    m = mongodb.mongodb(cfg.get('version'))
    status_set('maintenance', 'installing mongodb')
    m.install()
    set_state('mongodb.installed')


@when('mongodb.installed')
@when_not('mongodb.ready')
def configure()
    m = mongodb.mongodb(config().get('version')
    m.configure()
    service_restart('mongodb')


@when('config.changed')
@when_not('config.changed.version')
def check_config():
    remove_state('mongodb.ready')


@hook('update-status')
def update_status():
    if mongodb.installed():
        status_set('active', 'mongodb {}'.format(mongodb.version()))
    else:
        status_set('blocked', 'unable to install mongodb')


if __name__ == '__main__':
    main()
Download as text