Skip to content

Commit d3b96ec

Browse files
authored
Merge branch 'develop' into 461-no-shut-interfaces-on-cisco-might-appear-ad-not-enabled
2 parents 63f0fa7 + eaafbb4 commit d3b96ec

File tree

80 files changed

+26086
-479
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+26086
-479
lines changed

README.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -20,42 +20,42 @@ Regardless, the Onboarding App greatly simplifies the onboarding process by allo
2020
### Support Matrix (Sync Devices From Network)
2121

2222

23-
| Data Attribute | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 | HP Comware | Palo Alto Panos | Aruba AOSCX |
24-
| ---------------------- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
25-
| Hostname |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
26-
| Platform |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
27-
| Manufacturer |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
28-
| Serial Number |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
29-
| Device Type |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
30-
| Mgmt Interface |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
31-
| Mgmt IP Address |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 |
23+
| 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 |
24+
| ---------------------- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
25+
| Hostname |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
26+
| Platform |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
27+
| Manufacturer |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
28+
| Serial Number |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
29+
| Device Type |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
30+
| Mgmt Interface |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
31+
| Mgmt IP Address |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
3232

3333

3434
### Support Matrix (Sync Data From Network)
3535

36-
| Interfaces | Cisco IOS | Cisco XE | Cisco NXOS | Cisco XR | Cisco WLC | Juniper Junos | Arista EOS | F5 |
37-
| ----------------------- | :----------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :-: |
38-
| Name |||| 🧪 |||| |
39-
| IP Address |||| 🧪 |||| |
40-
| Type |||| 🧪 |||| |
41-
| MTU |||| 🧪 |||| |
42-
| Description |||| 🧪 |||| |
43-
| MAC Address |||| 🧪 |||| |
44-
| Link Status |||| 🧪 |||| |
45-
| 802.1Q mode |||| 🧪 |||| |
46-
| LAG Member |||| 🧪 |||| |
47-
| VRF Membership |||| 🧪 |||| |
48-
| Software Version |||| 🧪 |||| |
49-
50-
| VLANS | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 |
51-
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: |
52-
| Untagged VLANs |||||||| |
53-
| Tagged VLANs |||||||| |
54-
55-
| Cabling | Cisco IOS | Cisco XE | Cisco XR | Cisco NXOS | Cisco WLC | Juniper Junos | Arista EOS | F5 |
56-
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: |
57-
| Terminations A | 🧪 | 🧪 || 🧪 || 🧪 || |
58-
| Terminations B | 🧪 | 🧪 || 🧪 || 🧪 || |
36+
| 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 |
37+
| ----------------------- | :----------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
38+
| Name |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
39+
| IP Address |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
40+
| Type |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
41+
| MTU |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
42+
| Description |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
43+
| Mac Address |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
44+
| Link Status |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
45+
| 802.1Q mode |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
46+
| Lag Member |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
47+
| Vrf Membership |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
48+
| Software Version |||| 🧪 |||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
49+
50+
| 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 |
51+
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
52+
| Untagged VLANs |||||||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
53+
| Tagged VLANs |||||||| 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
54+
55+
| 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 |
56+
| ----------------------- | :----------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :--------------: | :-: | :--------------: | :--------------: | :--------------: | :--------------: |
57+
| Terminations A | 🧪 | 🧪 || 🧪 || 🧪 || 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
58+
| Terminations B | 🧪 | 🧪 || 🧪 || 🧪 || 🧪 | 🧪 | 🧪 | 🧪 | 🧪 |
5959

6060
| Legend |
6161
| :---- |

changes/424.added

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
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
2+
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
3+
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
4+
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
5+
Adds network data sync for F5 tmsh. Tested in SW versions: 17.1.13, 15.1.10.2

changes/428.fixed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
In the sync network data job, added handling of Devices who's Primary IP is not set.

