blob: b5809f3a3a4135e6cb5324ad24231252c8ca1499 [file] [log] [blame]
Alex3ebc5632019-04-18 16:47:18 -05001from cfg_checker.common import logger_cli
Alex205546c2020-12-30 19:22:30 -06002from cfg_checker.modules.network.mapper import SaltNetworkMapper, \
3 KubeNetworkMapper
Alex3ebc5632019-04-18 16:47:18 -05004from cfg_checker.modules.network.network_errors import NetworkErrors
Alex Savatieievf526dc02019-03-06 10:11:32 -06005from cfg_checker.reports import reporter
Alex Savatieiev9b2f6512019-02-20 18:05:00 -06006
7
Alexe0c5b9e2019-04-23 18:51:23 -05008class NetworkChecker(object):
Alex205546c2020-12-30 19:22:30 -06009 def __init__(self):
Alexe0c5b9e2019-04-23 18:51:23 -050010 logger_cli.debug("... init error logs folder")
Alex3ebc5632019-04-18 16:47:18 -050011 self.errors = NetworkErrors()
12
Alex836fac82019-08-22 13:36:16 -050013 def check_networks(self, map=True):
Alex1f90e7b2021-09-03 15:31:28 -050014 self.mapper.map_networks()
Alex836fac82019-08-22 13:36:16 -050015 self.mapper.create_map()
16 if map:
17 self.mapper.print_map()
Alex Savatieiev42b89fa2019-03-07 18:45:26 -060018
Alex3ebc5632019-04-18 16:47:18 -050019 def print_summary(self):
Alex3ebc5632019-04-18 16:47:18 -050020 logger_cli.info(self.errors.get_summary(print_zeros=False))
Alex3ebc5632019-04-18 16:47:18 -050021
22 def print_error_details(self):
23 # Detailed errors
Alexb151fbe2019-04-22 16:53:30 -050024 logger_cli.info(
25 "\n{}\n".format(
26 self.errors.get_errors()
27 )
28 )
Alex3ebc5632019-04-18 16:47:18 -050029
Alex Savatieiev9b2f6512019-02-20 18:05:00 -060030 def create_html_report(self, filename):
31 """
32 Create static html showing network schema-like report
33
34 :return: none
35 """
36 logger_cli.info("### Generating report to '{}'".format(filename))
37 _report = reporter.ReportToFile(
Alex205546c2020-12-30 19:22:30 -060038 reporter.HTMLNetworkReport(self.mapper.master),
Alex Savatieiev9b2f6512019-02-20 18:05:00 -060039 filename
40 )
Alex9a4ad212020-10-01 18:04:25 -050041 _report(
42 {
43 "domain": self.mapper.domain,
44 "nodes": self.mapper.nodes,
45 "map": self.mapper.map,
46 "mcp_release": self.mapper.cluster['mcp_release'],
47 "openstack_release": self.mapper.cluster['openstack_release']
48 }
49 )
Alex Savatieiev9b2f6512019-02-20 18:05:00 -060050 logger_cli.info("-> Done")
Alex205546c2020-12-30 19:22:30 -060051
52
53class SaltNetworkChecker(NetworkChecker):
54 def __init__(
55 self,
56 config,
57 skip_list=None,
58 skip_list_file=None
59 ):
60 super(SaltNetworkChecker, self).__init__()
61 self.mapper = SaltNetworkMapper(
62 config,
63 errors_class=self.errors,
64 skip_list=skip_list,
65 skip_list_file=skip_list_file
66 )
67
Alex359e5752021-08-16 17:28:30 -050068
Alex205546c2020-12-30 19:22:30 -060069class KubeNetworkChecker(NetworkChecker):
70 def __init__(
71 self,
72 config,
73 skip_list=None,
74 skip_list_file=None
75 ):
Alexc4f59622021-08-27 13:42:00 -050076 super(KubeNetworkChecker, self).__init__()
Alex205546c2020-12-30 19:22:30 -060077 self.mapper = KubeNetworkMapper(
78 config,
79 errors_class=self.errors,
80 skip_list=skip_list,
81 skip_list_file=skip_list_file
Alexe8643642021-08-23 14:08:46 -050082 )