13.1. yaml_facts - facts

Description:

class nettoolkit.yaml_facts.facts.YamlFacts(capture_log_file: str, output_folder: str = '')[source]

Bases: object

Base class generates the yaml facts file from provided capture_log_file at given output_folder.

capture_log_file: str
output_folder: str = ''
parser_cls_map = {'Cisco': <class 'nettoolkit.yaml_facts.cisco.parser.CiscoParser'>, 'Juniper': <class 'nettoolkit.yaml_facts.juniper.parser.JuniperParser'>}

13.2. yaml_facts - common

Description:

class nettoolkit.yaml_facts.common.parser.CommonParser(captures: any, output_folder: str = '')[source]

Bases: object

Common parser methods class. Provide captures, and output_folder to begin.

Raises:

Exception – for invalid inputs

add_parsed_fields_to_device_dict(parsed_fields)[source]
captures: any
output_folder: str = ''
property output_yaml

output yaml file name with full path

Returns:

yaml output file

Return type:

str

parse()[source]
parse_func(fn, cmd_output)[source]
set_output_yaml_filename()[source]
write_yaml()[source]
nettoolkit.yaml_facts.common.parser.get_ntc_template_file(abs_cmd, cmd_parser_file_map)[source]

returns ntc template file.

Parameters:
  • abs_cmd (str) – absolute command

  • cmd_parser_file_map (dict) – parser map to select the template file based on absolute command

Returns:

template file

Return type:

str

nettoolkit.yaml_facts.common.parser.get_self_template_file(abs_cmd, cmd_parser_file_map)[source]

returns nettoolkit template file.

Parameters:
  • abs_cmd (str) – absolute command

  • cmd_parser_file_map (dict) – parser map to select the template file based on absolute command

Returns:

template file

Return type:

str

nettoolkit.yaml_facts.common.parser.get_template_dir(template_path)[source]

returns template directory

Parameters:

template_path (str) – source of template path

Returns:

Path where templates are stored.

Return type:

Path

nettoolkit.yaml_facts.common.parser.get_template_file(abs_cmd, cmd_parser_file_map)[source]

returns template file with full path for provided command.

Parameters:
  • abs_cmd (str) – absolute command

  • cmd_parser_file_map (dict) – parser map to select the template file based on absolute command

Raises:

Exception – if template file not found or unable to read template.

Returns:

template file

Return type:

str

nettoolkit.yaml_facts.common.parser.is_exist(file)[source]

check if template file exist or not

Parameters:

file (str) – file name with full path

Returns:

True if found else False

Return type:

bool

nettoolkit.yaml_facts.common.parser.parse_to_dict(template_file, data_list)[source]

Parse the data_list using template file. And returns data as dictionary

Parameters:
  • template_file (str) – template file

  • data_list (list) – output in list formate

Returns:

parsed data in dictionary format

Return type:

dict

nettoolkit.yaml_facts.common.parser.parse_to_dict_cmd(abs_cmd, data_list, cmd_parser_file_map)[source]

parse the output

Parameters:
  • abs_cmd (str) – absolute command

  • data_list (list) – list of output

  • cmd_parser_file_map (dict) – command parser map

Returns:

parsed data in dictionary format

Return type:

list

nettoolkit.yaml_facts.common.parser.parse_to_list(template_file, data_list)[source]

Parse the data_list using template file. And returns data as list

Parameters:
  • template_file (str) – template file

  • data_list (list) – output in list formate

Returns:

parsed data in list format

Return type:

list

nettoolkit.yaml_facts.common.parser.parse_to_list_cmd(abs_cmd, data_list, cmd_parser_file_map)[source]

parse the output

Parameters:
  • abs_cmd (str) – absolute command

  • data_list (list) – list of output

  • cmd_parser_file_map (dict) – command parser map

Returns:

parsed data in list format

Return type:

list

13.3. yaml_facts - cisco

Description: Cisco Parser

class nettoolkit.yaml_facts.cisco.parser.CiscoParser(captures: any, output_folder: str = '')[source]

Bases: CommonParser

Cisco Parser Class - parse juniper configurations using CISCO_CMD_PARSER_MAP

Inherits:

CommonParser (class): Common Parser class

captures: any
cmd_fn_parser_map = {'show cdp neighbors': (<function get_cdp_neighbour>,), 'show interfaces status': (<function get_interface_status>,), 'show lldp neighbors': (<function get_lldp_neighbour>,), 'show running-config': (<function get_interfaces_running>, <function get_system_running_routes>, <function get_system_running_prefix_lists>, <function get_bgp_running>, <function get_rip_running>, <function get_eigrp_running>, <function get_ospf_running>, <function get_isis_running>, <function get_vrfs_running>, <function get_system_running>), 'show version': (<function get_version>,)}
output_folder: str = ''

