Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,42 +20,42 @@ Regardless, the Onboarding App greatly simplifies the onboarding process by allo
### Support Matrix (Sync Devices From Network)


| Data Attribute | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 | HP Comware | Palo Alto Panos | Aruba AOSCX |
| ---------------------- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| Hostname | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Platform | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Manufacturer | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Serial Number | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Device Type | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Mgmt Interface | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Mgmt IP Address | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 |
| Data Attribute | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 | HP Comware | Palo Alto Panos | Aruba AOSCX | Aruba OS | Brocade/Ruckus Fastiron | HP Procurve |
| ---------------------- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| Hostname | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Platform | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Manufacturer | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Serial Number | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Device Type | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Mgmt Interface | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Mgmt IP Address | ✅ | ✅ | ✅ | 🧪 | ✅ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |


### Support Matrix (Sync Data From Network)

| Interfaces | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 |
| ----------------------- | :----------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :-: |
| Name | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| IP Address | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Type | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| MTU | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Description | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Mac Address | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Link Status | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| 802.1Q mode | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Lag Member | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Vrf Membership | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |
| Software Version | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | |

| VLANS | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 |
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: |
| Untagged VLANs | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | |
| Tagged VLANs | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | |

| Cabling | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 |
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: |
| Terminations A | 🧪 | 🧪 | ❌ | 🧪 | ❌ | 🧪 | ❌ | |
| Terminations B | 🧪 | 🧪 | ❌ | 🧪 | ❌ | 🧪 | ❌ | |
| Interfaces | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 | Aruba AOSCX | Aruba OS | Brocade/Ruckus Fastiron | HP Procurve |
| ----------------------- | :----------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
| Name | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| IP Address | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Type | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| MTU | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Description | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Mac Address | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Link Status | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| 802.1Q mode | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Lag Member | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Vrf Membership | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Software Version | ✅ | ✅ | ✅ | 🧪 | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |

| VLANS | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 | Aruba AOSCX | Aruba OS | Brocade/Ruckus Fastiron | HP Procurve |
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
| Untagged VLANs | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Tagged VLANs | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |

| Cabling | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 | Aruba AOSCX | Aruba OS | Brocade/Ruckus Fastiron | HP Procurve |
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
| Terminations A | 🧪 | 🧪 | ❌ | 🧪 | ❌ | 🧪 | ❌ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
| Terminations B | 🧪 | 🧪 | ❌ | 🧪 | ❌ | 🧪 | ❌ | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |

