Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import asyncio
  3. import functools
  4. import logging
  5. import signal
  6. import sys
  7. from concurrent.futures import CancelledError
  8.  
  9. from juju.model import Model
  10.  
  11.  
  12. username = sys.argv[1]
  13. password = sys.argv[2]
  14. controller_endpoint = sys.argv[3]
  15. model_uuid = sys.argv[4]
  16. cacert = None
  17.  
  18. model = Model()
  19.  
  20.  
  21. async def connect_to_model():
  22. await model.connect(
  23. controller_endpoint,
  24. model_uuid,
  25. username,
  26. password,
  27. cacert)
  28.  
  29.  
  30. def shutdown(loop):
  31. logging.info('received stop signal, cancelling tasks...')
  32. for task in asyncio.Task.all_tasks():
  33. task.cancel()
  34. logging.info('bye, exiting in a minute...')
  35.  
  36.  
  37. def main():
  38. logging.getLogger().setLevel(logging.INFO)
  39. loop = asyncio.get_event_loop()
  40. loop.add_signal_handler(signal.SIGHUP, functools.partial(shutdown, loop))
  41. loop.add_signal_handler(signal.SIGTERM, functools.partial(shutdown, loop))
  42.  
  43. try:
  44. loop.run_until_complete(connect_to_model())
  45. except KeyboardInterrupt:
  46. pass
  47. loop.close()
  48. sys.exit(1)
  49.  
  50.  
  51.  
  52. if __name__ == '__main__':
  53. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement