Coverage for cfg_checker/cfg_check.py : 67%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import os
2import sys
3from logging import DEBUG, INFO
5from cfg_checker.cli.command import execute_command, helps, parsers
6from cfg_checker.common import config, logger, logger_cli
7from cfg_checker.helpers.args_utils import MyParser
9pkg_dir = os.path.dirname(__file__)
10pkg_dir = os.path.normpath(pkg_dir)
13def config_check_entrypoint():
14 """
15 Main entry point. Uses nested parsers structure
16 with a default function to execute the comand
18 :return: - no return value
19 """
20 # Main entrypoint
21 parser = MyParser(prog="# Mirantis Cloud configuration checker")
23 parser.add_argument(
24 "-d",
25 "--debug",
26 action="store_true", default=False,
27 help="Set CLI logging level to DEBUG"
28 )
29 parser.add_argument(
30 '-s',
31 '--sudo',
32 action='store_true', default=True,
33 help="Use sudo for getting salt creds"
34 )
35 subparsers = parser.add_subparsers(dest='command')
37 # create parsers
38 for _command in helps.keys():
39 _parser = subparsers.add_parser(
40 _command,
41 help=helps[_command]
42 )
43 parsers[_command](_parser)
45 # parse arguments
46 try:
47 args, unknown = parser.parse_known_args()
48 except TypeError:
49 logger_cli.info("\n# Please, check arguments")
50 sys.exit(1)
52 if unknown:
53 logger_cli.error(
54 "# Unexpected arguments: {}".format(
55 ", ".join(["'{}'".format(a) for a in unknown])
56 )
57 )
58 sys.exit(1)
60 # Pass externally configured values
61 config.ssh_uses_sudo = args.sudo
63 # Handle options
64 if args.debug:
65 logger_cli.setLevel(DEBUG)
66 else:
67 logger_cli.setLevel(INFO)
69 # Execute the command
70 result = execute_command(args, args.command)
71 logger.debug(result)
72 sys.exit(result)
75if __name__ == '__main__':
76 config_check_entrypoint()