blob: 0dcf426447a1da66c008a43830ab5ccd05a93e77 [file] [log] [blame]
Alex Savatieievc9055712019-03-01 14:43:56 -06001import os
2
3import comparer
4import validator
5
6from cfg_checker.common import logger_cli
7from cfg_checker.helpers import args_utils
8from cfg_checker.reports import reporter
9
10
11def do_list(args):
12 logger_cli.info("# Reclass list")
Alex41485522019-04-12 17:26:18 -050013 _arg_path = args_utils.get_arg(args, 'models_path')
14 logger_cli.info("-> Current path is: {}".format(_arg_path))
15 _path = args_utils.get_path_arg(_arg_path)
Alex Savatieievc9055712019-03-01 14:43:56 -060016
17 logger_cli.info("# ...models path is '{}'".format(args.models_path))
18
19 models = {}
20 for _folder in os.listdir(args.models_path):
21 # validate item as a model
22 _model_path = os.path.join(
23 args.models_path,
24 _folder
25 )
26 _validated = validator.basic_model_validation_by_path(_model_path)
27
28 if not _validated:
29 logger_cli.info("-> '{}' not a valid model".format(_folder))
30 continue
31 else:
32 models[_folder] = _model_path
33
34 logger_cli.info("-> '{}' at '{}'".format(_folder, _model_path))
35
36 # TODO: collect info about the model
37
38 return
39
40
41def do_diff(args):
Alex Savatieiev42b89fa2019-03-07 18:45:26 -060042 logger_cli.info("# Reclass comparer (HTML report: '{}'".format(args.file))
Alex41485522019-04-12 17:26:18 -050043 _filename = args_utils.get_arg(args, 'html')
Alex Savatieievc9055712019-03-01 14:43:56 -060044
45 # checking folder params
46 _model1 = args_utils.get_path_arg(args.model1)
47 _model2 = args_utils.get_path_arg(args.model2)
48
49 # Do actual compare using hardcoded model names
50 mComparer = comparer.ModelComparer()
51
52 mComparer.model_name_1 = os.path.split(_model1)[1]
53 mComparer.model_path_1 = _model1
54 mComparer.model_name_2 = os.path.split(_model2)[1]
55 mComparer.model_path_2 = _model2
56
57 mComparer.load_model_tree(
58 mComparer.model_name_1,
59 mComparer.model_path_1
60 )
61 mComparer.load_model_tree(
62 mComparer.model_name_2,
63 mComparer.model_path_2
64 )
65
66 diffs = mComparer.generate_model_report_tree()
67
68 report = reporter.ReportToFile(
69 reporter.HTMLModelCompare(),
70 _filename
71 )
72 logger_cli.info("# Generating report to {}".format(_filename))
73 report({
74 "nodes": {},
75 "diffs": diffs
76 })