5.1. diff module

class nettoolkit.compare_it.diff.CiscoHierarchy(f, indention, sect_pfx)[source]

Bases: dict

Convert Cisco Normal Configuration to a Dictionary

Parameters:
  • f (str) – section

  • indention (int) – indention

  • sect_pfx (str) – section prefix

add_line_to_dict(line)[source]

add line to self.dic

Parameters:

line (str) – input line

property config
descent_block(line_indention, line)[source]

descent block for line

Parameters:
  • line_indention (int) – line indention

  • line (str) – input line

exceptional_lines_maps(line)[source]

returns exceptional lines from exceptional lines map, which doesn’t follows standard indention.

Parameters:

line (str) – input line

Returns:

line or exceptional indention corrected line

Return type:

str

indented_block(line_indention, line)[source]

update indented block for given line

Parameters:
  • line_indention (int) – line indention

  • line (str) – input line

mask_passwords(line)[source]

masks password in given line (if present)

Parameters:

line (str) – configuration line

Returns:

updated line

Return type:

str

remarked_lines(line)[source]

adds previous line to section prefix if remarked line

Parameters:

line (str) – input line

Returns:

if line is a remarked line

Return type:

bool

section_conf(test=False)[source]

Section config to serialize

trailing_remarks_update(line)[source]

remove trailing remark string from input line

Parameters:

line (str) – input line

Returns:

updated line

Return type:

str

class nettoolkit.compare_it.diff.CompareExcelData(file1, file2, sheet_name, change_type)[source]

Bases: object

compares two excel databases

Parameters:
  • file1 (str) – first excel file

  • file2 (str) – second excel file

  • sheet_name (str) – sheet name to be compared

  • change_type (str) – change types (”+ “, “- “)

conv_df_to_dict()[source]

convert dataframes to dictionaries

diff(idx)[source]

difference with respect to indexed column

Parameters:

idx (str) – index column

Returns:

differences

Return type:

dict

get_df(idx)[source]

dataframes for provided two files.

Parameters:

idx (str) – index columns

get_dict_diffs()[source]

dictionary differences

class nettoolkit.compare_it.diff.CompareText(file1, file2, change_type='')[source]

Bases: object

Class to start comparing for two configs. readfiles than convert to lists, than detects device/config tpyes, run appropriate comparetext object.

Parameters:
  • file1 (_type_) – first file

  • file2 (_type_) – second file to compare with previous

  • change_type (str, optional) – either add/del (+, -). Defaults to ‘’.

property cfg
detect_types()[source]

Detects Device and config Types for provided config files

get_ct_object()[source]

Compare Text Object based on detected config device

is_cfg_match()[source]

Returns boolean value, for config matched

class nettoolkit.compare_it.diff.Compare_Text_Cisco(file1, file2, config_type, change_type)[source]

Bases: Compare_Text_Papa

Child class defining Cisco methods for Text config compare

get_diff(conf0, conf1)[source]

Generate differences between two configs.

serialize_files(file1, file2)[source]

Convert files to linear format

Parameters:
  • file1 (str) – first file to compare

  • file2 (str) – second file to compare

class nettoolkit.compare_it.diff.Compare_Text_Juniper(file1, file2, config_type, change_type)[source]

Bases: Compare_Text_Papa

Child class defining Juniper methods for Text config compare

check_diff(dst_config, sectLine)[source]

check line difference in destined config

Parameters:
  • dst_config (tuple, list) – destination configuration

  • sectLine (str, tuple, list) – section of line(s)

get_diff(conf0, conf1)[source]

Generate differences between two configs

Parameters:
  • conf0 (list) – list of config 0

  • conf1 (list) – list of config 1

serialize_files(file1, file2)[source]

Convert files to JSET format if not already

Parameters:
  • file1 (str) – first file to compare

  • file2 (str) – second file to compare

to_set(file)[source]

Convert files to JSET format if not already /child

Parameters:

file (str) – juniper config file name

Returns:

converted set configuration

Return type:

list

class nettoolkit.compare_it.diff.Compare_Text_Papa(file1, file2, config_type, change_type)[source]

Bases: ABC

Parent class defining common methods for various vendors

property differences

property that returns the differences

Returns:

differences dictionary with adds/removals

Return type:

dict

abstract classmethod serialize_files(file1, file2)[source]

provide two serialized configuration files to be compared with.

Parameters:
  • file1 (str) – first file to compare

  • file2 (str) – second file to compare

nettoolkit.compare_it.diff.get_string_diffs(difference_dict, header='', difference_dict_labels={})[source]

get the string difference from provided difference dictionary. Provide optional additional header or difference dictionary labels for additional informations.

Parameters:
  • difference_dict (dict) – difference dictionary with add/remove items.

  • header (str, optional) – main header. Defaults to “”.

  • difference_dict_labels (dict, optional) – item headers. Defaults to {}.

Returns:

returns differences in string format

Return type:

str

5.2. compare_config module

class nettoolkit.compare_it.compare_config.CompareConfig(file1, file2)[source]

Bases: object

get_config()[source]
get_differeces(on_screen_display=False)[source]
write_diff(file)[source]
nettoolkit.compare_it.compare_config.get_config_type(lines)[source]
nettoolkit.compare_it.compare_config.get_configuration(file)[source]
nettoolkit.compare_it.compare_config.is_captureit_config(lines)[source]