| Legend |
| :---- |
Expand Down
5 changes: 5 additions & 0 deletions changes/424.added
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Adds support for Brocade/Ruckus fastiron. Tested in SW versions: 08.0.30hT211,08.0.30hT213,08.0.30saT211,08.0.61aT211,08.0.61cT211,08.0.61T203,08.0.61T211,08.0.70dbT211,08.0.80bT211,08.0.80cT211,08.0.80cT213,08.0.80dT213,08.0.90dT211,08.0.90dT213,08.0.90jT211,08.0.90T211,08.0.92bT211,08.0.92bT213,08.0.92T211,08.0.92T213,08.0.92T233,08.0.95bbT211,08.0.95bbT213,08.0.95dT211,08.0.95fT211,08.0.95gT211,08.0.95gT241,08.0.95hT211,08.0.95jT211,08.0.95kT211,08.0.95kT213,08.0.95mT213,08.0.95nT211,08.0.95rT211,10.0.00T253,10.0.10bT253,10.0.10c_cd4T253,10.0.10d_cd2T253,10.0.10d_cd3T253,10.0.10f_cd1T213,10.0.10f_cd1T243,10.0.10f_cd1T253,10.0.10f_cd2T253,10.0.10f_cd3T253,10.0.10f_cd4T213,10.0.10fT253
Adds support for HP Procurve. Tested in SW versions: A.15.09.0012,A.15.15.0012,A.15.16.0021,C.09.22,C.09.30,E.11.43,F.05.80,G.07.117,H.10.119,I.10.107,J.15.09.0028,K.15.02.0005,K.15.18.0015,K.15.18.0021,K.16.02.0030,K.16.02.0033,KA.16.04.0023,KB.15.15.0008,KB.15.18.0010,KB.16.02.0013,KB.16.05.0007,KB.16.07.0003,KB.16.10.0016,KB.16.10.0022,KB.16.11.0001,KB.16.11.0013,KB.16.11.0015,KB.16.11.0019,KB.16.11.0020,KB.16.11.0021,L.11.48,M.10.104,N.11.52,N.11.78,Q.11.17,Q.11.57,Q.11.78,R.11.122,R.11.25,R.11.30,R.11.70,RA.16.04.0023,S.15.09.0029,U.11.10,U.11.11,U.11.66,W.15.14.0018,WB.16.10.0016,Y.11.52,YA.15.17.0009,YA.16.01.0004,YA.16.02.0012,YA.16.10.0009,YA.16.10.0016,YA.16.11.0001,YA.16.11.0003,YA.16.11.0015,YA.16.11.0018,YA.16.11.0021,YB.16.03.0003,YB.16.10.0016,YB.16.11.0001,YB.16.11.0023
Adds network data sync support for ArubaCX. Tested in SW versions: FL.10.10.1030,FL.10.13.1000,FL.10.13.1031,FL.10.13.1040,FL.10.13.1060,FL.10.13.1101,FL.10.13.1110,FL.10.14.1000,FL.10.15.0005,ML.10.10.1030,ML.10.13.0001,ML.10.13.1031,ML.10.13.1040,ML.10.13.1060,ML.10.13.1080,ML.10.13.1090,ML.10.14.0001,ML.10.14.1010,ML.10.15.0005,PL.10.08.1010,PL.10.10.1090,PL.10.11.1001,PL.10.11.1011,PL.10.13.1031,PL.10.13.1040,PL.10.13.1050,PL.10.13.1060,PL.10.13.1070,PL.10.13.1080,PL.10.13.1090,PL.10.14.1000,PL.10.14.1010,PL.10.14.1020,PL.10.14.1050,PL.10.15.0005,PL.10.15.1020,RL.10.13.1040
Adds support for ArubaOS. Tested in SW versions: FL.10.06.0101,FL.10.06.0170,KA.16.02.0028,KA.16.04.0023,KB.16.10.0009,ML.10.06.0101,PB.03.10,RA.16.04.0016,RA.16.04.0023,WB.16.10.0009,WB.16.10.0016,YA.16.10.0016,YB.16.10.0016,YC.16.10.0009
Adds network data sync for F5 tmsh. Tested in SW versions: 17.1.13, 15.1.10.2
100 changes: 100 additions & 0 deletions nautobot_device_onboarding/command_mappers/aruba_aoscx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,103 @@ sync_devices:
jpath: "[?contains(ip_address, `{{ obj }}/`)].ip_address"
post_processor: "{{ obj[0].split('/')[1] }}"
iterable_type: "int"
sync_network_data:
pre_processor:
vlan_map:
commands:
- command: "show vlan"
parser: "textfsm"
jpath: "[*].[$vlan_id$,vlan_name]"
post_processor: "{{ obj | flatten_list_of_dict_from_value('vlan_name') | tojson }}"
software_version:
commands:
- command: "show system"
parser: "textfsm"
jpath: "[*].version"
serial:
commands:
- command: "show system"
parser: "textfsm"
jpath: "[*].serial"
interfaces:
root_key: true
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[*].interface"
post_processor: "{% set result={} %}{% for interface in obj %}{{ result.update({interface: {}}) or '' }}{% endfor %}{{ result | tojson }}"
interfaces__type:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].hw_type"
post_processor: "{% if 'lag' in current_key %}{{ 'lag' }}{% else %}{{ obj[0] | lower | map_interface_type }}{% endif %}"
interfaces__ip_addresses:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].{ip_address: ip_address}"
post_processor: "{% if obj and obj[0]['ip_address'] and '/' in obj[0]['ip_address'] %}{% set cidr = obj[0]['ip_address'].split('/') %}{% set ip = cidr[0] %}{% set mask = cidr[1] | int %}{{ obj[0].update({'ip_address': ip, 'prefix_length': mask}) or obj | tojson }}{% else %}{{ obj | tojson }}{% endif %}"
iterable_type: "list"
interfaces__mtu:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].mtu"
iterable_type: "str"
interfaces__mac_address:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].mac_address"
interfaces__description:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].interface_desc"
interfaces__link_status:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].link_status"
post_processor: "{{ obj[0] | interface_status_to_bool }}"
interfaces__802.1Q_mode:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, trunking_vlans: vlan_trunk}"
post_processor: "{% if obj and 'tagged' in obj[0]['mode'] %}{{ 'tagged' }}{% else %}{{ 'access' }}{% endif %}"
iterable_type: "str"
interfaces__lag:
commands:
- command: "show interface | begin lag"
parser: "textfsm"
jpath: "[?contains(@.aggregated_interfaces, `{{ current_key }}`)].interface"
post_processor: "{% if obj | length > 0 %}{{ obj[0] | canonical_interface_name }}{% else %}{{ obj }}{% endif %}"
iterable_type: "str"
interfaces__vrf:
commands:
- command: "show vrf"
parser: "textfsm"
jpath: "[?contains(@.vrf_interfaces, `{{ current_key }}`)].{name:vrf_name}"
post_processor: "{% if obj | length > 0 %}{{ obj[0] | key_exist_or_default('name') | tojson }}{% else %}{{ {} | tojson }}{% endif %}"
iterable_type: "dict"
interfaces__tagged_vlans:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, access_vlan: vlan_access, trunking_vlans: vlan_trunk, native_vlan: vlan_native}"
post_processor: "{% if obj and 'tagged' in obj[0]['mode'] and obj[0]['trunking_vlans'] %}{% set result = [] %}{% for vlan in obj[0]['trunking_vlans'] %}{% if vlan in vlan_map and vlan != obj[0]['native_vlan'] %}{% set _=result.append({'id': vlan, 'name': vlan_map[vlan]}) %}{% endif %}{% endfor %}{{ result | tojson }}{% else %}{{ [] | tojson }}{% endif %}"
interfaces__untagged_vlan:
commands:
- command: "show interface"
parser: "textfsm"
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, access_vlan: vlan_access, trunking_vlans: vlan_trunk, native_vlan: vlan_native}"
iterable_type: "dict"
post_processor: "{% if obj and 'tagged' in obj[0]['mode'] and obj[0]['native_vlan'] in vlan_map %}{{ {'id': obj[0]['native_vlan'], 'name': vlan_map[obj[0]['native_vlan']]} | tojson }}{% elif obj and 'access' in obj[0]['mode'] and obj[0]['access_vlan'] in vlan_map %}{{ {'id': obj[0]['access_vlan'], 'name': vlan_map[obj[0]['access_vlan']]} | tojson }}{% else %}{{ [] | tojson }}{% endif %}"
cables:
commands:
- command: "show lldp neighbor-info detail"
parser: "textfsm"
jpath: "[*].{local_interface:local_interface, remote_interface:neighbor_port_id, remote_device:neighbor_name}"
post_processor: "{% set result = [] %}{% for cable in obj %}{% set _=result.append({'local_interface': cable['local_interface'], 'remote_interface': cable['remote_interface'], 'remote_device': cable['remote_device'] | remove_fqdn }) %}{% endfor %}{{ result | tojson }}"
Loading
Loading