├── MANIFEST.in ├── NOTICE ├── src └── businessready │ ├── __init__.py │ ├── NXOS_learn_arp_statistics_pie.j2 │ ├── NXOS_learn_hsrp_mermaid.j2 │ ├── NXOS_learn_arp_mermaid.j2 │ ├── IOS_show_cdp_neighbors_mermaid.j2 │ ├── NXOS_show_cdp_neighbors_mermaid.j2 │ ├── NXOS_learn_interface_pie.j2 │ ├── DNAC_empty.j2 │ ├── IOS_empty.j2 │ ├── ISE_empty.j2 │ ├── NXOS_empty.j2 │ ├── Meraki_empty.j2 │ ├── Meraki_organization_clients.j2 │ ├── ISE_eval_license.j2 │ ├── IOS_show_wireless_profile_policy_detailed.j2 │ ├── ISE_posture_count.j2 │ ├── ISE_profiler_count.j2 │ ├── ISE_active_sessions.j2 │ ├── ISE_license_smart_state.j2 │ ├── DNAC_vlans.j2 │ ├── ISE_license_connection_type.j2 │ ├── ISE_node_interfaces.j2 │ ├── ISE_command_set.j2 │ ├── ISE_identity_stores.j2 │ ├── IOS_show_cdp_neighbors_detail_totals.j2 │ ├── ISE_shell_profiles.j2 │ ├── ISE_transport_gateway.j2 │ ├── ISE_network_identity_stores.j2 │ ├── ISE_network_authorization_profiles.j2 │ ├── ISE_failure_codes.j2 │ ├── ISE_network_access_security_groups.j2 │ ├── ISE_hot_patch.j2 │ ├── ISE_version.j2 │ ├── ISE_license_feature.j2 │ ├── ISE_patch.j2 │ ├── NXOS_show_vrf.j2 │ ├── IOS_show_etherchannel_summary_totals.j2 │ ├── ISE_profiler.j2 │ ├── IOS_learn_stp_mstp.j2 │ ├── ISE_service_names.j2 │ ├── ISE_proxy.j2 │ ├── NXOS_show_vrf_all_interface.j2 │ ├── ISE_license_register.j2 │ ├── ISE_endpoint_groups.j2 │ └── ISE_identity_groups.j2 ├── dist ├── businessready-0.9.152.tar.gz └── businessready-0.9.152-py3-none-any.whl ├── usecase.md ├── topology_examples ├── spreadsheet.csv ├── python_for_loop_example.py ├── from_csv_example.py ├── from_testbed_example.py └── testbed.yml └── pyproject.toml /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include *.j2, *.py, *.css, *.js -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Copyright John Capobianco 2022 2 | Written February 2022 -------------------------------------------------------------------------------- /src/businessready/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '0.9.152' 2 | from .brd import * -------------------------------------------------------------------------------- /dist/businessready-0.9.152.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/automateyournetwork/business_ready/HEAD/dist/businessready-0.9.152.tar.gz -------------------------------------------------------------------------------- /dist/businessready-0.9.152-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/automateyournetwork/business_ready/HEAD/dist/businessready-0.9.152-py3-none-any.whl -------------------------------------------------------------------------------- /usecase.md: -------------------------------------------------------------------------------- 1 | Business Ready 2 | ===================================== 3 | Imagine if cURL or Postman could provide not only JSON but CSV, HTML, Markdown and Mind Map files from pyATS or REST APIs! 4 | -------------------------------------------------------------------------------- /topology_examples/spreadsheet.csv: -------------------------------------------------------------------------------- 1 | hostname,os,username,password,ip 2 | dist-rtr01,iosxe,cisco,cisco,10.10.20.175 3 | dist-rtr02,iosxe,cisco,cisco,10.10.20.176 4 | dist-sw01,nxos,cisco,cisco,10.10.20.177 5 | dist-sw02,nxos,cisco,cisco,10.10.20.178 -------------------------------------------------------------------------------- /topology_examples/python_for_loop_example.py: -------------------------------------------------------------------------------- 1 | import businessready 2 | 3 | device01_info = ["dist-rtr01", "cisco", "cisco", "10.10.20.175"] 4 | device02_info = ["dist-rtr02", "cisco", "cisco", "10.10.20.176"] 5 | 6 | device_list = [device01_info, device02_info] 7 | 8 | for device in device_list: 9 | businessready.NXOS_learn_all(*device) -------------------------------------------------------------------------------- /topology_examples/from_csv_example.py: -------------------------------------------------------------------------------- 1 | import businessready 2 | import csv 3 | 4 | with open('spreadsheet.csv') as info: 5 | for line in csv.DictReader(info): 6 | info_dict = line 7 | print(info_dict) 8 | if info_dict['os'] == "iosxe": 9 | businessready.IOS_all(info_dict['hostname'],info_dict['username'],info_dict['password'],info_dict['ip']) 10 | elif info_dict['os'] == "nxos": 11 | businessready.NXOS_all(info_dict['hostname'],info_dict['username'],info_dict['password'],info_dict['ip']) -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = 'businessready' 3 | version = "0.9.152" 4 | description = "Transform Cisco CLIs and APIs into Business Ready Documents" 5 | authors = ["John Capobianco "] 6 | packages = [{ include = "businessready", from = "src"}] 7 | readme = "README.md" 8 | repository = "https://github.com/automateyournetwork/business_ready" 9 | 10 | [tool.poetry.dependencies] 11 | python = "^3.8" 12 | MarkupSafe = "2.0.1" 13 | Jinja2 = "2.11.2" 14 | requests = "^2.27.1" 15 | xmltodict = "^0.12.0" 16 | urllib3 = "^1.26.8" 17 | 18 | [tool.poetry.dev-dependencies] 19 | pytest = "^5.2" 20 | 21 | [build-system] 22 | requires = ["poetry-core>=1.0.0"] 23 | build-backend = "poetry.core.masonry.api" -------------------------------------------------------------------------------- /topology_examples/from_testbed_example.py: -------------------------------------------------------------------------------- 1 | import businessready 2 | import yaml 3 | 4 | with open('testbed.yml') as info: 5 | info_dict = yaml.safe_load(info) 6 | 7 | for device in info_dict['devices']: 8 | if info_dict['devices'][device]['os'] == "iosxe": 9 | businessready.IOS_learn_all(device,info_dict['devices'][device]['credentials']['default']['username'],info_dict['devices'][device]['credentials']['default']['password'],info_dict['devices'][device]['connections']['cli']['ip']) 10 | elif info_dict['devices'][device]['os'] == "nxos": 11 | businessready.NXOS_learn_all(device,info_dict['devices'][device]['credentials']['default']['username'],info_dict['devices'][device]['credentials']['default']['password'],info_dict['devices'][device]['connections']['cli']['ip']) -------------------------------------------------------------------------------- /src/businessready/NXOS_learn_arp_statistics_pie.j2: -------------------------------------------------------------------------------- 1 | ```mermaid 2 | pie 3 | title {{ hostname }} ARP Statistics 4 | "Entries" : {{ to_parse_arp.entries_total }} 5 | "Incomplete" : {{ to_parse_arp.incomplete_total }} 6 | "Input Drops" : {{ to_parse_arp.in_drops }} 7 | "Input Reply Packets" : {{ to_parse_arp.in_replies_pkts }} 8 | "Input Request Packets" : {{ to_parse_arp.in_requests_pkts }} 9 | "Input Total" : {{ to_parse_arp.in_total | default("N/A") }} 10 | "Output Drops" : {{ to_parse_arp.out_drops | default("N/A") }} 11 | "Output Gratuitous Packets" : {{ to_parse_arp.out_gratuitous_pkts | default("N/A") }} 12 | "Output Reply Packets" : {{ to_parse_arp.out_replies_pkts }} 13 | "Output Request Packets" : {{ to_parse_arp.out_requests_pkts }} 14 | "Output Total" : {{ to_parse_arp.out_total| default("N/A") }} 15 | ``` -------------------------------------------------------------------------------- /src/businessready/NXOS_learn_hsrp_mermaid.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | ```mermaid 3 | flowchart LR; 4 | {%- for vlan in to_parse_hsrp %} 5 | {%- for address_family in to_parse_hsrp[vlan].address_family %} 6 | {%- for version in to_parse_hsrp[vlan].address_family[address_family].version %} 7 | {%- for group in to_parse_hsrp[vlan].address_family[address_family].version[version].groups %} 8 | {{ hostname }} <--> {{ vlan }} <--> {{ address_family }} <--> {{ version }} <--> {{ group }} <--> {{ to_parse_hsrp[vlan].address_family[address_family].version[version].groups[group].active_router }} <--> {{ to_parse_hsrp[vlan].address_family[address_family].version[version].groups[group].primary_ipv4_address.address }} <--> {{ to_parse_hsrp[vlan].address_family[address_family].version[version].groups[group].session_name }} <--> {{ to_parse_hsrp[vlan].address_family[address_family].version[version].groups[group].standby_router }} 9 | {%- endfor %} 10 | {%- endfor %} 11 | {%- endfor %} 12 | {%- endfor %} 13 | ``` 14 | {%- else %}{%- if filetype_loop == 1 %} 15 | ```mermaid 16 | classDiagram 17 | 18 | ``` 19 | {%- else %}{%- if filetype_loop == 2 %} 20 | ```mermaid 21 | stateDiagram 22 | 23 | ``` 24 | {%- else %}{%- if filetype_loop == 3 %} 25 | ```mermaid 26 | erDiagram 27 | 28 | ``` 29 | 30 | {%- endif %}{%- endif %}{%- endif %}{%- endif %} -------------------------------------------------------------------------------- /topology_examples/testbed.yml: -------------------------------------------------------------------------------- 1 | devices: 2 | dist-rtr01: 3 | alias: 'dist-rtr01' 4 | type: csr1000v 5 | os: 'iosxe' 6 | platform: csr1000v 7 | credentials: 8 | default: 9 | username: cisco 10 | password: cisco 11 | connections: 12 | cli: 13 | protocol: ssh 14 | ip: 10.10.20.175 15 | port: 22 16 | arguments: 17 | connection_timeout: 360 18 | dist-rtr02: 19 | alias: 'dist-rtr02' 20 | type: csr1000v 21 | os: 'iosxe' 22 | platform: csr1000v 23 | credentials: 24 | default: 25 | username: cisco 26 | password: cisco 27 | connections: 28 | cli: 29 | protocol: ssh 30 | ip: 10.10.20.176 31 | port: 22 32 | arguments: 33 | connection_timeout: 360 34 | dist-sw01: 35 | alias: 'dist-sw01' 36 | type: n9k 37 | os: 'nxos' 38 | platform: n9k 39 | credentials: 40 | default: 41 | username: cisco 42 | password: cisco 43 | connections: 44 | cli: 45 | protocol: ssh 46 | ip: 10.10.20.177 47 | port: 22 48 | arguments: 49 | connection_timeout: 360 50 | dist-sw02: 51 | alias: 'dist-sw02' 52 | type: n9k 53 | os: 'nxos' 54 | platform: csr1000v 55 | credentials: 56 | default: 57 | username: cisco 58 | password: cisco 59 | connections: 60 | cli: 61 | protocol: ssh 62 | ip: 10.10.20.178 63 | port: 22 64 | arguments: 65 | connection_timeout: 360 -------------------------------------------------------------------------------- /src/businessready/NXOS_learn_arp_mermaid.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | ```mermaid 3 | flowchart LR; 4 | {%- for interface in to_parse_arp %} 5 | {%- if to_parse_arp[interface].ipv4 is defined %} 6 | {%- for neighbor in to_parse_arp[interface].ipv4.neighbors %} 7 | {{ hostname }} <--> {{ interface }} <--> {{ neighbor }} <--> {{ to_parse_arp[interface].ipv4.neighbors[neighbor].link_layer_address }} 8 | {%- endfor %} 9 | {%- endif %} 10 | {%- endfor %} 11 | ``` 12 | {%- else %}{%- if filetype_loop == 1 %} 13 | {%- for interface in to_parse_arp %} 14 | {%- if to_parse_arp[interface].ipv4 is defined %} 15 | {%- for neighbor in to_parse_arp[interface].ipv4.neighbors %} 16 | ```mermaid 17 | classDiagram 18 | class {{ interface | replace("/","_")}}{ 19 | IP: {{ neighbor }} 20 | MAC: {{ to_parse_arp[interface].ipv4.neighbors[neighbor].link_layer_address }} 21 | Origin: {{ to_parse_arp[interface].ipv4.neighbors[neighbor].origin }} 22 | } 23 | ``` 24 | {%- endfor %} 25 | {%- endif %} 26 | {%- endfor %} 27 | {%- else %}{%- if filetype_loop == 2 %} 28 | {%- for interface in to_parse_arp %} 29 | {%- if to_parse_arp[interface].ipv4 is defined %} 30 | {%- for neighbor in to_parse_arp[interface].ipv4.neighbors %} 31 | ```mermaid 32 | stateDiagram 33 | {{ hostname | replace("-","_") }} --> {{ interface }} 34 | {{ interface }} --> {{ neighbor }} 35 | {{ neighbor }} --> {{ to_parse_arp[interface].ipv4.neighbors[neighbor].link_layer_address }} 36 | state {{ to_parse_arp[interface].ipv4.neighbors[neighbor].link_layer_address }}{ 37 | Origin --> {{ to_parse_arp[interface].ipv4.neighbors[neighbor].origin }} 38 | } 39 | ``` 40 | {%- endfor %} 41 | {%- endif %} 42 | {%- endfor %} 43 | {%- else %}{%- if filetype_loop == 3 %} 44 | {%- for interface in to_parse_arp %} 45 | {%- if to_parse_arp[interface].ipv4 is defined %} 46 | {%- for neighbor in to_parse_arp[interface].ipv4.neighbors %} 47 | ```mermaid 48 | erDiagram 49 | {{ hostname }} |o--|{ {{ interface | replace("/","_")}} : IP_{{ neighbor }} 50 | {{ interface | replace("/","_")}} { 51 | MAC_Address x_{{ to_parse_arp[interface].ipv4.neighbors[neighbor].link_layer_address }} 52 | Origin {{ to_parse_arp[interface].ipv4.neighbors[neighbor].origin }} 53 | } 54 | ``` 55 | {%- endfor %} 56 | {%- endif %} 57 | {%- endfor %} 58 | {%- endif %}{%- endif %}{%- endif %}{%- endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_show_cdp_neighbors_mermaid.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | ```mermaid 3 | flowchart LR; 4 | {%- for neighbor in to_parse_cdp_neighbors.index %} 5 | {%- if to_parse_cdp_neighbors.index[neighbor].local_interface == to_parse_cdp_neighbors.index[neighbor].port_id %} 6 | {{ hostname }} <--> {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} <--> {{ to_parse_cdp_neighbors.index[neighbor].device_id }} 7 | {%- else %} 8 | {{ hostname }} <--> {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} <--> {{ to_parse_cdp_neighbors.index[neighbor].port_id }} <--> {{ to_parse_cdp_neighbors.index[neighbor].device_id }} 9 | {%- endif %} 10 | {%- endfor %} 11 | ``` 12 | {%- else %}{%- if filetype_loop == 1 %} 13 | {%- for neighbor in to_parse_cdp_neighbors.index %} 14 | ```mermaid 15 | classDiagram 16 | class {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }}{ 17 | Platform: {{ to_parse_cdp_neighbors.index[neighbor].platform }} 18 | Local Interface: {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 19 | Port ID: {{ to_parse_cdp_neighbors.index[neighbor].port_id }} 20 | Capability: {{ to_parse_cdp_neighbors.index[neighbor].capability }} 21 | Hold Time: {{ to_parse_cdp_neighbors.index[neighbor].hold_time }} 22 | } 23 | ``` 24 | {%- endfor %} 25 | {%- else %}{%- if filetype_loop == 2 %} 26 | {%- for neighbor in to_parse_cdp_neighbors.index %} 27 | ```mermaid 28 | stateDiagram 29 | direction LR 30 | {{ hostname | replace("-","_")}} --> Local_{{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 31 | Local_{{ to_parse_cdp_neighbors.index[neighbor].local_interface }} --> Remote_{{ to_parse_cdp_neighbors.index[neighbor].port_id }} 32 | Remote_{{ to_parse_cdp_neighbors.index[neighbor].port_id }} --> {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} 33 | state {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }}{ 34 | Platform --> {{ to_parse_cdp_neighbors.index[neighbor].platform | replace("-","_") }} 35 | Capability --> {{ to_parse_cdp_neighbors.index[neighbor].capability | replace (" ","_")}} 36 | HoldTime --> {{ to_parse_cdp_neighbors.index[neighbor].hold_time }} 37 | } 38 | ``` 39 | {%- endfor %} 40 | {%- else %}{%- if filetype_loop == 3 %} 41 | {%- for neighbor in to_parse_cdp_neighbors.index %} 42 | ```mermaid 43 | erDiagram 44 | {{ hostname }} |o--|{ {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} : {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 45 | {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} { 46 | Platform {{ to_parse_cdp_neighbors.index[neighbor].platform }} 47 | PortID {{ to_parse_cdp_neighbors.index[neighbor].port_id }} 48 | Capability {{ to_parse_cdp_neighbors.index[neighbor].capability | replace(" ","")}} 49 | HoldTime Seconds_{{ to_parse_cdp_neighbors.index[neighbor].hold_time | string()}} 50 | } 51 | ``` 52 | {% endfor %} 53 | {%- endif %}{%- endif %}{%- endif %}{%- endif %} -------------------------------------------------------------------------------- /src/businessready/NXOS_show_cdp_neighbors_mermaid.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | ```mermaid 3 | flowchart LR; 4 | {%- for neighbor in to_parse_cdp_neighbors.index %} 5 | {%- if to_parse_cdp_neighbors.index[neighbor].local_interface == to_parse_cdp_neighbors.index[neighbor].port_id %} 6 | {{ hostname }} <--> {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} <--> {{ to_parse_cdp_neighbors.index[neighbor].device_id }} 7 | {%- else %} 8 | {{ hostname }} <--> {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} <--> {{ to_parse_cdp_neighbors.index[neighbor].port_id }} <--> {{ to_parse_cdp_neighbors.index[neighbor].device_id }} 9 | {%- endif %} 10 | {%- endfor %} 11 | ``` 12 | {%- else %}{%- if filetype_loop == 1 %} 13 | {%- for neighbor in to_parse_cdp_neighbors.index %} 14 | ```mermaid 15 | classDiagram 16 | class {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }}{ 17 | Platform: {{ to_parse_cdp_neighbors.index[neighbor].platform }} 18 | Local Interface: {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 19 | Port ID: {{ to_parse_cdp_neighbors.index[neighbor].port_id }} 20 | Capability: {{ to_parse_cdp_neighbors.index[neighbor].capability }} 21 | Hold Time: {{ to_parse_cdp_neighbors.index[neighbor].hold_time }} 22 | } 23 | ``` 24 | {%- endfor %} 25 | {%- else %}{%- if filetype_loop == 2 %} 26 | {%- for neighbor in to_parse_cdp_neighbors.index %} 27 | ```mermaid 28 | stateDiagram 29 | direction LR 30 | {{ hostname | replace("-","_")}} --> Local_{{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 31 | Local_{{ to_parse_cdp_neighbors.index[neighbor].local_interface }} --> Remote_{{ to_parse_cdp_neighbors.index[neighbor].port_id }} 32 | Remote_{{ to_parse_cdp_neighbors.index[neighbor].port_id }} --> {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} 33 | state {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }}{ 34 | Platform --> {{ to_parse_cdp_neighbors.index[neighbor].platform | replace("-","_") }} 35 | Capability --> {{ to_parse_cdp_neighbors.index[neighbor].capability | replace (" ","_")}} 36 | HoldTime --> {{ to_parse_cdp_neighbors.index[neighbor].hold_time }} 37 | } 38 | ``` 39 | {%- endfor %} 40 | {%- else %}{%- if filetype_loop == 3 %} 41 | {%- for neighbor in to_parse_cdp_neighbors.index %} 42 | ```mermaid 43 | erDiagram 44 | {{ hostname }} |o--|{ {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} : {{ to_parse_cdp_neighbors.index[neighbor].local_interface }} 45 | {{ to_parse_cdp_neighbors.index[neighbor].device_id | replace("-","_") | replace(".","_") | replace("(","_") | replace(")","") }} { 46 | Platform {{ to_parse_cdp_neighbors.index[neighbor].platform }} 47 | PortID {{ to_parse_cdp_neighbors.index[neighbor].port_id }} 48 | Capability {{ to_parse_cdp_neighbors.index[neighbor].capability | replace(" ","")}} 49 | HoldTime Seconds_{{ to_parse_cdp_neighbors.index[neighbor].hold_time | string()}} 50 | } 51 | ``` 52 | {% endfor %} 53 | {%- endif %}{%- endif %}{%- endif %}{%- endif %} -------------------------------------------------------------------------------- /src/businessready/NXOS_learn_interface_pie.j2: -------------------------------------------------------------------------------- 1 | {%- for interface in to_parse_interface %} 2 | {%- if to_parse_interface[interface].counters is defined %} 3 | ```mermaid 4 | pie 5 | title {{ hostname }} Interface {{ interface }} Counters 6 | {%- if to_parse_interface[interface].counters.in_broadcast_pkts is defined %} 7 | "Input Broadcast" : {{ to_parse_interface[interface].counters.in_broadcast_pkts }} 8 | {%- endif %} 9 | {%- if to_parse_interface[interface].counters.in_crc_errors is defined %} 10 | "Input CRC Errors" : {{ to_parse_interface[interface].counters.in_crc_errors }} 11 | {%- endif %} 12 | {%- if to_parse_interface[interface].counters.in_errors is defined %} 13 | "Input Errors " : {{ to_parse_interface[interface].counters.in_errors }} 14 | {%- endif %} 15 | {%- if to_parse_interface[interface].counters.in_mac_pause_frames is defined %} 16 | "Input MAC Pause Frames" : {{ to_parse_interface[interface].counters.in_mac_pause_frames }} 17 | {%- endif %} 18 | {%- if to_parse_interface[interface].counters.in_multicast_pkts is defined %} 19 | "Input Multicast" : {{ to_parse_interface[interface].counters.in_multicast_pkts }} 20 | {%- endif %} 21 | {%- if to_parse_interface[interface].counters.in_unicast_pkts is defined %} 22 | "Input Unicast" : {{ to_parse_interface[interface].counters.in_unicast_pkts }} 23 | {%- endif %} 24 | {%- if to_parse_interface[interface].counters.in_unknown_protos is defined %} 25 | "Input Unknown" : {{ to_parse_interface[interface].counters.in_unknown_protos }} 26 | {%- endif %} 27 | {%- if to_parse_interface[interface].counters.in_pkts is defined %} 28 | "Input Packets" : {{ to_parse_interface[interface].counters.in_pkts }} 29 | {%- endif %} 30 | {%- if to_parse_interface[interface].counters.out_broadcast_pkts is defined %} 31 | "Output Broadcast" : {{ to_parse_interface[interface].counters.out_broadcast_pkts }} 32 | {%- endif %} 33 | {%- if to_parse_interface[interface].counters.out_discard is defined %} 34 | "Output Discards" : {{ to_parse_interface[interface].counters.out_discard }} 35 | {%- endif %} 36 | {%- if to_parse_interface[interface].counters.out_errors is defined %} 37 | "Output Errors" : {{ to_parse_interface[interface].counters.out_errors }} 38 | {%- endif %} 39 | {%- if to_parse_interface[interface].counters.out_mac_pause_frames is defined %} 40 | "Output MAC Pause Frames" : {{ to_parse_interface[interface].counters.out_mac_pause_frames }} 41 | {%- endif %} 42 | {%- if to_parse_interface[interface].counters.out_multicast_pkts is defined %} 43 | "Output Multicast" : {{ to_parse_interface[interface].counters.out_multicast_pkts }} 44 | {%- endif %} 45 | {%- if to_parse_interface[interface].counters.out_unicast_pkts is defined %} 46 | "Output Unicast" : {{ to_parse_interface[interface].counters.out_unicast_pkts }} 47 | {%- endif %} 48 | {%- if to_parse_interface[interface].counters.out_pkts is defined %} 49 | "Output Packets" : {{ to_parse_interface[interface].counters.out_pkts }} 50 | {%- endif %} 51 | ``` 52 | {%- endif %} 53 | {%- if to_parse_interface[interface].counters is defined %} 54 | {%- if to_parse_interface[interface].counters.rate is defined %} 55 | ```mermaid 56 | pie 57 | title {{ hostname }} Interface {{ interface }} I/O Rate 58 | "Input" : {{ to_parse_interface[interface].counters.rate.in_rate }} 59 | "Output" : {{ to_parse_interface[interface].counters.rate.out_rate }} 60 | ``` 61 | {%- endif %} 62 | {%- endif %} 63 | {%- endfor %} -------------------------------------------------------------------------------- /src/businessready/DNAC_empty.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %} 2 | 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show 5 | | | 6 | | | 7 | | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show

