- jenkins_plugin - fix plugin always updated even if already uptodate (https://github.com/ansible/ansible/pull/40645)
- ec2_asg - wait for lifecycle hooks to complete (https://github.com/ansible/ansible/issues/37281)
- edgeos_config - check for a corresponding set command when issuing delete commands to ensure the desired state is met (https://github.com/ansible/ansible/issues/40437)
- iptables - use suboptions to properly join tcp_flags options (https://github.com/ansible/ansible/issues/36490)
- known_hosts - add better checking and error reporting to the host field (https://github.com/ansible/ansible/pull/38307)
- Fix legacy Nexus 3k integration test and module issues (https://github.com/ansible/ansible/pull/40322).
- Skip N35 and N3L platforms for nxos_evpn_global test (https://github.com/ansible/ansible/pull/40333).
- Add normalize_interface in module_utils and fix nxos_l3_interface module (https://github.com/ansible/ansible/pull/40598).
- Fix nxos_interface Disable switchport for loopback/svi (https://github.com/ansible/ansible/pull/40314).
- fixes bug with matching nxos prompts (https://github.com/ansible/ansible/pull/40655).
- fix nxos_vrf and migrate get_interface_type to module_utils (https://github.com/ansible/ansible/pull/40825).
- pause - ensure ctrl+c interrupt works in all cases (https://github.com/ansible/ansible/issues/35372)
- user - With python 3.6 spwd.getspnam returns PermissionError instead of KeyError if user does not have privileges (https://github.com/ansible/ansible/issues/39472)
- synchronize - Ensure the local connection created by synchronize uses _remote_is_local=True, which causes ActionBase to build a local tmpdir (https://github.com/ansible/ansible/pull/40833)
- win_get_url - fixed issue when authenticating when force=yes https://github.com/ansible/ansible/pull/40641
- winrm - allow `ansible_user` or `ansible_winrm_user` to override `ansible_ssh_user` when both are defined in an inventory - https://github.com/ansible/ansible/issues/39844
- winrm - Add better error handling when the kinit process fails
- xenserver_facts - ensure module works with newer versions of XenServer (https://github.com/ansible/ansible/pull/35821)
- openstack.os_stack - extend failure message with the server response (https://github.com/ansible/ansible/pull/39660).
- vmware_guest - typecast VLAN ID to match various conditions. (https://github.com/ansible/ansible/pull/39793)
- vmware_guest - Do not update cpu/memory allocation in configspec if there is no change (https://github.com/ansible/ansible/pull/39865)
- Fix unset 'ansible_virtualization_role' fact while setting virtualization facts for real hardware.
- loop_control - update template vars for loop_control fields on each loop iteration (https://github.com/ansible/ansible/pull/39818).
- template - Fix for encoding issues when a template path contains non-ascii characters and using the template path in ansible_managed (https://github.com/ansible/ansible/issues/27262)
- apt - Auto install of python-apt without recommends (https://github.com/ansible/ansible/pull/37121)
- apt - Mark installed packages manual (https://github.com/ansible/ansible/pull/37751)
- async - Ensure that the implicit async_status gets the env from a task with async (https://github.com/ansible/ansible/pull/39764)
- Fallback to instance role STS credentials if none are explicitly provided for the aws_ec2 inventory plugin
- Support tag values as hostnames in aws_ec2 inventory plugin
- Fix regression in aws_s3 to allow uploading files on the remote host to an S3 bucket
- ec2_vpc_route_table - fix regression by skipping routes without DestinationCidrBlock (https://github.com/ansible/ansible/pull/37010)
- Use custom waiters
- Add integration tests for check mode
- Fix non-monotonic AWS behavior by waiting until attributes are the correct value before returning the subnet
- Don't use custom waiter configs for older versions of botocore
- Fix an encoding issue when parsing the examples from a plugins' documentation
- Fix misuse of self in module_utils/network/eos/eos.py (https://github.com/ansible/ansible/pull/39074)
- eos_vlan - Fix eos_vlan associated interface name check (https://github.com/ansible/ansible/pull/39661)
- file module - Fix error when running a task which assures a symlink to a nonexistent file exists for the second and subsequent times (https://github.com/ansible/ansible/issues/39558)
- file module - Fix error when recursively assigning permissions and a symlink to a nonexistent file is present in the directory tree (https://github.com/ansible/ansible/issues/39456)
- file - Eliminate an error if we're asked to remove a file but something removes it while we are processing the request (https://github.com/ansible/ansible/pull/39466)
- Fix interfaces_file to support `allow-` https://github.com/ansible/ansible/pull/37847
- ios cliconf plugin fix regex for version (https://github.com/ansible/ansible/pull/40066)
- ios_config - If defaults is enabled append default flag to command (https://github.com/ansible/ansible/pull/39741)
- ios_config - Fix ios get_config to fetch config without defaults (https://github.com/ansible/ansible/pull/39475)
- ios_iosxr_terminal - fixed issue with ios and iosxr terminal prompt regex
- template action plugin - fix the encoding of filenames to avoid tracebacks on Python2 when characters that are not present in the user's locale are present. (https://github.com/ansible/ansible/pull/39424)
- ufw - "route" has to be the first option in ufw command https://github.com/ansible/ansible/pull/31756
- user - only change the expiration time when necessary (https://github.com/ansible/ansible/issues/13235)
- vdirect_file - deal with invalid upload source (https://github.com/ansible/ansible/pull/37461)
- win_file - fix issue where special chars like [ and ] were not being handled correctly https://github.com/ansible/ansible/pull/37901
- win_get_url - fixed a few bugs around authentication and force no when using an FTP URL
- win_template - fix when specifying the dest option as a directory with and without the trailing slash https://github.com/ansible/ansible/issues/39886
- win_updates - Fix typo that hid the download error when a download failed
- win_updates - Fix logic when using a whitelist for multiple updates
- windows become - Show better error messages when the become process fails
- copy - fixed copy to only follow symlinks for files in the non-recursive case
- file - fixed the default follow behaviour of file to be true
- docker modules - Error with useful message is both docker and docker-py are found to both be installed (https://github.com/ansible/ansible/pull/38884)
- dynamic includes - Improved performance by fixing re-parenting on copy (https://github.com/ansible/ansible/pull/38747)
- dynamic includes - Fix IncludedFile comparison for free strategy (https://github.com/ansible/ansible/pull/37083)
- dynamic includes - Allow inheriting attributes from static parents (https://github.com/ansible/ansible/pull/38827)
- Fix ios and iosxr terminal prompt regex (https://github.com/ansible/ansible/pull/39063)
- set_fact/include_vars - allow incremental update for vars in loop (https://github.com/ansible/ansible/pull/38302)
- cloudfront_distribution - support missing protocol versions (https://github.com/ansible/ansible/pull/38990)
- slice filter - removed Ansible-provided impl in favor of Jinja builtin (https://github.com/ansible/ansible/pull/37944)
- ovirt_host_networks - fix removing of network attachments (https://github.com/ansible/ansible/pull/38816)
- ovirt_disk - support removing unmanaged networks (https://github.com/ansible/ansible/pull/38726)
- ovirt_disk - FCP storage domains don't have to have target (https://github.com/ansible/ansible/pull/38882)
- Ansible.ModuleUtils.FileUtil - support using Test-AnsiblePath with non file system providers (https://github.com/ansible/ansible/pull/39200)
- win_get_url - Compare the UTC time of the web file to the local UTC time (https://github.com/ansible/ansible/pull/39152)
- EOS can not check configuration without use of config session (ANSIBLE_EOS_USE_SESSIONS=0). Fix is to throw error when hiting into this exception case. Configs would neither be checked nor be played on the eos device.
- Adds exception handling which is raised when user does not have correct set of permissions/privileges to read virtual machine facts.
- onyx_pfc_interface - Add support for changes in pfc output in onyx 3.6.6000 https://github.com/ansible/ansible/pull/37651
- Fix mlag summary json parsing for onyx version 3.6.6000 and above https://github.com/ansible/ansible/pull/38191
- Update documentation related to datacenter in vmware_guest_find module. Mark datacenter as optional.
- Set default network type as 'dhcp' if user has not specified any.
- nmcli change default value of autoconnect
- azure_rm_image - Allow Azure images to be created with tags, bug was introduced in Ansible v2.5.0
- edgeos_command - add action plugin to backup config (https://github.com/ansible/ansible/pull/37619)
- eos_vlan - fixed eos_vlan not working when having more than 6 interfaces (https://github.com/ansible/ansible/pull/38347)
- Various grafana_* modules - Port away from the deprecated b64encodestring function to the b64encode function instead. (https://github.com/ansible/ansible/pull/38388)
- Fix traceback when creating or stopping ovirt vms (https://github.com/ansible/ansible/pull/37249)
- Fix for consul_kv idempotence on Python3 https://github.com/ansible/ansible/issues/35893
- Fix csvfile lookup plugin when used on Python3 https://github.com/ansible/ansible/pull/37625
- ec2 - Fix ec2 user_data parameter to properly convert to base64 on python3 (https://github.com/ansible/ansible/pull/37628)
- Fix to send and receive bytes over a socket in the haproxy module which was causing tracebacks on Python3 https://github.com/ansible/ansible/pull/35176
- win_environment - Fix for issue where the environment value was deleted when a null value or empty string was set - https://github.com/ansible/ansible/issues/40450
- Ansible.ModuleUtils.FileUtil - Catch DirectoryNotFoundException with Test-AnsiblePath (https://github.com/ansible/ansible/pull/37968)
- win_exec_wrapper - support loading of Windows modules different different line endings than the core modules (https://github.com/ansible/ansible/pull/37291)
- win_reboot - fix deprecated warning message to show version in correct spot (https://github.com/ansible/ansible/pull/37898)
- win_regedit - wait for garbage collection to finish before trying to unload the hive in case handles didn't unload in time (https://github.com/ansible/ansible/pull/38912)
- win_service - Fix bug with win_service not being able to handle special chars like '[' (https://github.com/ansible/ansible/pull/37897)
- win_setup - Use connection name for network interfaces as interface name isn't helpful (https://github.com/ansible/ansible/pull/37327)
- win_setup - fix bug where getting the machine SID would take a long time in large domain environments (https://github.com/ansible/ansible/pull/38646)
- win_updates - handle if the module fails to load and return the error message (https://github.com/ansible/ansible/pull/38363)
- win_uri - do not override existing header when using the ``headers`` key. (https://github.com/ansible/ansible/pull/37845)
- win_uri - convert status code values to an int before validating them in server response (https://github.com/ansible/ansible/pull/38080)
- windows - display UTF-8 characters correctly in Windows return json (https://github.com/ansible/ansible/pull/37229)
- winrm - when managing Kerberos tickets in Ansible, get a forwardable ticket if delegation is set (https://github.com/ansible/ansible/pull/37815)
* Created new connection plugins ``network_cli`` and ``netconf`` to replace ``connection=local``. ``connection=local`` will continue to work for a number of Ansible releases.
* No more ``unable to open shell``. A clear and descriptive message will be displayed in normal ansible-playbook output without needing to enable debug mode
* Loads of documentation, see `Ansible for Network Automation Documentation <http://docs.ansible.com/ansible/2.5/network/>`_.
* Refactor common network shared code into package under ``module_utils/network/``
* Filters: Add a filter to convert XML response from a network device to JSON object.
- New simpler and more intuitive 'loop' keyword for task loops. The ``with_<lookup>`` loops will likely be deprecated in the near future and eventually removed.
- Apstra's ``aos_*`` modules are deprecated as they do not work with AOS 2.1 or higher. See new modules at `https://github.com/apstra <https://github.com/apstra>`_.
- azure_rm modules - updated with internal changes to use API profiles and kwargs for future Azure Stack support and better stability between SDK updates. (https://github.com/ansible/ansible/pull/35538)
- lineinfile - fixed regexp used with insert(before|after) inserting duplicate lines (https://github.com/ansible/ansible/pull/36156)
- Connection error messages may contain characters that jinja2 would interpret as a template. Wrap the error string so this doesn't happen (https://github.com/ansible/ansible/pull/37329)
- setup.py - Ensure we install ansible-config and ansible-inventory with `pip install -e` (https://github.com/ansible/ansible/pull/37151)
- Fix for ansible_*_interpreter on Python3 when using non-newstyle modules. Those include old-style ansible modules and Ansible modules written in non-python scripting languages (https://github.com/ansible/ansible/pull/36541)
- Fix bytes/text handling in maven_artifact that was causing tracebacks on Python3
- znode - fixed a bug calling the zookeeper API under Python3 https://github.com/ansible/ansible/pull/36999
- Fix for unarchive when users use the --strip-components extra_opt to tar causing ansible to set permissions on the wrong directory. (https://github.com/ansible/ansible/pull/37048)