ancestor: null
releases:
  1.0.0:
    modules:
    - description: Run a cli command on cli-based network devices
      name: cli_command
      namespace: ''
    - description: Push text based configuration to network devices over network_cli
      name: cli_config
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage multiline banners
        on network devices
      name: net_banner
      namespace: ''
    - description: Copy a file from a network device to Ansible Controller
      name: net_get
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage Interface on network
        devices
      name: net_interface
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage Layer-2 interface
        on network devices
      name: net_l2_interface
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage L3 interfaces on
        network devices
      name: net_l3_interface
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage link aggregation
        groups on network devices
      name: net_linkagg
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage LLDP service configuration
        on network devices
      name: net_lldp
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage LLDP interfaces configuration
        on network devices
      name: net_lldp_interface
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage logging on network
        devices
      name: net_logging
      namespace: ''
    - description: Tests reachability using ping from a network device
      name: net_ping
      namespace: ''
    - description: Copy a file from Ansible Controller to a network device
      name: net_put
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage static IP routes
        on network appliances (routers, switches et. al.)
      name: net_static_route
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage the system attributes
        on network devices
      name: net_system
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage the aggregate of
        local users on network device
      name: net_user
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage VLANs on network
        devices
      name: net_vlan
      namespace: ''
    - description: (deprecated, removed after 2022-06-01) Manage VRFs on network devices
      name: net_vrf
      namespace: ''
    - description: netconf device configuration
      name: netconf_config
      namespace: ''
    - description: Fetch configuration/state data from NETCONF enabled network devices.
      name: netconf_get
      namespace: ''
    - description: Execute operations on NETCONF enabled network devices.
      name: netconf_rpc
      namespace: ''
    - description: Handles create, update, read and delete of configuration data on
        RESTCONF enabled devices.
      name: restconf_config
      namespace: ''
    - description: Fetch configuration/state data from RESTCONF enabled devices.
      name: restconf_get
      namespace: ''
    - description: Executes a low-down and dirty telnet command
      name: telnet
      namespace: ''
    plugins:
      become:
      - description: Switch to elevated permissions on a network device
        name: enable
        namespace: null
      connection:
      - description: Use httpapi to run command on network appliances
        name: httpapi
        namespace: null
      - description: Provides persistent connection using NAPALM
        name: napalm
        namespace: null
      - description: Provides a persistent connection using the netconf protocol
        name: netconf
        namespace: null
      - description: Use network_cli to run command on network appliances
        name: network_cli
        namespace: null
      - description: Use a persistent unix socket for connection
        name: persistent
        namespace: null
      httpapi:
      - description: HttpApi Plugin for devices supporting Restconf API
        name: restconf
        namespace: null
      netconf:
      - description: Use default netconf plugin to run standard netconf commands as
          per RFC
        name: default
        namespace: null
    release_date: '2020-06-23'
  1.1.0:
    changes:
      bugfixes:
      - 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
      major_changes:
      - Add libssh connection plugin and refactor network_cli (https://github.com/ansible-collections/ansible.netcommon/pull/30)
      minor_changes:
      - Add content option validation for netconf_config module (https://github.com/ansible-collections/ansible.netcommon/pull/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
        (https://github.com/ansible-collections/ansible.netcommon/pull/82)'
      removed_features:
      - module_utils.network.common.utils.ComplexDict has been removed
    fragments:
    - 103-net-put-handle-src.yaml
    - 30-add-libssh-connection-support.yaml
    - 34-ipaddr-empty-list.yaml
    - 66-netconf-config-vaildation.yml
    - 72-ipv6-first-address-fix.yaml
    - 74-remove-getiterator.yaml
    - 75-unit-tests.yaml
    - 78-sanity-cleanup.yaml
    - 82-changed_true_action_states_check_mode_yes.yml
    - 95-ipaddr.yaml
    release_date: '2020-07-30'
  1.1.1:
    changes:
      release_summary: Rereleased 1.1.0 with regenerated documentation.
    fragments:
    - 1.1.1.yaml
    release_date: '2020-07-31'
  1.1.2:
    changes:
      release_summary: Rereleased 1.1.1 with updated changelog.
    fragments:
    - 1.1.2.yaml
    release_date: '2020-08-06'
  1.2.0:
    changes:
      bugfixes:
      - 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.
      minor_changes:
      - 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.
    fragments:
    - 105-wait_for_conn-httpapi.yaml
    - 109-cli_parse_module_addition.yaml
    - 110-NetworkConfig-comments.yaml
    - 114-sort_list_listofdicts.yaml
    - 118-cli_config.yaml
    - 127-galaxy-fragment.yaml
    modules:
    - description: Parse cli output or text using a variety of parsers
      name: cli_parse
      namespace: ''
    release_date: '2020-08-25'
  1.2.1:
    changes:
      bugfixes:
      - Fixed "Object of type Capabilities is not JSON serializable" when using default
        netconf plugin.
    fragments:
    - netconf-capabilites-fix.yaml
    release_date: '2020-09-04'
  1.3.0:
    changes:
      bugfixes:
      - 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
      minor_changes:
      - Confirmed commit fails with TypeError in IOS XR netconf plugin (https://github.com/ansible-collections/cisco.iosxr/issues/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'
    fragments:
    - 134-cli-config-diff.yaml
    - allow_root_tag_with_prefix.yaml
    - cli_parse_fix.yaml
    - iosxr_netconf_config_commit_testcase.yaml
    - netconf-default.yaml
    release_date: '2020-09-29'
  1.4.0:
    changes:
      bugfixes:
      - Added support for private key based authentication with libssh transport (https://github.com/ansible-collections/ansible.netcommon/issues/168)
      - Fixed ipaddr filter plugins in ansible.netcommon collections is not working
        with latest Ansible (https://github.com/ansible-collections/ansible.netcommon/issues/157)
      - Fixed netconf_rpc task fails due to encoding issue in the response (https://github.com/ansible-collections/ansible.netcommon/issues/151)
      - Fixed ssh_type none issue while using net_put and net_get module (https://github.com/ansible-collections/ansible.netcommon/issues/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
      minor_changes:
      - '''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
    fragments:
    - 135-network-cli-change-password.yaml
    - 144-test-fixes.yaml
    - 151-netconf_rpc_fix.yaml
    - 153-part1-fix_ssh_type_none_issue.yaml
    - 157-ipaddr-fix.yaml
    - 168-libssh-privatekey-support.yaml
    - ipaddr-host-prefix-32.yaml
    - negate-command-vyos.yaml
    - netconf_get_config_doc_updates.yaml
    - netconf_xmltodict_support.yaml
    release_date: '2020-10-29'
  1.4.1:
    changes:
      release_summary: Change how black config is specified to avoid issues with Automation
        Hub release process
    fragments:
    - revert_pyproject.yaml
    release_date: '2020-10-29'
  1.5.0:
    changes:
      bugfixes:
      - Add netconf_config integration tests for nxos (https://github.com/ansible-collections/ansible.netcommon/pull/185)
      - Fix GetReply object has no attribute strip() (https://github.com/ansible-collections/cisco.iosxr/issues/97)
      - Fix config diff logic if parent configuration is present more than once in
        the candidate config and update docs (https://github.com/ansible-collections/ansible.netcommon/pull/189)
      - Fix missing changed from net_get (https://github.com/ansible-collections/ansible.netcommon/issues/198)
      - Fix netconf_config module integration test issuea (https://github.com/ansible-collections/ansible.netcommon/pull/177)
      - Fix restconf_config incorrectly spoofs HTTP 409 codes (https://github.com/ansible-collections/ansible.netcommon/issues/191)
      - Split checks for prompt and errors in network_cli so that detected errors
        are not lost if the prompt is in a later chunk.
      minor_changes:
      - Add 'purged' to ACTION_STATES.
    fragments:
    - 177_netconf_config_test_issue.yaml
    - 189_config_diff_fix.yaml
    - 191_restconf_config_fix.yaml
    - 198_net_get_missing_changed.yaml
    - 97_getReplyobject_has_no_attribute_strip_issue.yaml
    - add_purged_action_state.yaml
    - error-independently.yaml
    - netconf_nxos_tests.yaml
    release_date: '2021-01-27'
  2.0.0:
    changes:
      breaking_changes:
      - Removed vendored ipaddress package from collection. If you use ansible_collections.ansible.netcommon.plugins.module_utils.compat.ipaddress
        in your collection, you will need to change this to import ipaddress instead.
        If your content using ipaddress supports Python 2.7, you will additionally
        need to make sure that the user has the ipaddress package installed. Please
        refer to https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_best_practices.html#importing-and-using-shared-code
        to see how to safely import external packages that may be missing from the
        user's system A backport of ipaddress for Python 2.7 is available at https://pypi.org/project/ipaddress/
      bugfixes:
      - Expose connection class object to rm_template (https://github.com/ansible-collections/ansible.netcommon/pull/180)
      - network_cli - When using ssh_type libssh, handle closed connection gracefully
        instead of throwing an exception
      deprecated_features:
      - Deprecate cli_parse module and textfsm, ttp, xml, json parser plugins as they
        are moved to ansible.utils collection (https://github.com/ansible-collections/ansible.netcommon/pull/182
        https://github.com/ansible-collections/ansible.utils/pull/28)
      major_changes:
      - Remove deprecated connection arguments from netconf_config
      minor_changes:
      - 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.
    fragments:
    - 180_RMbase_engine.yaml
    - 182-cli_parse_deprecate.yaml
    - 212-update-documentation.yaml
    - 213-docs-updates.yaml
    - 217-pylibssh-conn-closed.yaml
    - 226-libssh-scp.yaml
    - 93-remove-ipaddress.yaml
    - ansible_network_direct_execution.yaml
    - config_module_warning_msg.yaml
    - remove-netconf_config-args.yaml
    - support_caching.yaml
    - support_custom_filters.yaml
    - update_requires_ansible.yaml
    - yamllint.yaml
    plugins:
      cache:
      - description: RAM backed, non persistent cache.
        name: memory
        namespace: null
    release_date: '2021-03-01'
  2.0.1:
    changes:
      bugfixes:
      - 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'.
      minor_changes:
      - 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 https://github.com/ansible-collections/ansible.netcommon/pull/122
    fragments:
    - 100-bugfix-net-ping-docs.yaml
    - 122-add-license.yaml
    - 220-initial-prompt-bytes.yaml
    - 227-remove_tests_sanity_requirements.yml
    - 231-unit-tests.yaml
    - 235-fix-net-put-issue.yaml
    - 240-document-libssh-requirement.yaml
    - fips-ncclient-import-error.yaml
    - new_action_state.yaml
    - no_log_fix.yaml
    - set_host_key_checking.yaml
    release_date: '2021-03-30'
  2.0.2:
    changes:
      bugfixes:
      - Fix cli_parse issue with parsers in utils collection (https://github.com/ansible-collections/ansible.netcommon/pull/270)
      - Support single_user_mode with Ansible 2.9.
    fragments:
    - 254-add_ignore_txt.yml
    - cli_parse_fix.yaml
    - single_user_mode.yaml
    release_date: '2021-04-28'
