|
125 | 125 | } |
126 | 126 |
|
127 | 127 | # DNA Center | Normalized |
128 | | -DNA_CENTER_LIB_MAPPER = { |
| 128 | +DNACENTER_LIB_MAPPER = { |
129 | 129 | "IOS": "cisco_ios", |
130 | 130 | "IOS-XE": "cisco_ios", |
131 | 131 | "NX-OS": "cisco_nxos", |
132 | 132 | "IOS-XR": "cisco_xr", |
133 | 133 | } |
134 | 134 |
|
| 135 | +# REMOVE IN 2.X, kept for backward compatibility |
| 136 | +DNA_CENTER_LIB_MAPPER = copy.deepcopy(DNACENTER_LIB_MAPPER) |
| 137 | + |
135 | 138 | # Normalized | DNA Center |
136 | | -DNA_CENTER_LIB_MAPPER_REVERSE = { |
| 139 | +DNACENTER_LIB_MAPPER_REVERSE = { |
137 | 140 | "cisco_ios": "IOS", |
138 | 141 | "cisco_nxos": "NX-OS", |
139 | 142 | "cisco_xr": "IOS-XR", |
140 | 143 | } |
141 | 144 |
|
| 145 | +# REMOVE IN 2.X, kept for backward compatibility |
| 146 | +DNA_CENTER_LIB_MAPPER_REVERSE = copy.deepcopy(DNACENTER_LIB_MAPPER_REVERSE) |
| 147 | + |
142 | 148 | # Normalized | Netmiko |
143 | 149 | NETMIKO_LIB_MAPPER: t.Dict[str, str] = { |
144 | 150 | "a10": "a10", |
|
651 | 657 | _MAIN_LIB_MAPPER["watchguard_firebox"] = "watchguard_firebox" |
652 | 658 | _MAIN_LIB_MAPPER["windows"] = "windows" |
653 | 659 | MAIN_LIB_MAPPER: t.Dict[str, str] = {key: _MAIN_LIB_MAPPER[key] for key in sorted(_MAIN_LIB_MAPPER)} |
| 660 | + |
| 661 | +NAME_TO_LIB_MAPPER: t.Dict[str, t.Dict[str, str]] = { |
| 662 | + "aerleon": AERLEON_LIB_MAPPER, |
| 663 | + "ansible": ANSIBLE_LIB_MAPPER, |
| 664 | + "capirca": CAPIRCA_LIB_MAPPER, |
| 665 | + "dna_center": DNACENTER_LIB_MAPPER, |
| 666 | + "forward_networks": FORWARDNETWORKS_LIB_MAPPER, |
| 667 | + "hier_config": HIERCONFIG_LIB_MAPPER, |
| 668 | + "napalm": NAPALM_LIB_MAPPER, |
| 669 | + "netmiko": NETMIKO_LIB_MAPPER, |
| 670 | + "netutils_parser": NETUTILSPARSER_LIB_MAPPER, |
| 671 | + "nist": NIST_LIB_MAPPER, |
| 672 | + "ntc_templates": NTCTEMPLATES_LIB_MAPPER, |
| 673 | + "pyats": PYATS_LIB_MAPPER, |
| 674 | + "pyntc": PYNTC_LIB_MAPPER, |
| 675 | + "scrapli": SCRAPLI_LIB_MAPPER, |
| 676 | +} |
| 677 | + |
| 678 | + |
| 679 | +NAME_TO_LIB_MAPPER_REVERSE: t.Dict[str, t.Dict[str, str]] = { |
| 680 | + "aerleon": AERLEON_LIB_MAPPER_REVERSE, |
| 681 | + "ansible": ANSIBLE_LIB_MAPPER_REVERSE, |
| 682 | + "capirca": CAPIRCA_LIB_MAPPER_REVERSE, |
| 683 | + "dna_center": DNACENTER_LIB_MAPPER_REVERSE, |
| 684 | + "forward_networks": FORWARDNETWORKS_LIB_MAPPER_REVERSE, |
| 685 | + "hier_config": HIERCONFIG_LIB_MAPPER_REVERSE, |
| 686 | + "napalm": NAPALM_LIB_MAPPER_REVERSE, |
| 687 | + "netmiko": NETMIKO_LIB_MAPPER_REVERSE, |
| 688 | + "netutils_parser": NETUTILSPARSER_LIB_MAPPER_REVERSE, |
| 689 | + "nist": NIST_LIB_MAPPER_REVERSE, |
| 690 | + "ntc_templates": NTCTEMPLATES_LIB_MAPPER_REVERSE, |
| 691 | + "pyats": PYATS_LIB_MAPPER_REVERSE, |
| 692 | + "pyntc": PYNTC_LIB_MAPPER_REVERSE, |
| 693 | + "scrapli": SCRAPLI_LIB_MAPPER_REVERSE, |
| 694 | +} |
| 695 | + |
| 696 | + |
| 697 | +# Creates a structure like this: |
| 698 | +# { |
| 699 | +# "cisco_ios": { |
| 700 | +# "ansible": "cisco.ios.ios", |
| 701 | +# "napalm": "ios", |
| 702 | +# }, |
| 703 | +# "cisco_nxos": { |
| 704 | +# "ansible": "cisco.nxos.nxos", |
| 705 | +# "napalm": "nxos", |
| 706 | +# }, |
| 707 | +NAME_TO_ALL_LIB_MAPPER: t.Dict[str, t.Dict[str, str]] = {} |
| 708 | + |
| 709 | +for tool_name, mappings in NAME_TO_LIB_MAPPER_REVERSE.items(): |
| 710 | + for normalized_name, mapped_name in mappings.items(): |
| 711 | + NAME_TO_ALL_LIB_MAPPER.setdefault(normalized_name, {}) |
| 712 | + NAME_TO_ALL_LIB_MAPPER[normalized_name][tool_name] = mapped_name |
0 commit comments