nautobot_device_onboarding/command_mappers/aruba_aoscx.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,103 @@ sync_devices:
3232
jpath: "[?contains(ip_address, `{{ obj }}/`)].ip_address"
3333
post_processor: "{{ obj[0].split('/')[1] }}"
3434
iterable_type: "int"
35+
sync_network_data:
36+
pre_processor:
37+
vlan_map:
38+
commands:
39+
- command: "show vlan"
40+
parser: "textfsm"
41+
jpath: "[*].[$vlan_id$,vlan_name]"
42+
post_processor: "{{ obj | flatten_list_of_dict_from_value('vlan_name') | tojson }}"
43+
software_version:
44+
commands:
45+
- command: "show system"
46+
parser: "textfsm"
47+
jpath: "[*].version"
48+
serial:
49+
commands:
50+
- command: "show system"
51+
parser: "textfsm"
52+
jpath: "[*].serial"
53+
interfaces:
54+
root_key: true
55+
commands:
56+
- command: "show interface"
57+
parser: "textfsm"
58+
jpath: "[*].interface"
59+
post_processor: "{% set result={} %}{% for interface in obj %}{{ result.update({interface: {}}) or '' }}{% endfor %}{{ result | tojson }}"
60+
interfaces__type:
61+
commands:
62+
- command: "show interface"
63+
parser: "textfsm"
64+
jpath: "[?interface=='{{ current_key }}'].hw_type"
65+
post_processor: "{% if 'lag' in current_key %}{{ 'lag' }}{% else %}{{ obj[0] | lower | map_interface_type }}{% endif %}"
66+
interfaces__ip_addresses:
67+
commands:
68+
- command: "show interface"
69+
parser: "textfsm"
70+
jpath: "[?interface=='{{ current_key }}'].{ip_address: ip_address}"
71+
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 %}"
72+
iterable_type: "list"
73+
interfaces__mtu:
74+
commands:
75+
- command: "show interface"
76+
parser: "textfsm"
77+
jpath: "[?interface=='{{ current_key }}'].mtu"
78+
iterable_type: "str"
79+
interfaces__mac_address:
80+
commands:
81+
- command: "show interface"
82+
parser: "textfsm"
83+
jpath: "[?interface=='{{ current_key }}'].mac_address"
84+
interfaces__description:
85+
commands:
86+
- command: "show interface"
87+
parser: "textfsm"
88+
jpath: "[?interface=='{{ current_key }}'].interface_desc"
89+
interfaces__link_status:
90+
commands:
91+
- command: "show interface"
92+
parser: "textfsm"
93+
jpath: "[?interface=='{{ current_key }}'].link_status"
94+
post_processor: "{{ obj[0] | interface_status_to_bool }}"
95+
interfaces__802.1Q_mode:
96+
commands:
97+
- command: "show interface"
98+
parser: "textfsm"
99+
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, trunking_vlans: vlan_trunk}"
100+
post_processor: "{% if obj and 'tagged' in obj[0]['mode'] %}{{ 'tagged' }}{% else %}{{ 'access' }}{% endif %}"
101+
iterable_type: "str"
102+
interfaces__lag:
103+
commands:
104+
- command: "show interface | begin lag"
105+
parser: "textfsm"
106+
jpath: "[?contains(@.aggregated_interfaces, `{{ current_key }}`)].interface"
107+
post_processor: "{% if obj | length > 0 %}{{ obj[0] | canonical_interface_name }}{% else %}{{ obj }}{% endif %}"
108+
iterable_type: "str"
109+
interfaces__vrf:
110+
commands:
111+
- command: "show vrf"
112+
parser: "textfsm"
113+
jpath: "[?contains(@.vrf_interfaces, `{{ current_key }}`)].{name:vrf_name}"
114+
post_processor: "{% if obj | length > 0 %}{{ obj[0] | key_exist_or_default('name') | tojson }}{% else %}{{ {} | tojson }}{% endif %}"
115+
iterable_type: "dict"
116+
interfaces__tagged_vlans:
117+
commands:
118+
- command: "show interface"
119+
parser: "textfsm"
120+
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, access_vlan: vlan_access, trunking_vlans: vlan_trunk, native_vlan: vlan_native}"
121+
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 %}"
122+
interfaces__untagged_vlan:
123+
commands:
124+
- command: "show interface"
125+
parser: "textfsm"
126+
jpath: "[?interface=='{{ current_key }}'].{mode: vlan_mode, access_vlan: vlan_access, trunking_vlans: vlan_trunk, native_vlan: vlan_native}"
127+
iterable_type: "dict"
128+
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 %}"
129+
cables:
130+
commands:
131+
- command: "show lldp neighbor-info detail"
132+
parser: "textfsm"
133+
jpath: "[*].{local_interface:local_interface, remote_interface:neighbor_port_id, remote_device:neighbor_name}"
134+
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 }}"

0 commit comments

Comments
 (0)