31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 109 | 110 | {%- else %} 111 | # Show 112 | 113 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_empty.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %} 2 | 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show 5 | | | 6 | | | 7 | | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show

31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 109 | 110 | {%- else %} 111 | # Show 112 | 113 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_empty.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %} 2 | 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE 5 | | | 6 | | | 7 | | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE

31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 109 | 110 | {%- else %} 111 | # Show 112 | 113 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/NXOS_empty.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %} 2 | 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show 5 | | | 6 | | | 7 | | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show

31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 109 | 110 | {%- else %} 111 | # Show 112 | 113 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/Meraki_empty.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %} 2 | 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show 5 | | | 6 | | | 7 | | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show

31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 109 | 110 | {%- else %} 111 | # Show 112 | 113 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/Meraki_organization_clients.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | 3 | {%- else %} 4 | {%- if filetype_loop == 1 %} 5 | # Meraki Organization Clients 6 | | | 7 | | | 8 | 9 | 10 | {%- else %} 11 | {%- if filetype_loop == 2 %} 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |

Meraki Organization Clients

34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | 119 | 120 | {%- else %} 121 | # Meraki Organization Clients 122 | 123 | {% endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_eval_license.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Days Remaining 2 | {{ evalLic.daysRemaining }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Evaluation License 5 | | Days Remaining | 6 | | -------------- | 7 | | {{ evalLic.daysRemaining }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Evaluation License

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
Days Remaining
{{ evalLic.daysRemaining }}
39 | 110 | 111 | {%- else %} 112 | # ISE Evaluation License 113 | ## Days Remaining: {{ evalLic.daysRemaining }} 114 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_show_wireless_profile_policy_detailed.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %} 2 | 3 | {%- else %} 4 | {%- if filetype_loop == 1 %} 5 | # Show Wireless Profile Policy Detailed 6 | | | 7 | | | 8 | {%- else %} 9 | {%- if filetype_loop == 2 %} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |

