Add Juju Public Key
[osm/N2VC.git] / modules / libjuju / examples / config.py
1 """
2 This example:
3
4 1. Connects to the current model
5 2. Resets it
6 3. Deploys a charm and prints its config and constraints
7
8 """
9 import logging
10
11 from juju.model import Model
12 from juju import loop
13
14 log = logging.getLogger(__name__)
15
16 MB = 1
17
18
19 async def main():
20 model = Model()
21 # connect to current model with current user, per Juju CLI
22 await model.connect()
23
24 ubuntu_app = await model.deploy(
25 'mysql',
26 application_name='mysql',
27 series='trusty',
28 channel='stable',
29 config={
30 'tuning-level': 'safest',
31 },
32 constraints={
33 'mem': 256 * MB,
34 },
35 )
36
37 # update and check app config
38 await ubuntu_app.set_config({'tuning-level': 'fast'})
39 config = await ubuntu_app.get_config()
40 assert(config['tuning-level']['value'] == 'fast')
41
42 # update and check app constraints
43 await ubuntu_app.set_constraints({'mem': 512 * MB})
44 constraints = await ubuntu_app.get_constraints()
45 assert(constraints['mem'] == 512 * MB)
46
47 await model.disconnect()
48
49
50 if __name__ == '__main__':
51 logging.basicConfig(level=logging.DEBUG)
52 ws_logger = logging.getLogger('websockets.protocol')
53 ws_logger.setLevel(logging.INFO)
54 loop.run(main())