import logging
from juju.model import Model
+from juju import loop
+log = logging.getLogger(__name__)
-async def run():
+MB = 1
+
+
+async def main():
model = Model()
await model.connect_current()
await model.reset(force=True)
ubuntu_app = await model.deploy(
'mysql',
- service_name='mysql',
+ application_name='mysql',
series='trusty',
channel='stable',
+ config={
+ 'tuning-level': 'safest',
+ },
constraints={
- 'mem': 512 * 1024 * 1024
+ 'mem': 256 * MB,
},
)
- print(await ubuntu_app.get_config())
- print(await ubuntu_app.get_constraints())
+
+ # update and check app config
+ await ubuntu_app.set_config({'tuning-level': 'fast'})
+ config = await ubuntu_app.get_config()
+ assert(config['tuning-level']['value'] == 'fast')
+
+ # update and check app constraints
+ await ubuntu_app.set_constraints({'mem': 512 * MB})
+ constraints = await ubuntu_app.get_constraints()
+ assert(constraints['mem'] == 512 * MB)
await model.disconnect()
- model.loop.stop()
-
-logging.basicConfig(level=logging.DEBUG)
-ws_logger = logging.getLogger('websockets.protocol')
-ws_logger.setLevel(logging.INFO)
-loop = asyncio.get_event_loop()
-loop.set_debug(False)
-loop.create_task(run())
-loop.run_forever()
+
+
+if __name__ == '__main__':
+ logging.basicConfig(level=logging.DEBUG)
+ ws_logger = logging.getLogger('websockets.protocol')
+ ws_logger.setLevel(logging.INFO)
+ loop.run(main())