Show Wireless Profile Policy Detailed

32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
46 | 117 | 118 | {%- else %} 119 | # Show Wireless Profile Policy Detailed 120 | 121 | {%- endif %} 122 | {%- endif %} 123 | {%- endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_posture_count.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Posture Sessions 2 | {{ postureCount.sessionCount.count }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Posture Sessions 5 | | Posture Sessions | 6 | | ---------------- | 7 | | {{ postureCount.sessionCount.count }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Posture Sessions

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
Posture Sessions>
{{ postureCount.sessionCount.count }}
39 | 110 | 111 | {%- else %} 112 | # ISE Session Count 113 | ## Posture 114 | ### {{ postureCount.sessionCount.count }} 115 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_profiler_count.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Profiler Sessions 2 | {{ profilerCount.sessionCount.count }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Profiler Sessions 5 | | Profiler Sessions | 6 | | --------------- | 7 | | {{ profilerCount.sessionCount.count }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Profiler Sessions

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
Profiler Sessions>
{{ profilerCount.sessionCount.count }}
39 | 110 | 111 | {%- else %} 112 | # ISE Session Count 113 | ## Profiler 114 | ### {{ profilerCount.sessionCount.count }} 115 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_active_sessions.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Active Sessions 2 | {{ activeSessionCount.sessionCount.count }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Active Sessions 5 | | Active Sessions | 6 | | --------------- | 7 | | {{ activeSessionCount.sessionCount.count }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Active Sessions

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
Active Sessions>
{{ activeSessionCount.sessionCount.count }}
39 | 110 | 111 | {%- else %} 112 | # ISE Session Count 113 | ## Active 114 | ### {{ activeSessionCount.sessionCount.count }} 115 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_license_smart_state.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Connection Type,State 2 | {{ licSmart.connectionType }},{{ licSmart.state }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE License Connection Type 5 | | Connection Type | State | 6 | | --------------- | ----- | 7 | | {{ licSmart.connectionType }} | {{ licSmart.state }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE License Connection Type

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
Connection TypeState
{{ licSmart.connectionType }}{{ licSmart.state }}
41 | 112 | 113 | {%- else %} 114 | # ISE License Connection Type 115 | ## {{ licSmart.connectionType }} 116 | ## State: {{ licSmart.state }} 117 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/DNAC_vlans.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %}VLAN 2 | {%- for vlan in vlans %} 3 | {{ vlan }} 4 | {%- endfor %} 5 | {%- else %} 6 | {%- if filetype_loop == 1 %} 7 | # DNAC VLAN 8 | | VLAN | 9 | | ---- | 10 | {%- for vlan in vlans %} 11 | | {{ vlan }} | 12 | {%- endfor %} 13 | {%- else %} 14 | {%- if filetype_loop == 2 %} 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |

