diff --git a/code/reconcilevlans.py b/code/reconcilevlans.py index 22e81f2..a34bf63 100644 --- a/code/reconcilevlans.py +++ b/code/reconcilevlans.py @@ -1,20 +1,58 @@ import os +import pathlib +fnlist=[] +for dir in ['../configs/ct','../configs/sh']: + fnlist+=list(pathlib.Path(dir).glob('*8360*-?-*.cfg')) + fnlist+=list(pathlib.Path(dir).glob('*8325*.cfg')) + +#print(fnlist) + vlandict={} +vlannamedict={} -for fn in [ '../configs/ct/ct-noc-a8325-a.cfg' ]: - print(os.path.basename(fn)) - with open(fn) as infile: +allfilenames=[] + +for fn in fnlist: + with fn.open() as infile: + allfilenames.append(fn.name.split('.')[0]) for line in infile: - if line.startswith("vlan"): - print(line) - vlan=line.strip() + if line.startswith("vlan "): + #print(line) + vlan=int(line.strip().split()[1]) try: - vlandict[vlan].append(fn) + vlandict[vlan].append(os.path.basename(fn).split('.')[0]) except KeyError: vlandict[vlan]=[] - vlandict[vlan].append(fn) + vlandict[vlan].append(os.path.basename(fn).split('.')[0]) + elif line.strip().startswith("name"): + if vlan: + vlannamedict[vlan]=line.strip()[5:] + vlan=None -print(vlandict) +#print(vlandict) +#print (allfilenames) +#sys.exit() +missingdict={} +#sys.exit() +for vlan in vlandict: + for fn in allfilenames: + #print(vlandict[vlan]) + if fn not in vlandict[vlan]: + #print(f"{fn} missing {vlan}") + if fn not in missingdict: + missingdict[fn]=[] + missingdict[fn].append(vlan) + +#print(missingdict) + + +for fn in missingdict: + vlanlist=[] + for vlan in sorted(missingdict[fn]): + vlanlist.append(str(vlan)) + print(f"{fn} missing {','.join(vlanlist)}") + +print(vlannamedict) \ No newline at end of file