13.4. yaml_facts - juniper

Description: Juniper Parser

class nettoolkit.yaml_facts.juniper.parser.JuniperParser(captures: any, output_folder: str = '')[source]

Bases: CommonParser

Juniper Parser Class - parse juniper configurations using JUNIPER_CMD_PARSER_MAP

Inherits:

CommonParser (class): Common Parser class

captures: any
cmd_fn_parser_map = {'show arp': (<function get_arp_table>,), 'show chassis hardware': (<function get_chassis_hardware>, <function get_chassis_serial>), 'show configuration': (<function get_interfaces_running>, <function get_system_running_routes>, <function get_system_running_prefix_lists>, <function get_instance_running>, <function get_bgp_running>, <function get_ospf_running>, <function get_ospf3_running>, <function get_rip_running>, <function get_isis_running>, <function get_helper_running>, <function get_system_running>), 'show lldp neighbors': (<function get_lldp_neighbour>,), 'show version': (<function get_version>,)}
output_folder: str = ''

13.5. yaml_facts - cisco - parsers

Description:

nettoolkit.yaml_facts.cisco.parsers.common.cisco_addressing_on_list(spl, ip_index, mask_index)[source]

get the IP address object for cisco input format of ( ip address 10.10.0.3 255.255.255.0 )

Parameters:
  • spl (list) – splitted input line

  • ip_index (int) – ip address index value

  • mask_index (int) – mask index value

Returns:

ip addressing object

Return type:

IPv4, IPv6

nettoolkit.yaml_facts.cisco.parsers.common.parse_to_dict_using_ntc(cmd, command_output)[source]

parse command output of a command using ntc template

Parameters:
  • cmd (str) – absolute command

  • command_output (list) – list of command output

Returns:

dictionary of parsed output

Return type:

dict

nettoolkit.yaml_facts.cisco.parsers.common.parse_to_list_using_ntc(cmd, command_output)[source]

parse command output of a command using ntc template

Parameters:
  • cmd (str) – absolute command

  • command_output (list) – list of command output

Returns:

list of parsed output

Return type:

list

nettoolkit.yaml_facts.cisco.parsers.common.remove_remarks(command_output)[source]

remove remarked lines from cisco output

Parameters:

command_output (list) – list of output

Returns:

updated list of output

Return type:

list

nettoolkit.yaml_facts.cisco.parsers.common.update_port_on_int_type(p)[source]

update the port to port number based on input port. Examples - vlan200 will change to 200. loopback0 will change to 0. port-channel10 will change to 10. tunnel0 will change to 0. other types will remain unchanged.

Parameters:

p (str) – port string

Returns:

updated ports

Return type:

int,str

cisco show arp table command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_arp_table.get_arp_table(command_output)[source]

parse output of : show ip arp

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

cisco show cdp neighbour command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_cdp_neighbors.get_cdp_neighbour(command_output)[source]

parse output of : show cdp neighbor

Parameters:

command_output (list) – command output

Returns:

physical interfaces level parsed output dictionary

Return type:

dict

cisco show interface description command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_descriptions.get_interface_description(command_output)[source]

parse output of : show interface description

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

cisco show lldp neighbour command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_lldp_neighbors.get_lldp_neighbour(command_output)[source]

parse output of : show lldp neighbor

Parameters:

command_output (list) – command output

Returns:

physical interfaces level parsed output dictionary

Return type:

dict

cisco show mac address-table command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_mac_table.get_mac_address_table(command_output)[source]

parse output of : show mac address-table

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

cisco show running-config parser for interface section outputs

class nettoolkit.yaml_facts.cisco.parsers.interface_run.RunningInterfaces(cmd_op: list[str] = <factory>)[source]

Bases: object