DNAC VLANs

37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | {%- for vlan in vlans %} 45 | 46 | 47 | 48 | {%- endfor %} 49 | 50 |
VLAN
{{ vlan }}
51 | 122 | 123 | {%- else %} 124 | # {{ DNAC }} 125 | {%- for vlan in vlans %} 126 | ## {{ vlan }} 127 | {%- endfor %} 128 | {%- endif %} 129 | {%- endif %} 130 | {%- endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_license_connection_type.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Connection Type,State 2 | {{ licenseCon.connectionType }},{{ licenseCon.state }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE License Connection Type 5 | | Connection Type | State | 6 | | --------------- | ----- | 7 | | {{ licenseCon.connectionType }} | {{ licenseCon.state }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE License Connection Type

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
Connection TypeState
{{ licenseCon.connectionType }}{{ licenseCon.state }}
41 | 112 | 113 | {%- else %} 114 | # ISE License Connection Type 115 | ## {{ licenseCon.connectionType }} 116 | ## State: {{ licenseCon.state }} 117 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_node_interfaces.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Interface 2 | {%- for interface in nodeInterfaces %} 3 | {{ interface.interface }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Node Interfaces 7 | | Interface | 8 | | --------- | 9 | {%- for interface in nodeInterfaces %} 10 | | {{ interface.interface }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Node Interfaces

35 | 36 | 37 | 38 | 39 | {%- for interface in nodeInterfaces %} 40 | 41 | 42 | 43 | {%- endfor %} 44 |
Interface
{{ interface.interface }}
45 | 116 | 117 | {%- else %} 118 | # ISE Node Interfaces 119 | {%- for interface in nodeInterfaces %} 120 | ## {{ interface.interface }} 121 | {%- endfor %} 122 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_command_set.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for set in commandSet %} 3 | {{ set.name }},{{ set.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Command Sets 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for set in commandSet %} 10 | | {{ set.name }} | {{ set.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Command Sets

35 | 36 | 37 | 38 | 39 | 40 | {%- for set in commandSet %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ set.name }}{{ set.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Command Sets 121 | {%- for set in commandSet %} 122 | ## Name: {{ set.name }} 123 | ## ID: {{ set.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_identity_stores.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for store in identityStores %} 3 | {{ store.name }},{{ store.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE identity Stores 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for store in identityStores %} 10 | | {{ store.name }} | {{ store.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Identity Stores

35 | 36 | 37 | 38 | 39 | 40 | {%- for store in identityStores %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ store.name }}{{ store.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Identity Stores 121 | {%- for store in identityStores %} 122 | ## {{ store.name }} 123 | ### ID: {{ store.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_show_cdp_neighbors_detail_totals.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %}Total CDP Neighbors 2 | {{ to_parse_cdp_neighbors.total_entries_displayed }} 3 | {%- else %} 4 | {%- if filetype_loop == 1 %} 5 | # Total CD Neighbors 6 | | Local Interface | 7 | | --------------- | 8 | | {{ to_parse_cdp_neighbors.total_entries_displayed }} | 9 | {%- else %} 10 | {%- if filetype_loop == 2 %} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |

Total CDP Neighbors

33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
Total CDP Neighbors
{{ to_parse_cdp_neighbors.total_entries_displayed }}
45 | 116 | 117 | {%- else %} 118 | # Show CDP Neighbors Details Totals 119 | ## Total CDP Neighbors: {{ to_parse_cdp_neighbors.total_entries_displayed }} 120 | {%- endif %} 121 | {%- endif %} 122 | {%- endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_shell_profiles.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for profile in shellProfiles %} 3 | {{ profile.name }},{{ profile.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Shell Profiles 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for profile in shellProfiles %} 10 | | {{ profile.name }} | {{ profile.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Shell Profiles

35 | 36 | 37 | 38 | 39 | 40 | {%- for profile in shellProfiles %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ profile.name }}{{ profile.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Shell Profiles 121 | {%- for profile in shellProfiles %} 122 | ## {{ profile.name }} 123 | ## ID: {{ profile.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_transport_gateway.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Enable Transport Gateway,URL 2 | {{ transportGateway.enableTransportGateway }},{{ transportGateway.url }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Transport Gateway 5 | | Enable Transport Gateway | URL | 6 | | ------------------------ | --- | 7 | | {{ transportGateway.enableTransportGateway }} | {{ transportGateway.url }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Transport Gateway

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
Enable Transport GatewayURL
{{ transportGateway.enableTransportGateway }}{{ transportGateway.url }}
41 | 112 | 113 | {%- else %} 114 | # ISE Transport Gateway 115 | ## Enabled: {{ transportGateway.enableTransportGateway }} 116 | ## [URL]({{ transportGateway.url }}) 117 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_network_identity_stores.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for store in networkIdentity %} 3 | {{ store.name }},{{ store.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Network Identity Stores 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for store in networkIdentity %} 10 | | {{ store.name }} | {{ store.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Network Identity Stores

35 | 36 | 37 | 38 | 39 | 40 | {%- for store in networkIdentity %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ store.name }}{{ store.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Network Identity Stores 121 | {%- for store in networkIdentity %} 122 | ## {{ store.name }} 123 | ## ID: {{ store.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_network_authorization_profiles.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for profile in authProfiles %} 3 | {{ profile.name }},{{ profile.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Network Authorization Profiles 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for profile in authProfiles %} 10 | | {{ profile.name }} | {{ profile.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Network Authorization Profiles

35 | 36 | 37 | 38 | 39 | 40 | {%- for profile in authProfiles %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ profile.name }}{{ profile.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Network Authorization Profiles 121 | {%- for profile in authProfiles %} 122 | ## {{ profile.name }} 123 | ## ID: {{ profile.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_failure_codes.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}ID,Meaning 2 | {%- for code in failureCodes['failureReason'] %} 3 | {{ code['@id'] }},{{ code.code | replace(","," ") }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Failure Codes 7 | | ID | Meaning | 8 | | -- | ------- | 9 | {%- for code in failureCodes['failureReason'] %} 10 | | {{ code['@id'] }} | {{ code.code }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Failure Codes

35 | 36 | 37 | 38 | 39 | 40 | {%- for code in failureCodes['failureReason'] %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
IDMeaning
{{ code['@id'] }}{{ code.code }}
47 | 118 | 119 | {%- else %} 120 | # ISE Failure Codes 121 | {%- for code in failureCodes['failureReason'] %} 122 | ## ID: {{ code['@id'] }} 123 | ### Meaning: {{ code.code }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_network_access_security_groups.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID 2 | {%- for group in networkAccessSecurityGroup %} 3 | {{ group.name }},{{ group.id }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Network Access Security Groups 7 | | Name | ID | 8 | | ---- | -- | 9 | {%- for group in networkAccessSecurityGroup %} 10 | | {{ group.name }} | {{ group.id }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Network Access Security Groups

35 | 36 | 37 | 38 | 39 | 40 | {%- for group in networkAccessSecurityGroup %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
NameID
{{ group.name }}{{ group.id }}
47 | 118 | 119 | {%- else %} 120 | # ISE Network Access Security Groups 121 | {%- for group in networkAccessSecurityGroup %} 122 | ## {{ group.name }} 123 | ## ID: {{ group.id }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_hot_patch.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Hot Patch Name,Install Date 2 | {%- for patch in hotPatch %} 3 | {{ patch.hotpatchName }},{{ patch.installDate }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Hot Patches 7 | | Hot Patch Name | Install Date | 8 | | -------------- | ------------ | 9 | {%- for patch in hotPatch %} 10 | | {{ patch.hotpatchName }} | {{ patch.installDate }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Hot Patches

35 | 36 | 37 | 38 | 39 | 40 | {%- for patch in hotPatch %} 41 | 42 | 43 | 44 | 45 | {%- endfor %} 46 |
Hot Patch NameInstall Date
{{ patch.hotpatchName }}{{ patch.installDate }}
47 | 118 | 119 | {%- else %} 120 | # ISE Hot Patches 121 | {%- for patch in hotPatch %} 122 | ## Hot Patch Name: {{ patch.hotpatchName }} 123 | ## Install Date: {{ patch.installDate }} 124 | {%- endfor %} 125 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_version.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Device Name,Version,Node Type 2 | {{ version.product['@name'] }},{{ version.product.version }},{{ version.product.type_of_node }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Version 5 | | Device Name | Version | Node Type | 6 | | ----------- | ------- | --------- | 7 | | {{ version.product['@name'] }} | {{ version.product.version }} | {{ version.product.type_of_node }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Version

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
Device NameVersionNode Type
{{ version.product['@name'] }}{{ version.product.version }}{{ version.product.type_of_node }}
43 | 114 | 115 | {%- else %} 116 | # ISE Version 117 | ## Device Name: {{ version.product['@name'] }} 118 | ### Version: {{ version.product.version }} 119 | ### Node Type: {{ version.product.type_of_node }} 120 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_license_feature.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Tier,Feature 2 | {%- for tier in licFeature %} 3 | {%- for feature in tier.featureName %} 4 | {{ tier.tier }},{{ feature }} 5 | {%- endfor %} 6 | {%- endfor %} 7 | {% else %}{% if filetype_loop == 1 %} 8 | # ISE License Tier Features 9 | | Tier | Feature | 10 | | ---- | ------- | 11 | {%- for tier in licFeature %} 12 | {%- for feature in tier.featureName %} 13 | | {{ tier.tier }} | {{ feature }} | 14 | {%- endfor %} 15 | {%- endfor %} 16 | {% else %}{% if filetype_loop == 2 %} 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |

ISE License Tier Features

39 | 40 | 41 | 42 | 43 | 44 | {%- for tier in licFeature %} 45 | {%- for feature in tier.featureName %} 46 | 47 | 48 | 49 | 50 | {%- endfor %} 51 | {%- endfor %} 52 |
TierFeature
{{ tier.tier }}{{ feature }}
53 | 124 | 125 | {%- else %} 126 | # ISE License Tier Features 127 | ## Tier 128 | {%- for tier in licFeature %} 129 | ### {{ tier.tier }} 130 | {%- for feature in tier.featureName %} 131 | ##### {{ feature }} 132 | {%- endfor %} 133 | {%- endfor %} 134 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_patch.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}ISE Version,Patch Number,Install Date 2 | {%- for hit in patch.patchVersion %} 3 | {{ patch.iseVersion }},{{ hit.patchNumber }},{{ hit.installDate }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Patches 7 | | ISE Version | Patch Number | Install Date | 8 | | ----------- | ------------ | ------------ | 9 | {%- for hit in patch.patchVersion %} 10 | | {{ patch.iseVersion }} | {{ hit.patchNumber }} | {{ hit.installDate }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Patches

35 | 36 | 37 | 38 | 39 | 40 | 41 | {%- for hit in patch.patchVersion %} 42 | 43 | 44 | 45 | 46 | 47 | {%- endfor %} 48 |
ISE VersionPatch NumberInstall Date
{{ patch.iseVersion }}{{ hit.patchNumber }}{{ hit.installDate }}
49 | 120 | 121 | {%- else %} 122 | # ISE Patches 123 | ## ISE Version {{ patch.iseVersion }} 124 | ## Patches 125 | {%- for hit in patch.patchVersion %} 126 | ### Patch Number: {{ hit.patchNumber }} 127 | ### Install Date: {{ hit.installDate }} 128 | {%- endfor %} 129 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/NXOS_show_vrf.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}VRF,Reason,ID,State{% for vrf in to_parse_vrf %} 2 | {{ vrf }},{{ to_parse_vrf[vrf].reason }},{{ to_parse_vrf[vrf].vrf_id }},{{ to_parse_vrf[vrf].vrf_state }}{% endfor %} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show VRF 5 | | VRF | Reason | ID | State | 6 | | --- | ------ | -- | ----- |{% for vrf in to_parse_vrf %} 7 | | {{ vrf }} | {{ to_parse_vrf[vrf].reason }} | {{ to_parse_vrf[vrf].vrf_id }} | {{ to_parse_vrf[vrf].vrf_state }} |{% endfor %} 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | {% for vrf in to_parse_vrf %} 39 | 40 | 41 | 42 | 43 | 44 | {% endfor %} 45 |
VRFReasonIDState
{{ vrf }}{{ to_parse_vrf[vrf].reason }}{{ to_parse_vrf[vrf].vrf_id }}{{ to_parse_vrf[vrf].vrf_state }}
46 | 117 | 118 | {%- else %} 119 | # Show VRF 120 | {% for vrf in to_parse_vrf %} 121 | ## {{ vrf }} 122 | ### Reason: {{ to_parse_vrf[vrf].reason }} 123 | ### ID: {{ to_parse_vrf[vrf].vrf_id }} 124 | ### State: {{ to_parse_vrf[vrf].vrf_state }} 125 | {% endfor %} 126 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_show_etherchannel_summary_totals.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Number of Aggregators,Number of LAG in use 2 | {{ to_parse_etherchannel_summary.number_of_aggregators }},{{ to_parse_etherchannel_summary.number_of_lag_in_use }}{% else %}{% if filetype_loop == 1 %} 3 | # Etherchannel Totals 4 | | Number of Aggregators | Number of LAG in use | 5 | | --------------------- | -------------------- | 6 | | {{ to_parse_etherchannel_summary.number_of_aggregators }} | {{ to_parse_etherchannel_summary.number_of_lag_in_use }} |{% else %}{% if filetype_loop == 2 %} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |

Show Etherchannel Summary

29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
Number of AggregatorsNumber of LAG In Use
{{ to_parse_etherchannel_summary.number_of_aggregators }}{{ to_parse_etherchannel_summary.number_of_lag_in_use }}
43 | 114 | {% else %} 115 | # Show Etherchannel Summary Totals 116 | ## Number of Aggregators: {{ to_parse_etherchannel_summary.number_of_aggregators }} 117 | ## Number of LAG in Use: {{ to_parse_etherchannel_summary.number_of_lag_in_use }} 118 | {% endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_profiler.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID,Description 2 | {%- for profile in profiler %} 3 | {{ profile.ProfilerProfile.name }},{{ profile.ProfilerProfile.id }},{{ profile.ProfilerProfile.description }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Profiler Profiles 7 | | Name | ID | Description | 8 | | ---- | -- | ----------- | 9 | {%- for profile in profiler %} 10 | | {{ profile.ProfilerProfile.name }} | {{ profile.ProfilerProfile.id }} | {{ profile.ProfilerProfile.description }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Profiler Profiles

35 | 36 | 37 | 38 | 39 | 40 | 41 | {%- for profile in profiler %} 42 | 43 | 44 | 45 | 46 | 47 | {%- endfor %} 48 |
NameIDDescription
{{ profile.ProfilerProfile.name }}{{ profile.ProfilerProfile.id }}{{ profile.ProfilerProfile.description }}
49 | 120 | 121 | {%- else %} 122 | # ISE Profiler Profiles 123 | {%- for profile in profiler %} 124 | ## {{ profile.ProfilerProfile.name }} 125 | ### ID: {{ profile.ProfilerProfile.id }} 126 | ### Description: {{ profile.ProfilerProfile.description }} 127 | {%- endfor %} 128 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/IOS_learn_stp_mstp.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %}Domain,Name,Revision 2 | {%- for domain in to_parse_stp %} 3 | {{ domain }},{{ to_parse_stp[domain].revision.name | default("Not named") }},{{ to_parse_stp[domain].revision }} 4 | {%- endfor %} 5 | {%- else %} 6 | {%- if filetype_loop == 1 %} 7 | # Learn Multiple STP 8 | | Domain | Name | Revision | 9 | | ------ | ---- | -------- | 10 | {%- for domain in to_parse_stp %} 11 | | {{ domain }} | {{ to_parse_stp[domain].name | default("Not named") }} | {{ to_parse_stp[domain].revision }} | 12 | {%- endfor %} 13 | {%- else %}{%- if filetype_loop == 2 %} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |

Learn Mutliple STP

36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | {%- for domain in to_parse_stp %} 46 | 47 | 48 | 49 | 50 | 51 | {%- endfor %} 52 | 53 |
DomainNameRevision
{{ domain }}{{ to_parse_stp[domain].name | default("Not named") }}{{ to_parse_stp[domain].revision }}
54 | 125 | {% else %} 126 | # Learn Spanning Tree 127 | {%- for domain in to_parse_stp %} 128 | ## Domain: {{ domain }} 129 | ### Name: {{ to_parse_stp[domain].name | default("Not named") }} 130 | ### Revision: {{ to_parse_stp[domain].revision }} 131 | {%- endfor %} 132 | {% endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_service_names.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID,Service Type,Is Local Authorization 2 | {%- for service in serviceNames %} 3 | {{ service.name }},{{ service.id }},{{ service.serviceType }},{{ service.isLocalAuthorization }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Service Names 7 | | Name | ID | Service Type | Is Local Authorization | 8 | | ---- | -- | ------------ | ---------------------- | 9 | {%- for service in serviceNames %} 10 | | {{ service.name }} | {{ service.id }} | {{ service.serviceType }} | {{ service.isLocalAuthorization }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Service Names

35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {%- for service in serviceNames %} 43 | 44 | 45 | 46 | 47 | 48 | 49 | {%- endfor %} 50 |
NameIDService TypeIs Local Authorization
{{ service.name }}{{ service.id }}{{ service.serviceType }}{{ service.isLocalAuthorization }}
51 | 122 | 123 | {%- else %} 124 | # ISE Service Names 125 | {%- for service in serviceNames %} 126 | ## {{ service.name }} 127 | ### ID: {{ service.id }} 128 | ### Service Type: {{ service.serviceType }} 129 | ### Is Local Authorization: {{ service.isLocalAuthorization }} 130 | {%- endfor %} 131 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_proxy.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}FQDN,Port,Password Required,Username,Password,Bypass Hosts 2 | {{ proxy.fqdn }},{{ proxy.port }},{{ proxy.passwordRequired }},{{ proxy.userName }},{{ proxy.password }},{{ proxy.bypassHosts }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE Proxy 5 | | FQDN | Port | Password Required | Username | Password | Bypass Hosts | 6 | | ---- | ---- | ----------------- | -------- | -------- | ------------ | 7 | | {{ proxy.fqdn }} | {{ proxy.port }} | {{ proxy.passwordRequired }} | {{ proxy.userName }} | {{ proxy.password }} | {{ proxy.bypassHosts }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE Proxy

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
FQDNPortPassword RequiredUsernamePasswordBypass Hosts
{{ proxy.fqdn }}{{ proxy.port }}{{ proxy.passwordRequired }}{{ proxy.userName }}{{ proxy.password }}{{ proxy.bypassHosts }}
49 | 120 | 121 | {%- else %} 122 | # ISE Proxy 123 | ## FQDN: {{ proxy.fqdn }} 124 | ## Port: {{ proxy.port }} 125 | ## Password Required: {{ proxy.passwordRequired }} 126 | ## Username: {{ proxy.userName }} 127 | ## Password: {{ proxy.password }} 128 | ## Bypass Hosts: {{ proxy.bypassHosts }} 129 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/NXOS_show_vrf_all_interface.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Interface,VRF,VRF ID,Site of Origin{% for interface in to_parse_vrf %} 2 | {{ interface }},{{ to_parse_vrf[interface].vrf }},{{ to_parse_vrf[interface].vrf_id }},{{ to_parse_vrf[interface].site_of_origin }}{% endfor %} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # Show VRF Interface 5 | | Interface | VRF | VRF ID | Site of Origin | 6 | | --------- | --- | ------ | -------------- |{% for interface in to_parse_vrf %} 7 | | {{ interface }} | {{ to_parse_vrf[interface].vrf }},{{ to_parse_vrf[interface].vrf_id }} | {{ to_parse_vrf[interface].site_of_origin }} |{% endfor %} 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Show VRF All Interface

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | {%- for interface in to_parse_vrf %} 39 | 40 | 41 | 42 | 43 | 44 | {% endfor %} 45 |
InterfaceVRFVRF IDSite of Origin
{{ interface }}{{ to_parse_vrf[interface].vrf }}{{ to_parse_vrf[interface].vrf_id }}{{ to_parse_vrf[interface].site_of_origin }}
46 | 117 | 118 | {%- else %} 119 | # Show VRF All Interface 120 | {%- for interface in to_parse_vrf %} 121 | ## {{ interface }} 122 | ### VRF: {{ to_parse_vrf[interface].vrf }} 123 | ### ID: {{ to_parse_vrf[interface].vrf_id }} 124 | ### Site of Origin {{ to_parse_vrf[interface].site_of_origin }} 125 | {%- endfor %} 126 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_license_register.j2: -------------------------------------------------------------------------------- 1 | {%- if filetype_loop == 0 %}Tier,Connection Type,Registration State,SSM On Prem Server 2 | {{ licRegister.tier | replace(","," ") }},{{ licRegister.connectionType }},{{ licRegister.registrationState }},{{ licRegister.ssmOnPremServer }} 3 | {% else %}{% if filetype_loop == 1 %} 4 | # ISE License Register 5 | | Tier | Connection Type | Registration State | SSM On Prem Server | 6 | | ---- | --------------- | ------------------ | ------------------ | 7 | | {{ licRegister.tier | replace(","," ") }} | {{ licRegister.connectionType }} | {{ licRegister.registrationState }} | {{ licRegister.ssmOnPremServer }} | 8 | {% else %}{% if filetype_loop == 2 %} 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

ISE License Register

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
TierConnection TypeRegistration StateSSM On Prem Server
{{ licRegister.tier | replace(","," ") }}{{ licRegister.connectionType }}{{ licRegister.registrationState }}{{ licRegister.ssmOnPremServer }}
45 | 116 | 117 | {%- else %} 118 | # ISE License Register 119 | ## Tiers 120 | {%- for tier in licRegister.tier %} 121 | ### {{ tier }} 122 | {%- endfor %} 123 | ## Connection Type: {{ licRegister.connectionType }} 124 | ## Registration State: {{ licRegister.registrationState }} 125 | ## SSM On Prem Server: {{ licRegister.ssmOnPremServer }} 126 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_endpoint_groups.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID,Description,System Defined 2 | {%- for group in endpointGroup %} 3 | {{ group.EndPointGroup.name }},{{ group.EndPointGroup.id }},{{ group.EndPointGroup.description }},{{ group.EndPointGroup.systemDefined }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Endpoint Groups 7 | | Name | ID | Description | System Defined | 8 | | ---- | -- | ----------- | -------------- | 9 | {%- for group in endpointGroup %} 10 | | {{ group.EndPointGroup.name }} | {{ group.EndPointGroup.id }} | {{ group.EndPointGroup.description }} | {{ group.EndPointGroup.systemDefined }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE

35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {%- for group in endpointGroup %} 43 | 44 | 45 | 46 | 47 | 48 | {%- endfor %} 49 | 50 |
NameIDDescriptionSystem Defined
{{ group.EndPointGroup.name }}{{ group.EndPointGroup.id }}{{ group.EndPointGroup.description }}{{ group.EndPointGroup.systemDefined }}
51 | 122 | 123 | {%- else %} 124 | # ISE Endpoint Groups 125 | {%- for group in endpointGroup %} 126 | ## {{ group.EndPointGroup.name }} 127 | ### ID: {{ group.EndPointGroup.id }} 128 | ### Description: {{ group.EndPointGroup.description }} 129 | ### System Defined: {{ group.EndPointGroup.systemDefined }} 130 | {%- endfor %} 131 | {%- endif %}{% endif %}{% endif %} -------------------------------------------------------------------------------- /src/businessready/ISE_identity_groups.j2: -------------------------------------------------------------------------------- 1 | {% if filetype_loop == 0 %}Name,ID,Description,Parent 2 | {%- for identity in identityGroup %} 3 | {{ identity.IdentityGroup.name }},{{ identity.IdentityGroup.id }},{{ identity.IdentityGroup.description }},{{ identity.IdentityGroup.parent }} 4 | {%- endfor %} 5 | {% else %}{% if filetype_loop == 1 %} 6 | # ISE Identity Groups 7 | | Name | ID | Description | Parent | 8 | | ---- | -- | ----------- | ------ | 9 | {%- for identity in identityGroup %} 10 | | {{ identity.IdentityGroup.name }} | {{ identity.IdentityGroup.id }} | {{ identity.IdentityGroup.description }} | {{ identity.IdentityGroup.parent }} | 11 | {%- endfor %} 12 | {% else %}{% if filetype_loop == 2 %} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

ISE Identity Groups

35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {%- for identity in identityGroup %} 43 | 44 | 45 | 46 | 47 | 48 | 49 | {%- endfor %} 50 |
NameIDDescriptionParent
{{ identity.IdentityGroup.name }}{{ identity.IdentityGroup.id }}{{ identity.IdentityGroup.description }}{{ identity.IdentityGroup.parent }}
51 | 122 | 123 | {%- else %} 124 | # ISE Identity Groups 125 | {%- for identity in identityGroup %} 126 | ## {{ identity.IdentityGroup.name }} 127 | ### ID: {{ identity.IdentityGroup.id }} 128 | ### Description: {{ identity.IdentityGroup.description }} 129 | ### Parent: {{ identity.IdentityGroup.parent }} 130 | {%- endfor %} 131 | {%- endif %}{% endif %}{% endif %} --------------------------------------------------------------------------------