Skip to content

Latest commit

 

History

History
695 lines (469 loc) · 24.8 KB

CHANGELOG.rst

File metadata and controls

695 lines (469 loc) · 24.8 KB

Ansible Netcommon Collection Release Notes

Topics

  • ansible.netcommon.persistent - Connection local is marked deprecated and all dependent collections are advised to move to a proper connection plugin, complete support of connection local will be removed in a release after 01-01-2027.
  • Updated the error message for the content_templates parser to include the correct parser name and detailed error information.
  • Add a simple regexp match example for multiple prompt with multiple answers. This example could be used to for restarting a network device with a delay.

Starting from this release, the minimum ansible-core version this collection requires is 2.15.0. The last known version compatible with ansible-core<2.15 is v6.1.3.

  • Bumping requires_ansible to >=2.15.0, since previous ansible-core versions are EoL now.
  • Fix get api call during scp with libssh.
  • Handle sftp error messages for file not present for routerOS.
  • libssh - net_put and net_get fail when the destination file intended to be fetched is not present.
  • The v6.1.2 release introduced a change in cliconfbase's edit_config() signature which broke many platform cliconfs. This patch release reverts that change.
  • Fixed module name and log consistency in parse_cli_textfsm filter doc.
  • Added guidance for users to open an issue for the respective platform if plugin support is needed.
  • Improved module execution to gracefully handle cases where plugin support is required, providing a clear error message to the user.
  • Add new module cli_restore that exclusively handles restoring of backup configuration to target applaince.
  • libssh connection plugin - stop using deprecated PlayContext.verbosity property that is no longer present in ansible-core 2.18 (ansible-collections#626).
  • network_cli - removed deprecated play_context.verbosity property.
  • cli_restore - Restore device configuration to network devices over network_cli

Starting from this release, the minimum ansible-core version this collection requires is 2.14.0. That last known version compatible with ansible-core<2.14 is v5.3.0.

  • Bumping requires_ansible to >=2.14.0, since previous ansible-core versions are EoL now.
  • Add new module cli_backup that exclusively handles configuration backup.
  • Fix attribute types from string to str in filter plugins.
  • Add a new cliconf plugin default that can be used when no cliconf plugin is found for a given network_os. This plugin only supports get(). (ansible-collections#569)
  • httpapi - Add additional option ca_path, client_cert, client_key, and http_agent that are available in open_url but not to httpapi. (ansible-collections#528)
  • telnet - add crlf option to send CRLF instead of just LF (ansible-collections#440).
  • libssh - the ssh_*_args options are now marked that they will be removed after 2026-01-01.
  • default - General purpose cliconf plugin for new platforms
  • network_resource - do not append network_os to module names when building supported resources list. This fix is only valid for cases where FACTS_RESOURCE_SUBSETS is undefined.
  • libssh - add config_file option to specify an alternate SSH config file to use.
  • parse_cli - add support for multiple matches inside a block by adding new dictionary key to result
  • telnet - add stdout and stdout_lines to module output.
  • telnet - add support for regexes to login_prompt and password_prompt.
  • telnet - apply timeout to command prompts.
  • httpapi - send() method no longer applied leftover kwargs to open_url(). Fix applies those arguments as intended (ansible-collections#524).
  • network_cli - network cli connection avoids traceback when using invalid user
  • network_cli - when receiving longer responses with libssh, parts of the response were sometimes repeated. The response is now returned as it is received (ansible-collections/community.routeros#132).
  • network_resource - fix a potential UnboundLocalError if the module fails to import a Resource Module. (ansible-collections#513)
  • restconf - creation of new resources is no longer erroneously forced to use POST. (ansible-collections#502)
  • httpapi - Add option netcommon_httpapi_ciphers to allow overriding default SSL/TLS ciphers. (ansible-collections#494)
  • NetworkConnectionBase now inherits from PersistentConnectionBase in ansible.utils. As a result, the minimum ansible.utils version has increased to 2.7.0.
  • NetworkTemplate is no longer importable from ansible_collections.ansible.netcommon.plugins.module_utils.network.common and should now be found at its proper location ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.network_template
  • ResourceModule is no longer importable from ansible_collections.ansible.netcommon.plugins.module_utils.network.common and should now be found at its proper location ansible_collections.ansible.netcommon.plugins.module_utils.network.common.rm_base.resource_module
  • VALID_MASKS, is_masklen, is_netmask, to_bits, to_ipv6_network, to_masklen, to_netmask, and to_subnet are no longer importable from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils and should now be found at their proper location ansible.module_utils.common.network
  • cli_parse - This plugin was moved to ansible.utils in version 1.0.0, and the redirect to that collection has now been removed.
  • Cast AnsibleUnsafeText to str in convert_doc_to_ansible_module_kwargs() to keep CSafeLoader happy. This fixes issues with content scaffolding tools.
  • Add implementation for content_templates_parser.
  • restconf_get - fix direction of XML deserialization when output == 'xml'
  • napalm - Removed unused connection plugin.
  • net_banner - Use <network_os>_banner instead.
  • net_interface - Use <network_os>_interfaces instead.
  • net_l2_interface - Use <network_os>_l2_interfaces instead.
  • net_l3_interface - Use <network_os>_l3_interfaces instead.
  • net_linkagg - Use <network_os>_lag_interfaces instead.
  • net_lldp - Use <network_os>_lldp_global instead.
  • net_lldp_interface - Use <network_os>_lldp_interfaces instead.
  • net_logging - Use <network_os>_logging_global instead.
  • net_static_route - Use <network_os>_static_routes instead.
  • net_system - Use <network_os>_system instead.
  • net_user - Use <network_os>_user instead.
  • net_vlan - Use <network_os>_vlans instead.
  • net_vrf - Use <network_os>_vrf instead.

The v3.1.2 is unavailable on Ansible Automation Hub because a technical issue. Please download and use v3.1.3 from Automation Hub.

  • libssh - check for minimum ansible-pylibssh version before using password_prompt option. (ansible-collections#467)
  • Fix a small number of potential use-before-assignment issues.
  • Fix to set connection plugin options correctly.
  • libssh - Removed the wording "Tech preview". From version 3.0.0 the default if installed.
  • libssh - add ssh_args, ssh_common_args, and ssh_extra_args options. These options are exclusively for collecting proxy information from as an alternative to the proxy_command option.
  • Add grpc connection plugin support.
  • Adds a new option terminal_errors in network_cli, that determines how terminal setting failures are handled.
  • libssh - Added password_prompt option to override default "password:" prompt used by pylibssh
  • grpc - Provides a persistent connection using the gRPC protocol
  • grpc_config - Fetch configuration/state data from gRPC enabled target hosts.
  • grpc_get - Fetch configuration/state data from gRPC enabled target hosts.
  • httpapi - Fix for improperly set hostname in url
  • libssh - Fix for improperly set hostname in connect
  • restconf - When non-JSON data is encountered, return the bytes found instead of nothing.
  • cli_parse - this module has been moved to the ansible.utils collection. ansible.netcommon.cli_parse will continue to work to reference the module in its new location, but this redirect will be removed in a future release
  • network_cli - Change default value of ssh_type option from paramiko to auto. This value will use libssh if the ansible-pylibssh module is installed, otherwise will fallback to paramiko.
  • httpapi - Change default value of import_modules option from no to yes
  • netconf - Change default value of import_modules option from no to yes
  • network_cli - Change default value of import_modules option from no to yes
  • eos - When using eos modules on Ansible 2.9, tasks will occasionally fail with import_modules enabled. This can be avoided by setting import_modules: no

Rereleased 2.6.0 with updated utils dependancy.

  • Fix validate-module sanity test.
  • Redirected ipaddr filters to ansible.utils (ansible-collections#359).
  • httpapi - new parameter retries in send() method limits the number of times a request is retried when a HTTP error that can be worked around is encountered. The default is to retry indefinitely to maintain old behavior, but this default may change in a later breaking release.
  • Fix issue with cli_parse native_parser plugin when input is empty (ansible-collections#347).
  • No activity on the transport's channel was triggering a socket.timeout() after 30 secs, even if persistent_command_timeout is set to a higher value. This patch fixes it.
  • Fixed plugins inheriting from netcommon's base plugins (for example httpapi/restconf or netconf/default) so that they can be properly loaded (ansible-collections#356).
  • Copied the cliconf, httpapi, netconf, and terminal base plugins and NetworkConnectionBase into netcommon. These base plugins may now be imported from netcommmon instead of ansible if a collection depends on netcommon versions newer than this version, allowing features and bugfixes to flow to those collections without upgrading ansible.
  • Make ansible_network_os as optional param for httpapi connection plugin.
  • Support removal of non-config lines from running config while taking backup.
  • network_cli - added new option 'become_errors' to determine how privilege escalation failures are handled.
  • network_cli - Provide clearer error message when a prompt regex fails to compile
  • network_cli - fix issue when multiple terminal_initial_(prompt|answer) values are given (ansible-collections#331).
  • Add network_resource plugin to manage and provide single entry point for all resource modules for higher oder roles.
  • network_cli - The paramiko_ssh setting look_for_keys was set automatically based on the values of the password and private_key_file options passed to network_cli. This option can now be set explicitly, and the automatic setting of look_for_keys will be removed after 2024-01-01 (ansible-collections#271).
  • network_cli - Add ability to set options inherited from paramiko/libssh in ansible >= 2.11 (ansible-collections#271).
  • network_resource - Manage resource modules
  • Add vlan_expander filter
  • Persistent connection options (persistent_command_timeout, persistent_log_messages, etc.) have been unified across all persistent connections. New persistent connections may also now get these options by extending the connection_persistent documentation fragment.
  • Add variable to control ProxyCommand with libssh connection.
  • NetworkTemplate and ResouceModule base classes have been moved under module_utils.network.common.rm_base. Stubs have been kept for backwards compatibility. These will be removed after 2023-01-01. Please update imports for existing modules that subclass them. The cli_rm_builder has been updated to use the new imports.
  • libssh - Fix fromatting of authenticity error message when not prompting for input (ansible-collections#283)
  • netconf - Fix connection with ncclient versions < 0.6.10
  • network_cli - Fix for execution failing when ansible_ssh_password is used to specify password (ansible-collections#288)
  • Add support for ProxyCommand with netconf connection.
  • Variables in play_context will now be updated for netconf connections on each task run.
  • fix SCP/SFTP when using network_cli with libssh
  • Fix cli_parse issue with parsers in utils collection (ansible-collections#270)
  • Support single_user_mode with Ansible 2.9.
  • Several module_utils files were intended to be licensed BSD, but missing a license preamble in the files. The preamble has been added, and all authors for the files have given their assent to the intended license ansible-collections#122
  • Allow setting host_key_checking through a play/task var for network_cli.
  • Ensure passed-in terminal_initial_prompt and terminal_initial_answer values are cast to bytes before using
  • Update valid documentation for net_ping module.
  • ncclient - catch and handle exception to prevent stack trace when running in FIPS mode
  • net_put - Remove temp file created when file already exist on destination when mode is 'text'.
  • Remove deprecated connection arguments from netconf_config
  • Add SCP support when using ssh_type libssh
  • Add single_user_mode option for command output caching.
  • Move cli_config idempotent warning message with the task response under warnings key if changed is True
  • Reduce CPU usage and network module run time when using ansible_network_import_modules
  • Support any() and all() filters in Jinja2.
  • Expose connection class object to rm_template (ansible-collections#180)
  • network_cli - When using ssh_type libssh, handle closed connection gracefully instead of throwing an exception
  • memory - RAM backed, non persistent cache.
  • Add 'purged' to ACTION_STATES.

Change how black config is specified to avoid issues with Automation Hub release process

  • 'prefix' added to NetworkTemplate class, inorder to handle the negate operation for vyos config commands.
  • Add support for json format input format for netconf modules using xmltodict
  • Update docs for netconf_get and netconf_config examples using display=native
  • Added support for private key based authentication with libssh transport (ansible-collections#168)
  • Fixed ipaddr filter plugins in ansible.netcommon collections is not working with latest Ansible (ansible-collections#157)
  • Fixed netconf_rpc task fails due to encoding issue in the response (ansible-collections#151)
  • Fixed ssh_type none issue while using net_put and net_get module (ansible-collections#153)
  • Fixed unit tests under python3.5
  • ipaddr filter - query "address/prefix" (also: "gateway", "gw", "host/prefix", "hostnet", and "router") now handles addresses with /32 prefix or /255.255.255.255 netmask
  • network_cli - Update underlying ssh connection's play_context in update_play_context, so that the username or password can be updated
  • Confirmed commit fails with TypeError in IOS XR netconf plugin (ansible-collections/cisco.iosxr#74)
  • The netconf_config module now allows root tag with namespace prefix.
  • cli_config: Add new return value diff which is returned when the cliconf plugin supports onbox diff
  • cli_config: Clarify when commands is returned when the module is run
  • cli_parse - Ensure only native types are returned to the control node from the parser.
  • netconf - Changed log level for message of using default netconf plugin to match the level used when a platform-specific netconf plugin is found
  • Fixed "Object of type Capabilities is not JSON serializable" when using default netconf plugin.
  • Added description to collection galaxy.yml file.
  • NetworkConfig objects now have an optional comment_tokens parameter which takes a list of strings which will override the DEFAULT_COMMENT_TOKENS list.
  • New cli_parse module for parsing structured text using a variety of parsers. The initial implemetation of cli_parse can be used with json, native, ntc_templates, pyats, textfsm, ttp, and xml.
  • The httpapi connection plugin now works with wait_for_connection. This will periodically request the root page of the server described by the plugin's options until the request succeeds. This can only test that the server is reachable, the correctness or usability of the API is not guaranteed.
  • cli_config fixes issue when rollback_id = 0 evalutes to False
  • sort_list will sort a list of dicts using the sorted method with key as an argument.

Rereleased 1.1.1 with updated changelog.

Rereleased 1.1.0 with regenerated documentation.

  • Add content option validation for netconf_config module (ansible-collections#66)
  • Documentation of module arguments updated to match expected types where missing.
  • Resource Modules: changed flag is set to true in check_mode for all ACTION_STATES (ansible-collections#82)
  • module_utils.network.common.utils.ComplexDict has been removed
  • Replace deprecated getiterator call with iter
  • ipaddr - "host" query supports /31 subnets properly
  • ipaddr filter - Fixed issue where the first IPv6 address in a subnet was not being considered a valid address.
  • ipaddr filter now returns empty list instead of False on empty list input
  • net_put - Restore missing function removed when action plugin stopped inheriting NetworkActionBase
  • nthhost filter now returns str instead of IPAddress object
  • slaac filter now returns str instead of IPAddress object
  • enable - Switch to elevated permissions on a network device
  • httpapi - Use httpapi to run command on network appliances
  • netconf - Provides a persistent connection using the netconf protocol
  • network_cli - Use network_cli to run command on network appliances
  • persistent - Use a persistent unix socket for connection
  • restconf - HttpApi Plugin for devices supporting Restconf API
  • default - Use default netconf plugin to run standard netconf commands as per RFC
  • cli_command - Run a cli command on cli-based network devices
  • cli_config - Push text based configuration to network devices over network_cli
  • net_get - Copy a file from a network device to Ansible Controller
  • net_ping - Tests reachability using ping from a network device
  • net_put - Copy a file from Ansible Controller to a network device
  • netconf_config - netconf device configuration
  • netconf_get - Fetch configuration/state data from NETCONF enabled network devices.
  • netconf_rpc - Execute operations on NETCONF enabled network devices.
  • restconf_config - Handles create, update, read and delete of configuration data on RESTCONF enabled devices.
  • restconf_get - Fetch configuration/state data from RESTCONF enabled devices.
  • telnet - Executes a low-down and dirty telnet command