Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import argparse
  3. import subprocess
  4. from pathlib import Path
  5. import yaml
  6.  
  7. COMMAND_LIST = ['start', 'status', 'stop']
  8. def read_config():
  9. config_path = Path.home() / '.dashboard_config.yml'
  10. if config_path.exists():
  11. with config_path.open() as stream:
  12. config = yaml.load(stream, Loader=yaml.FullLoader)
  13. return config
  14. else:
  15. print(f"Please create {config_path} first!")
  16.  
  17.  
  18. def db_run(args, config):
  19. command = [
  20. config['postgres']['cmd']['ctl'],
  21. '-D', config['postgres']['data'],
  22. args.cmd
  23. ]
  24. subprocess.call(command)
  25.  
  26.  
  27. def kafka_run(args, config):
  28. command = [
  29. config['confluent']['cmd']['ctl'], 'local', args.cmd
  30. ]
  31. subprocess.call(command)
  32.  
  33. def supervisor_run(args, config):
  34. options = args.options
  35. if len(options) == 0:
  36. options.append('status')
  37. command = [
  38. config['supervisor']['cmd']['ctl'],
  39. '-c', config['supervisor']['conf'],
  40. *options
  41. ]
  42. subprocess.call(command)
  43.  
  44. def view_log(args, config):
  45. service_name = args.name
  46. ext = 'err' if args.view_error else 'log'
  47.  
  48. log_path = Path(config['supervisor']['log']) / f'{service_name}.{ext}'
  49. if log_path.exists():
  50. subprocess.call(['cat', log_path])
  51. else:
  52. print(f'{log_path} does NOT exist!')
  53.  
  54. def main():
  55. config = read_config()
  56. parser = argparse.ArgumentParser()
  57. subparsers = parser.add_subparsers(dest='command', help='sub-command help')
  58. db_parser = subparsers.add_parser('db', help='db sub-commands')
  59. kafka_parser = subparsers.add_parser('kafka', help='kafka sub-commands')
  60. srv_parser = subparsers.add_parser('service', help='service sub-commands')
  61. log_parser = subparsers.add_parser('log', help='view logs')
  62.  
  63. db_parser.add_argument('cmd', choices=COMMAND_LIST)
  64. db_parser.set_defaults(func=db_run)
  65.  
  66. kafka_parser.add_argument('cmd', choices=COMMAND_LIST)
  67. kafka_parser.set_defaults(func=kafka_run)
  68.  
  69. srv_parser.add_argument('options', nargs=argparse.REMAINDER)
  70. srv_parser.set_defaults(func=supervisor_run)
  71.  
  72. log_parser.add_argument('-e', '--view_error', action='store_true',
  73. help='view errors')
  74. log_parser.add_argument('name', help='service name')
  75. log_parser.set_defaults(func=view_log)
  76.  
  77. args = parser.parse_args()
  78. args.func(args, config)
  79.  
  80.  
  81. if __name__ == '__main__':
  82. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement