from ipaddress import IPv4Address print("\nNormalization tests\n") # ----- STRING NORMALIZATION -------------------- device_1 = { "name": "sbx-n9kv-ao", "vendor": "cisco", "model": "Nexus9000 C9300v Chassis", "os": "nxos", "version": "9.3(3)", "ip": "10.1.1.1", 1: "any data goes here", } device_2 = { "name": "SBX-n9kv-AO", "vendor": "Cisco", "model": "Nexus9000 C9300v Chassis", "os": "NXOS", "version": "9.3(3)", "ip": "10.1.1.1", 1: "any data goes here", } if ( device_1["name"].lower() == device_2["name"].lower() and device_1["vendor"].lower() == device_2["vendor"].lower() and device_1["model"].lower() == device_2["model"].lower() and device_1["os"].lower() == device_2["os"].lower() ): print("--String lower() normalization works") else: print("--String lower() normalization failed") if ( device_1["name"].casefold() == device_2["name"].casefold() and device_1["vendor"].casefold() == device_2["vendor"].casefold() and device_1["model"].casefold() == device_2["model"].casefold() and device_1["os"].casefold() == device_2["os"].casefold() ): print("--String casefold() normalization works") else: print("--String casefold() normalization failed") # ----- MAC ADDRESS NORMALIZATION -------------------- mac_addr_colons = "a0:b1:c2:d3:e4:f5" mac_addr_caps = "A0:B1:C2:D3:E4:F5" mac_addr_dots = "a0b1.c2d3.e4f5" mac_addr_hyphens = "A0-B1-C2-D3-E4-F5" mac_addr_wacky = "A0-b1.C2:D3.e4-f5" mac_addr_norm = "a0b1c2d3e4f5" # Return normalized MAC addresses def normalize(mac): return mac.lower().replace(":", "").replace(".", "").replace("-", "") if ( normalize(mac_addr_colons) == normalize(mac_addr_caps) == normalize(mac_addr_dots) == normalize(mac_addr_hyphens) == normalize(mac_addr_wacky) == mac_addr_norm ): print("--MAC address normalization works") else: print("--MAC address normalization failed") # ----- IP ADDRESS NORMALIZATION -------------------- ip_addr_1 = "10.0.1.1" ip_addr_2 = "10.000.001.001" ip_addr_3 = "010.00.01.001" if IPv4Address(ip_addr_1) == IPv4Address(ip_addr_2) == IPv4Address(ip_addr_3): print("--IP address normalization works") else: print("--IP address normalization failed") # ----- DEVICE DATA NORMALIZATION -------------------- # (see NAPALM examples)