CHANGES
1. SaltEventProcessor updated to use `datetime` module to add milliseconds to timestamps
2. Code refactoring, added `utils` folder to contain various functions for re-use across the code base
3. Updated `netmiko_send_commands`, `scrapli_send_commands`, `pyats_send_commands` and `napalm_send_commands` to use `cli_form_commands` utils function
4. Updated `netmiko_send_commands`, `scrapli_send_commands` to use `cli_send_command`s utils function
5. Code refactoring for `netmikko_send_config`, `scrapli_send_config`, `pyats_send_config`, `napalm_configure` using `cfg_form_commands` utils function
6. `http_call` task add `raise_fo_status` to requests response object to raise if experienced any errors
7. TabulateFormatter changed to honor `headers` argument for `terse and brief` `tabulate` argument values
8. For connections task changed the way how task name formed to make it more human readable and informative
9. `connections` task `conn_list` changed `connection_type` to `connection_plugin`, also plugin name extracted instead of <class xyz>
10. SaltEventProcessor no merges identity dictionary as is with events data, meaning can add any information into idenity dictionary and that will be emited on saltevent bus
11. Updated RetryRunner to handle multiple connections establishment for custom tasks `CONNECTION_NAME` variable or `connection_name` task parameter - can specify comma separated string to list connections to establish
BUGS
1. Fixed issue 2 bug by making sure to pop `connection_name` from task arguments within QueueRunner
2. Fixed docs spelling using pylint spelling check plugin (pyenchant) and sphinxcontrib-spelling RST plugin
3. Discovered issue in `scrapli-netconf` with determining if request failed, adjusted logic in `scrapli_netconf_call` task to account for it, raised [scrapli-netconf github issue]( https://github.com/scrapli/nornir_scrapli/issues/108)
FEATURES
1. Added utils `MakePlugin` function to emit boilerplate code for task and custom test function plugins.
2. Added `repeat, stop_patern, return_last` and `repeat_interval` support to `netmiko_send_commands` and `scrapli_send_commands plugins` to run commands certain amount of times
3. Added `conn_open` function to `connections` task plugin
4. Added to `ncclient_call` and `scrapli_netconf_call` tasks support for glob pattern `capab_filter` for `server_apabilities` function
5. Added RetryRunner task parameters - `run_connect_retry`, `run_task_retry`, `run_creds_retry`, `run_num_workers`, `run_num_connectors` to influence task execution logic on a per-task basis
6. Added support for `creds_retry` option to RetryRunner to specify a list of credentials to try connecting to devices.
7. Added FFun `FH` filter to filter by hostname values using glob patterns, similar to `FB` but for host's hostname parameter