securecrt_tools.utilities¶
- 
securecrt_tools.utilities.expand_number_range(num_string)¶
- A function that will accept a text number range (such as 1,3,5-7) and convert it into a list of integers such as [1, 3, 5, 6, 7] - Parameters: - num_string – <str> A string that is in the format of a number range (e.g. 1,3,5-7) - Returns: - <list> A list of all integers in that range (e.g. [1,3,5,6,7]) 
- 
securecrt_tools.utilities.extract_system_name(device_id, strip_list=[])¶
- In the CDP output some systems return a Hostname(Serial Number) format, while others return Serial(Hostname) output. This function tries to extract the system name from the CDP output and ignore the serial number. - Parameters: - device_id – The device_id as learned from CDP.
- strip_list – A list of strings that should be removed from the hostname, if found
 - Returns: 
- 
securecrt_tools.utilities.human_sort_key(s)¶
- A key function to sort alpha-numerically, not by string - From http://nedbatchelder.com/blog/200712/human_sorting.html This function can be used as the key for a sort algorithm to give it an understanding of numbers, i.e. [a1, a2, a10], instead of the default (ASCII) sorting, i.e. [a1, a10, a2]. - Parameters: - s – - Returns: 
- 
securecrt_tools.utilities.list_of_dicts_to_csv(data, filename, header, add_header=True)¶
- Parameters: - data –
- filename –
- header –
 - Returns: 
- 
securecrt_tools.utilities.list_of_lists_to_csv(data, filename)¶
- Takes a list of lists and writes it to a csv file. - This function takes a list of lists, such as: - [ [“IP”, “Desc”], [“1.1.1.1”, “Vlan 1”], [“2.2.2.2”, “Vlan 2”] ] - and writes it into a CSV file with the filename supplied. Each sub-list in the outer list will be written as a row. If you want a header row, it must be the first sub-list in the outer list. - Parameters: - data – <2d-list> A list of lists data structure (one row per line of the CSV)
- filename – <str> The output filename for the CSV file, that will be placed in the ‘save path’ directory under the global settings.
 
- 
securecrt_tools.utilities.long_int_name(short_name)¶
- This function expands a short interface name to the full name - Parameters: - short_name – The input string (short interface name) - Returns: - The shortened interface name 
- 
securecrt_tools.utilities.normalize_protocol(raw_protocol)¶
- A function to normalize protocol names between IOS and NXOS. For example, IOS uses ‘C’ and NXOS uses ‘direct” for connected routes. This function will return ‘connected’ in both cases. - Parameters: - raw_protocol – <str> The protocol value found in the route table output - Returns: - A normalized name for that type of route. 
- 
securecrt_tools.utilities.path_safe_name(input_string)¶
- This function will remove or replace characters in the input string so that the output is suitable to be used as a file or directory name. - Parameters: - input_string (str) – The string that should be converted into a filename safe version. - Returns: - The filename safe version of the input string 
- 
securecrt_tools.utilities.remove_empty_or_invalid_file(l_filename)¶
- Check if file is empty or if we captured an error in the command. If so, delete the file. - Parameters: - l_filename – Name of file to check 
- 
securecrt_tools.utilities.short_int_name(long_name)¶
- This function shortens the interface name for easier reading - Parameters: - long_name – The input string (long interface name) - Returns: - The shortened interface name 
- 
securecrt_tools.utilities.textfsm_parse_to_dict(input_data, template_filename)¶
- Use TextFSM to parse the input text (from a command output) against the specified TextFSM template. Convert each list from the output to a dictionary, where each key in the TextFSM Value name from the template file. - Parameters: - input_data – Path to the input file that TextFSM will parse.
- template_filename – Path to the template file that will be used to parse the above data.
 - Returns: - A list, with each entry being a dictionary that maps TextFSM variable name to corresponding value. 
- 
securecrt_tools.utilities.textfsm_parse_to_list(input_data, template_name, add_header=False)¶
- Use TextFSM to parse the input text (from a command output) against the specified TextFSM template. Use the default TextFSM output which is a list, with each entry of the list being a list with the values parsed. Use add_header=True if the header row with value names should be prepended to the start of the list. - Parameters: - input_data – Path to the input file that TextFSM will parse.
- template_name – Path to the template file that will be used to parse the above data.
- add_header – When True, will return a header row in the list. This is useful for directly outputting to CSV.
 - Returns: - The TextFSM output (A list with each entry being a list of values parsed from the input)