attr_functions = [<function get_int_description>, <function get_int_state>, <function get_int_ip_details>, <function get_int_ipv6_details>, <function get_int_mode_details>, <function get_int_vlan_details>, <function get_int_vrf>, <function get_int_udld>, <function get_int_channel_group>, <function get_int_v4_helpers>, <function get_int_v6_helpers>, <function get_int_rip>, <function get_int_ospf_auth>, <function get_int_eigrp>, <function get_int_isis>]
cmd_op: list[str]
get_interfaces_lines_dict()[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_channel_group(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_description(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_eigrp(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_ip_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_ipv6_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_isis(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_mode_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_ospf_auth(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_rip(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_state(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_udld(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_v4_helpers(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_v6_helpers(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_vlan_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_int_vrf(port_dict, l, spl)[source]
nettoolkit.yaml_facts.cisco.parsers.interface_run.get_interfaces_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

cisco show interface status command output parser

nettoolkit.yaml_facts.cisco.parsers.interface_status.get_interface_status(command_output)[source]

parse output of : show interface status

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

cisco running-config - prefix list output parser

class nettoolkit.yaml_facts.cisco.parsers.prefix_list_run.RunningPrefixLists(cmd_op)[source]

Bases: object

object for running config prefix list parser

static get_obj_dict(dic, l, spl)[source]

parser function to update prefix-list details

Parameters:
  • dic (dict) – blank dictionary to update a prefix-list info

  • l (str) – line to parse

Returns:

None

Return type:

None

pl_dict()[source]

update the prefix-list details

pl_read(func)[source]

directive function to get the various prefix list level output

Parameters:

func (method) – method to be executed on prefix list config line

Returns:

parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.cisco.parsers.prefix_list_run.get_system_running_prefix_lists(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

prefix-lists level parsed output dictionary

Return type:

dict

cisco running-config parser for bgp section output

class nettoolkit.yaml_facts.cisco.parsers.protocol_bgp_run.BGPConf(run_list: list[str] = <factory>)[source]

Bases: ProtocolsConfig

attr_functions = [<function _get_router_id>, <function _get_networks>, <function _get_aggregates>, <function _get_timers>, <function _get_redistributions>]
peer_attr_functions = [<function _get_peers>, <function _get_str_next_items>, <function _get_int_next_items>, <function _get_stub_items>, <function _get_description>, <function _get_password>, <function _get_max_prefix_attrs>, <function _get_default_originate>, <function _get_soft_reconfiguration>, <function _get_route_map>, <function _get_inherited_template>]
run_list: list[str]
supported_af_types = ('ipv4', 'vpnv4', 'ipv6', 'vpnv6')
nettoolkit.yaml_facts.cisco.parsers.protocol_bgp_run.get_bgp_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

protocols bgp level parsed output dictionary

Return type:

dict

cisco running-config parser for rip section output

class nettoolkit.yaml_facts.cisco.parsers.protocol_eigrp_run.EIGRPConf(run_list: list[str] = <factory>)[source]

Bases: ProtocolsConfig

attr_functions = [<function _get_eigrp_routerid>, <function _get_eigrp_asn>, <function _get_eigrp_neighbors>, <function _get_eigrp_networks>, <function _get_eigrp_summary_address>, <function _get_eigrp_summary_metric>, <function _get_eigrp_authentication>, <function _get_eigrp_distance>, <function _get_eigrp_default_metrics>, <function _get_eigrp_metric_weights>, <function _get_eigrp_metric_rib_scale>, <function _get_eigrp_dampening>, <function _get_eigrp_redistribution>, <function _get_eigrp_others>, <function _get_eigrp_passive_intf>]
get_eigrp_af_lines_dict(source_dict, starter, stopper)[source]
get_eigrp_lines_dict()[source]
get_eigrp_sub_af_lines_dict(source_dict, starter, stopper)[source]
group_by = {'af-interface', 'topology'}
shirnk_None_vrf_dict()[source]
supported_af_types = ('ipv4', 'ipv6')
nettoolkit.yaml_facts.cisco.parsers.protocol_eigrp_run.get_eigrp_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

protocols eigrp level parsed output dictionary

Return type:

dict

cisco running-config parser for isis section output

class nettoolkit.yaml_facts.cisco.parsers.protocol_isis_run.ISISConf(run_list: list[str] = <factory>)[source]

Bases: ProtocolsConfig

attr_functions = [<function _get_isis_spf_interval>, <function _get_isis_prc_interval>, <function _get_isis_metric>, <function _get_isis_metric_style>, <function _get_isis_redistribution>, <function _get_isis_summary_address>, <function _get_isis_auth>, <function _get_isis_next_item>, <function _get_isis_psasive_intf>, <function _get_isis_default_info_originate>]
get_isis_af_lines_dict(source_dict, starter, stopper)[source]
get_isis_lines_dict()[source]
shirnk_None_vrf_dict()[source]
supported_af_types = ('ipv4', 'ipv6')
nettoolkit.yaml_facts.cisco.parsers.protocol_isis_run.get_isis_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

protocols isis and isis-instance level parsed output dictionary

Return type:

dict

cisco show running-config parser for ospf section output

class nettoolkit.yaml_facts.cisco.parsers.protocol_ospf_run.OSPF(run_list: list[str] = <factory>)[source]

Bases: ProtocolsConfig

attr_functions = [<function _get_router_id>, <function _get_active_interfaces>, <function _get_networks>, <function _get_summaries>, <function _get_neighbors>, <function _get_ospf_cost>, <function _get_ospf_priority>, <function _get_ospf_intervals>, <function _get_area_types>, <function _get_area_default_cost>, <function _get_transit_area>, <function _get_ospf_auto_cost_ref_bw>, <function _get_redistribution>]
run_list: list[str]
nettoolkit.yaml_facts.cisco.parsers.protocol_ospf_run.get_ospf_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

protocols ospf and ospfv6 level parsed output dictionary

Return type:

dict

cisco running-config parser for rip section output

class nettoolkit.yaml_facts.cisco.parsers.protocol_rip_run.RIPConf(run_list: list[str] = <factory>)[source]

Bases: ProtocolsConfig

attr_functions = [<function _get_rip_version>, <function _get_auto_summary>, <function _get_source_validation>, <function _get_networks>, <function _get_neighbors>, <function _get_redistributions>, <function _get_default_metric>, <function _get_offset_list>]
supported_af_types = ('ipv4', 'ipv6')
nettoolkit.yaml_facts.cisco.parsers.protocol_rip_run.get_rip_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

protocols rip level parsed output dictionary

Return type:

dict

cisco running-config parser for protocol xxx section output

class nettoolkit.yaml_facts.cisco.parsers.protocols.ProtocolsConfig(run_list: list[str] = <factory>)[source]

Bases: object

Base class for protocols standard methods implementation

Raises:

Exception – if any unsupported protocol provided

multi_instance_protocols = {'eigrp', 'ospf'}
protocol_config_initialize(protocol)[source]
remove_empty_vrfs(vrf_dict)[source]
run_list: list[str]
single_instance_protocols = {'bgp', 'rip'}
nettoolkit.yaml_facts.cisco.parsers.protocols.get_protocol_instance_dict(protocol, instances_dic)[source]

cisco running-config - ip routes output parser

class nettoolkit.yaml_facts.cisco.parsers.statics_run.RunningRoutes(cmd_op)[source]

Bases: object

Base class for running config routes parser

static get_route_dict(vrf_routes, l, spl)[source]

parser function to update route details

Parameters:
  • vrf_routes (dict) – blank dictionary to update a route info

  • l (str) – line to parse

Returns:

None

Return type:

None

route_read(func)[source]

directive function to get the various routes level output

Parameters:

func (method) – method to be executed on ip routes config line

Returns:

parsed output dictionary

Return type:

dict

routes_dict()[source]

update the route details

nettoolkit.yaml_facts.cisco.parsers.statics_run.get_administrative_dist(spl, next_hop, idx_distance)[source]

get administrative distance value from ip route command list

Parameters:
  • spl (list) – ip route command splitted

  • next_hop (str) – next hop value

  • idx_distance (int) – index distance

Returns:

value of administrative distance configured or ``

Return type:

str

nettoolkit.yaml_facts.cisco.parsers.statics_run.get_multi_idx_item(item, lst)[source]

get multi indexex item from list

Parameters:
  • item (str) – item

  • lst (list) – list of items

Returns:

index till end of list

Return type:

str

nettoolkit.yaml_facts.cisco.parsers.statics_run.get_pfx_nh_idxdist(version, spl, idx_distance)[source]

get tuple of prefix, nexthop, indexdistance for give ip route split line

Parameters:
  • version (int) – ip route version

  • spl (list) – list of splitted ip route command

  • idx_distance (int) – index distance

Returns:

_description_

Return type:

_type_

nettoolkit.yaml_facts.cisco.parsers.statics_run.get_singel_idx_item(item, lst)[source]

gives next item if found item from list

Parameters:
  • item (str) – item

  • lst (list) – list of items

Returns:

Next index item found in list

Return type:

str

nettoolkit.yaml_facts.cisco.parsers.statics_run.get_system_running_routes(command_output)[source]

defines set of methods executions. to get various ip route parameters. uses RunningRoutes in order to get all.

Parameters:

command_output (list, str) – running config output, either list of multiline string

Returns:

output dictionary with parsed with system fields

Return type:

dict

nettoolkit.yaml_facts.cisco.parsers.statics_run.index_of(item, lst)[source]

index of an item from list

Parameters:
  • item (str) – item

  • lst (list) – list of items

Returns:

index of found item else ``

Return type:

int

cisco show running-config parser for system outputs

class nettoolkit.yaml_facts.cisco.parsers.system_run.RunningSystem(cmd_op)[source]

Bases: object

object for running config parser

Parameters:

cmd_op (list, str) – running config output, either list of multiline string

system_bgp_as_number()[source]

get the device bgp as number

system_ca_certificate()[source]

get the device certificate hex values for cisco 9k & supported series switches.

system_exec_banner()[source]

get exec banner first line

system_hostname()[source]

get hostname of device

system_name_server()[source]

get list of dns name server ips from configurations

system_ntp_server()[source]

get list of ntp server ips from configurations

system_syslog_server()[source]

get list of syslog server ips from configurations

system_tacacs_server()[source]

get list of tacacs server ips from aaa configurations

nettoolkit.yaml_facts.cisco.parsers.system_run.get_system_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

system level parsed output dictionary

Return type:

dict

cisco show version command output parser

nettoolkit.yaml_facts.cisco.parsers.system_version.get_version(command_output)[source]

parse output of : show version

Parameters:

command_output (list) – command output

Returns:

system level parsed output dictionary

Return type:

dict

cisco show running-config command parser for vrf level outputs

class nettoolkit.yaml_facts.cisco.parsers.vrf_run.RunningVRFs(cmd_op)[source]

Bases: object

object for VRF level running config parser

Parameters:

cmd_op (list, str) – running config output, either list of multiline string

static get_vrf_af(port_dict, l)[source]

parser function to update vrf address-family details

Parameters:
  • port_dict (dict) – dictionary with a vrf info

  • l (str) – string line to parse

Returns:

None

Return type:

None

static get_vrf_description(port_dict, l)[source]

parser function to update vrf description details

Parameters:
  • port_dict (dict) – dictionary with a vrf info

  • l (str) – string line to parse

Returns:

None

Return type:

None

static get_vrf_rd(port_dict, l)[source]

parser function to update vrf rd details

Parameters:
  • port_dict (dict) – dictionary with a vrf info

  • l (str) – string line to parse

Returns:

None

Return type:

None

static get_vrf_rt(port_dict, l)[source]

parser function to update vrf rt details

Parameters:
  • port_dict (dict) – dictionary with a vrf info

  • l (str) – string line to parse

Returns:

None

Return type:

None

vrf_af()[source]

update the vrf address-family details

vrf_description()[source]

update the vrf description details

vrf_rd()[source]

update the vrf rd details

vrf_read(func)[source]

directive function to get the various VRF level output

Parameters:

func (method) – method to be executed on VRF config line

Returns:

parsed output dictionary

Return type:

dict

vrf_rt()[source]

update the vrf rt details

nettoolkit.yaml_facts.cisco.parsers.vrf_run.get_vrfs_running(command_output)[source]

parse output of : show running-config

Parameters:

command_output (list) – command output

Returns:

vrf level parsed output dictionary

Return type:

dict

13.6. yaml_facts - juniper - parsers

Description:

nettoolkit.yaml_facts.juniper.parsers.common.get_int_port_dict(op_dict, port)[source]

get an interface number from provided port and update op_dict

Parameters:
  • op_dict (dict) – output dict

  • port (str) – portid

Returns:

updated op_dict

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.common.get_numbered_port_dict(op_dict, port)[source]

update port number for irb, ae, lo interfaces.

Parameters:
  • op_dict (dict) – output dict

  • port (str) – portid

Returns:

updated op_dict

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.common.get_pw(spl, key)[source]

get the juniper decrypted password

Parameters:
  • spl (list) – list of splitted output line

  • key (str) – input password

Returns:

decrypted password if possible, or same as input

Return type:

str

nettoolkit.yaml_facts.juniper.parsers.common.parse_to_dict_using_ntc(cmd, command_output)[source]

parse command output of a command using ntc template

Parameters:
  • cmd (str) – absolute command

  • command_output (list) – list of command output

Returns:

dictionary of parsed output

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.common.parse_to_list_using_ntc(cmd, command_output)[source]

parse command output of a command using ntc template

Parameters:
  • cmd (str) – absolute command

  • command_output (list) – list of command output

Returns:

list of parsed output

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.common.remove_remarks(command_output)[source]

remove remarked lines from juniper output

Parameters:

command_output (list) – list of output

Returns:

updated list of output

Return type:

list

juniper bgp protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.instance_helpers.HelperAddresses(cmd_op: list[str] = <factory>)[source]

Bases: Running

attr_functions = [<function get_helper>]
cmd_op: list[str]
get_system_helpers_lines_dict()[source]
iterate_to_get_helpers()[source]
nettoolkit.yaml_facts.juniper.parsers.instance_helpers.get_helper(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.instance_helpers.get_helper_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

vrf level parsed output dictionary for dhcp helper recognition

Return type:

dict

juniper bgp protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.instance_run.Instances(cmd_op: list[str] = <factory>, protocol: str = None)[source]

Bases: ProtocolObject

add_protocol_instance_info()[source]
cmd_op: list[str]
get_instance_lines()[source]
instance_attr_functions = [<function get_vrf_rd>, <function get_vrf_rt>, <function get_vrf_desc>]
iterate_instance_funcs(instance_dict, spl)[source]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.instance_run.get_instance_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

vrf level parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.instance_run.get_vrf_desc(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.instance_run.get_vrf_rd(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.instance_run.get_vrf_rt(vrf_dict, spl)[source]

juniper arp table command output parser

nettoolkit.yaml_facts.juniper.parsers.interface_arp_table.get_arp_table(cmd_op, *args)[source]

parse output of : show arp

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

juniper interface description command output parser

nettoolkit.yaml_facts.juniper.parsers.interface_descriptions.get_interface_description(cmd_op)[source]

parse output of : show interfaces description

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

juniper show chassis hardware command output parser

class nettoolkit.yaml_facts.juniper.parsers.interface_hardware.JuniperChassisHardware(output)[source]

Bases: object

read the show chassis hardware output from juniper and returns port type(sfp)

Parameters:

output (list) – show chassis hardware output in list

get_sfp(port)[source]

get the SFP details for given port

Parameters:

port (str) – port number only (port type to be excluded)

Returns:

SFP type

Return type:

str

nettoolkit.yaml_facts.juniper.parsers.interface_hardware.get_chassis_hardware(cmd_op)[source]

parse output of : show chassis hardware

Parameters:

command_output (list) – command output

Returns:

interface level parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.interface_hardware.get_chassis_hardware_iterative(cmd_op)[source]

juniper lldp neighbour command output parser

nettoolkit.yaml_facts.juniper.parsers.interface_lldp_neighbors.get_lldp_neighbour(cmd_op)[source]

parse output of : show lldp neighbor

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

juniper interface from config command output parser

class nettoolkit.yaml_facts.juniper.parsers.interface_run.RunningInterfaces(cmd_op: list[str] = <factory>)[source]

Bases: Running

cmd_op: list[str]
filter_instance_lines()[source]
filter_interface_lines()[source]
filter_ospfauth_lines()[source]
get_attributes()[source]
get_instance_lines_dict()[source]
get_interfaces_lines_dict()[source]
get_ospfauth_lines_dict()[source]
instance_attr_functions = (<function get_int_instance>,)
int_attr_functions = (<function get_int_description>, <function get_int_ip_details>, <function get_int_ipv6_details>, <function get_int_channel_grp>, <function get_int_port_mode>, <function get_int_vlan_details>)
property lines_to_function_map
ospfauth_attr_functions = (<function get_int_ospf_auth>,)
start()[source]
static update_lines_dict(line, spl, port_idx, lines_dict)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_channel_grp(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_description(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_instance(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_ip_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_ipv6_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_ospf_auth(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_port_mode(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_int_vlan_details(port_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.interface_run.get_interfaces_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

interfaces level parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.interface_run.set_of_voice_vlans(set_cmd_op)[source]

juniper prefix list parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.prefix_list_run.RunningPrefixLists(cmd_op: list[str] = <factory>)[source]

Bases: Running

attr_functions = (<function get_pfx_list_prefix>,)
cmd_op: list[str]
filter_prefixlist_lines()[source]
get_attributes()[source]
get_pfx_lines_dict()[source]
pfx_str_begin_with = 'set policy-options prefix-list '
start()[source]
nettoolkit.yaml_facts.juniper.parsers.prefix_list_run.get_pfx_list_prefix(pfx_list, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.prefix_list_run.get_system_running_prefix_lists(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

prefix-list level parsed output dictionary

Return type:

dict

juniper bgp protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.BGP(cmd_op: list[str] = <factory>, protocol: str = None)[source]

Bases: ProtocolObject

add_protocol_bgp_instance_peers()[source]
bgp_attr_functions = ()
cmd_op: list[str]
get_peers_dict(peers, vrf)[source]
iterate_peer_funcs(peer_dict, spl)[source]
peer_attr_functions = [<function get_bgp_peer_peers>, <function get_bgp_peer_description>, <function get_bgp_peer_auth>, <function get_bgp_peer_peeras>, <function get_bgp_peer_localas>, <function get_bgp_peer_multihop>]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_auth(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_common_info(peer_dict, spl, item, sub_item_idx)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_description(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_localas(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_multihop(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_peeras(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_peer_peers(peer_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_bgp_run.get_bgp_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

protocols bgp level parsed output dictionary

Return type:

dict

juniper protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.ISIS(cmd_op: list[str] = <factory>, protocol: str = None)[source]

Bases: ProtocolObject

cmd_op: list[str]
get_isis_instances_dict(lines)[source]
get_protocol_isis_instance_lines()[source]
isis_attr_functions = [<function get_isis_options>]
isis_intf_attr_functions = [<function get_isis_int_options>]
isis_lvl_attr_functions = [<function get_isis_lvl_options>]
isis_nested_attr_functions = {'interface': [<function get_isis_int_options>], 'level': [<function get_isis_lvl_options>]}
iterate_for_isis_instances()[source]
iterate_isis_attr_funcs(instance_dict, spl, segments)[source]
iterate_isis_intf_attr_funcs(instance_dict, spl, segment)[source]
iterate_isis_lines(instance_dict, instance_lines)[source]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_instance_running(cmd_op)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_int_options(int_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_lvl_options(lvl_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_options(instance_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_parent_running(cmd_op)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_isis_run.get_isis_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

protocols isis and isis-instance level parsed output dictionary

Return type:

dict

juniper ospf protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.OSPF(cmd_op: list[str] = <factory>, protocol: str = None)[source]

Bases: ProtocolObject

cmd_op: list[str]
get_area_ids(ospf_area_ids_lines)[source]
get_ospf_area_ids_lines(lines)[source]
get_ospf_other_lines(lines)[source]
get_protocol_ospf_instance_lines()[source]
iterate_area_funcs(VRF, vrf_dict)[source]
iterate_for_ospf()[source]
iterate_instance_funcs(VRF, vrf_dict)[source]
ospf_area_attr_functions = [<function get_area_interface_attributes>, <function get_area_stub_attributes>, <function get_area_range_attributes>, <function get_area_virtuallink_attributes>, <function get_area_shamlink_attributes>]
ospf_instance_attr_functions = [<function get_instance_attributes>, <function get_instance_attribute_spf_options>, <function get_area_shamlink_attributes>]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_interface_attributes(vrf_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_interface_auth_attributes(int_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_interface_next_item_attributes(int_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_interface_true_item_attributes(int_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_range_attributes(vrf_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_stub_attributes(vrf_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_stub_def_lsa_item_attributes(stub_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_stub_next_item_attributes(stub_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_area_stub_true_item_attributes(stub_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_instance_attribute_spf_options(vrf_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_instance_attributes(vrf_dict, line, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_ospf3_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

protocols ospf3 level parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.protocol_ospf_run.get_ospf_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

protocols ospf level parsed output dictionary

Return type:

dict

juniper rip protocol routing instances parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.RIP(cmd_op: list[str] = <factory>, protocol: str = None)[source]

Bases: ProtocolObject

cmd_op: list[str]
get_protocol_rip_instance_lines()[source]
get_rip_group_dict(group_lines)[source]
get_rip_group_lines(lines)[source]
get_rip_other_lines(lines)[source]
iterarte_group_lines(vrf_dict, lines)[source]
iterarte_other_lines(vrf_dict, lines)[source]
iterate_for_rip()[source]
rip_attr_functions = [<function get_rip_instance_attributes>, <function get_rip_auth_attributes>]
rip_grp_attr_functions = [<function get_rip_instance_attributes>, <function get_rip_nbr_attributes>, <function get_rip_bfdld_attributes>]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_authentication_attributes(nbr_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_rip_auth_attributes(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_rip_bfdld_attributes(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_rip_instance_attributes(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_rip_nbr_attributes(vrf_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.protocol_rip_run.get_rip_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

protocols rip level parsed output dictionary

Return type:

dict

juniper protocol related common classes - parent

class nettoolkit.yaml_facts.juniper.parsers.run.PeerLines(bgp_peer_group_lines: list[str] = <factory>, peer: str = '')[source]

Bases: object

Base class to filter BGP Peer lines

Yields:

tuple – peer lines, splitted peer lines

bgp_peer_group_lines: list[str]
peer: str = ''
property peer_group_lines
property peer_group_lines_spl
class nettoolkit.yaml_facts.juniper.parsers.run.ProtocolObject(cmd_op: list[str] = <factory>, protocol: str | None = None)[source]

Bases: Running

Base class to return an object for a protocol lines.

Parameters:
  • cmd_op (list) – list of output

  • protocol (str) – protocol for which lines to be filtered.

cmd_op: list[str]
initialize(protocol)[source]
protocol: str = None
class nettoolkit.yaml_facts.juniper.parsers.run.Running(cmd_op: list[str] = <factory>)[source]

Bases: object

Base class for show configuration parsing common methods

Raises:

Exception – if necessary capture is missing in output

cmd_op: list[str]
iterate_logical_systems(hierarchy)[source]
remove_parent_vrf_if_standalone(protocol_dict)[source]
separate_logical_systems()[source]
abstract classmethod start()[source]
class nettoolkit.yaml_facts.juniper.parsers.run.VrfLines(protocol: str = 'bgp', vrf: str = '', protocol_lines: list[str] = <factory>, protocol_spl_lines: list[str] = <factory>)[source]

Bases: object

Base class to filter a protocol instance lines

Yields:

str – filtered lines

property bgp_other_lines
property bgp_peer_group_lines
property peer_group_names
protocol: str = 'bgp'
protocol_lines: list[str]
protocol_spl_lines: list[str]
property protocol_vrf_lines
vrf: str = ''
class nettoolkit.yaml_facts.juniper.parsers.run.jProtocolLines(config_lines: list[str] = <factory>, protocol: str = 'bgp')[source]

Bases: object

Base class for all protocol lines

Yields:

str – protocol lines

config_lines: list[str]
protocol: str = 'bgp'

juniper routes parsing from set config

class nettoolkit.yaml_facts.juniper.parsers.statics_run.RunningRoutes(cmd_op: list[str] = <factory>)[source]

Bases: Running

attr_functions = [<function get_static_next_hop>, <function get_static_preferance>, <function get_static_tag>, <function get_static_remark>, <function get_static_resolve>, <function get_static_retain>]
cmd_op: list[str]
filter_n_merge(v, spl_str)[source]
filter_routes_lines(route_spl_str)[source]
get_attributes(vrf_pfx_lines, version)[source]
get_vrf_list(vrf_and_route_tuple)[source]
get_vrf_pfx_lines(vrf_and_route_tuple, vrfs)[source]
route_spl_str = {4: ' routing-options static route ', 6: ' routing-options rib blue.inet6.0 static route '}
split_vrf_and_route_portions(routes_lines, route_spl_str)[source]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_next_hop(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_preferance(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_remark(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_resolve(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_retain(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_static_tag(op_dict, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.statics_run.get_system_running_routes(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

statics level parsed output dictionary

Return type:

dict

juniper system config parser from set config

class nettoolkit.yaml_facts.juniper.parsers.system_run.RunningSystem(cmd_op: list[str] = <factory>)[source]

Bases: Running

attr_functions = [<function get_system_common_attrs>, <function get_system_syslog_servers>, <function get_system_ntp_servers>, <function get_system_gtac_servers>, <function get_system_mgmt_ip>, <function get_system_banner>, <function get_system_as_number>]
cmd_op: list[str]
filter_system_lines()[source]
start()[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_as_number(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_banner(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_common_attrs(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_gtac_servers(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_mgmt_ip(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_ntp_servers(op_dict, l, spl)[source]
nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_running(cmd_op)[source]

parse output of : show configurtain

Parameters:

command_output (list) – command output

Returns:

system level parsed output dictionary

Return type:

dict

nettoolkit.yaml_facts.juniper.parsers.system_run.get_system_syslog_servers(op_dict, l, spl)[source]

juniper show chassis hardware command output parser

nettoolkit.yaml_facts.juniper.parsers.system_serial.get_chassis_serial(cmd_op)[source]

parse output of : show chassis hardware

Parameters:

command_output (list) – command output

Returns:

system level parsed output dictionary

Return type:

dict

juniper show version command output parser

nettoolkit.yaml_facts.juniper.parsers.system_version.get_version(cmd_op)[source]

parse output of : show version

Parameters:

command_output (list) – command output

Returns:

system level parsed output dictionary

Return type:

dict