Skip to content
Snippets Groups Projects
Commit 763c58bd authored by Daniel Xia's avatar Daniel Xia
Browse files

added IPRR coverage table in report

Change-Id: Ib097a06a4b5c78d607935bc4263ab5febbdaf596
parent c8f8ecbc
No related branches found
No related tags found
No related merge requests found
No preview for this file type
This diff is collapsed.
This diff is collapsed.
......@@ -270,6 +270,7 @@ class SiteDiscoveryTool:
ntp_res = verify_ntp(ntp_svr=ntp, svr_ip=ip)
self.log_result(ntp_res)
self.results['ntp'].append(ntp_res)
self.iprr.record_tested_net(ip)
else:
ntp_res = VerifyResults()
ntp_res.bOK = False
......@@ -325,6 +326,7 @@ class SiteDiscoveryTool:
con.errReason = 'Not in IPRR range'
self.log_result(con)
self.results[proto].append(con)
self.iprr.record_tested_net(ip)
else:
con = VerifyResults()
con.abstracts['host'] = ori_host
......@@ -352,6 +354,8 @@ class SiteDiscoveryTool:
con = verify_quic_connection(host, port)
self.log_result(con)
self.results[proto].append(con)
for ip_str in con.abstracts['ip']:
self.iprr.record_tested_net(ip_str)
print(f'\rVerifying {proto.upper()} connections ... {total}/{total}')
def bind_logger(self, logger: Logger):
......@@ -382,9 +386,10 @@ class SiteDiscoveryTool:
self.print_dns_table()
self.print_ntp_table()
self.print_session_table('tcp')
self.print_session_table('udp')
# self.print_session_table('udp')
self.print_session_table('ssl')
self.print_qbone_table()
self.print_iprr_table()
def print_local_network_table(self):
table = PrettyTable()
......@@ -497,3 +502,13 @@ class SiteDiscoveryTool:
print(table, file=self.reporter)
print('', file=self.reporter)
def print_iprr_table(self):
table = PrettyTable()
table.field_names = ['IPRR Network Range', "Test Covered"]
for net_range in self.iprr.net_ranges:
table.add_row([net_range['net_str'], net_range['tested']])
print(f'IPRR Network Range Coverage', file=self.reporter)
table.align["IPRR Network Range"] = "l"
table.align["Test Covered"] = "c"
print(table, file=self.reporter)
print('', file=self.reporter)
......@@ -97,17 +97,37 @@ class GdceDnsMap:
class GdceIpNetRanges:
def __init__(self, iprr_csv_file):
with open(iprr_csv_file, 'r') as f:
self.net_ranges = [ipaddress.ip_network(r[0].strip()) for r in csv.reader(f)]
self.net_ranges = [{
'net_str': r[0],
'net': ipaddress.ip_network(r[0]),
'tested': False
} for r in csv.reader(f, skipinitialspace=True)]
def is_in_range(self, ip_str: str) -> bool:
try:
ip = ipaddress.ip_address(ip_str)
for net in self.net_ranges:
if ip in net:
for net_range in self.net_ranges:
if ip in net_range['net']:
return True
except:
return False
def record_tested_net(self, ip_str: str) -> bool:
ret = False
try:
ip = ipaddress.ip_address(ip_str)
except:
return ret
for net_range in self.net_ranges:
if ip in net_range['net']:
net_range['tested'] = True
ret = True
return ret
def clear_tested_net(self):
for net_range in self.net_ranges:
net_range['tested'] = False
def is_ipv4_unicast(ip_str: str) -> bool:
r"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment