Skip to content

Commit 5f3b1bf

Browse files
authored
Add Ansible 12.0.0a3 porting guide. (#2613)
1 parent 8af3fcc commit 5f3b1bf

File tree

1 file changed

+164
-1
lines changed

1 file changed

+164
-1
lines changed

docs/docsite/rst/porting_guides/porting_guide_12.rst

Lines changed: 164 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,29 @@ Values formerly represented by that type will now appear as a tagged ``str`` ins
646646
Special handling in plugins is no longer required to access the contents of these values.
647647

648648

649+
No implicit conversion of non-string dict keys
650+
----------------------------------------------
651+
652+
In previous versions, ``ansible-core`` relied on Python's ``json.dumps`` to implicitly convert ``int``, ``float``, ``bool`` and ``None`` dictionary keys to strings in various scenarios, including returning of module results.
653+
For example, a module was allowed to contain the following code:
654+
655+
.. code-block:: python
656+
657+
oid = 123
658+
d = {oid: "value"}
659+
module.exit_json(return_value=d)
660+
661+
Starting with this release, modules must explicitly convert any non-string keys to strings (for example, by using the ``str()`` Python function) before passing dictionaries to the ``AnsibleModule.exit_json()`` method of ``ansible-core``. The above code must be changed as follows:
662+
663+
.. code-block:: python
664+
665+
oid = 123
666+
d = {str(oid): "value"}
667+
module.exit_json(return_value=d)
668+
669+
If you encounter ``"[ERROR]: Task failed: Module failed: Key of type '<NON-STRING>' is not JSON serializable by the 'module_legacy_m2c' profile.``, it indicates that the module that is used in the task does not perform the required key conversion.
670+
671+
649672
Command Line
650673
============
651674

@@ -661,7 +684,16 @@ No notable changes
661684
Modules
662685
=======
663686

664-
No notable changes
687+
* With the changes to the templating system it is no longer possible to use the ``async_status`` module's ``started`` and ``finished`` integer properties as values in conditionals as booleans are required. It is recommended to use ``started`` and ``finished`` test plugins instead, for example:
688+
689+
.. code-block:: yaml+jinja
690+
691+
- async_status:
692+
jid: '{{ registered_task_result.ansible_job_id }}'
693+
register: job_result
694+
until: job_result is finished
695+
retries: 5
696+
delay: 10
665697

666698

667699
Modules removed
@@ -741,6 +773,137 @@ Networking
741773

742774
No notable changes
743775

776+
Porting Guide for v12.0.0a3
777+
===========================
778+
779+
Known Issues
780+
------------
781+
782+
dellemc.openmanage
783+
~~~~~~~~~~~~~~~~~~
784+
785+
- idrac_diagnostics - Issue(285322) - This module doesn't support export of diagnostics file to HTTP and HTTPS share via SOCKS proxy.
786+
- idrac_firmware - Issue(279282) - This module does not support firmware update using HTTP, HTTPS, and FTP shares with authentication on iDRAC8.
787+
- ome_smart_fabric_uplink - Issue(186024) - The module supported by OpenManage Enterprise Modular, however it does not allow the creation of multiple uplinks of the same name. If an uplink is created using the same name as an existing uplink, then the existing uplink is modified.
788+
789+
Breaking Changes
790+
----------------
791+
792+
vmware.vmware
793+
~~~~~~~~~~~~~
794+
795+
- drop support for ansible 2.15 since it is EOL https://github.com/ansible-collections/vmware.vmware/issues/103
796+
- updated minimum pyVmomi version to 8.0.3.0.1 https://github.com/ansible-collections/vmware.vmware/issues/56
797+
798+
Major Changes
799+
-------------
800+
801+
community.postgresql
802+
~~~~~~~~~~~~~~~~~~~~
803+
804+
- the collection does not test against Python 2 and starts accepting content written in Python 3 since collection version 4.0.0 (https://github.com/ansible-collections/community.postgresql/issues/829).
805+
806+
dellemc.openmanage
807+
~~~~~~~~~~~~~~~~~~
808+
809+
- idrac_gather_facts - This role is enhanced to support iDRAC10.
810+
- idrac_lifecycle_controller_job_status_info - This module is enhanced to support iDRAC10.
811+
- idrac_system_info - This module is enhanced to support iDRAC10.
812+
813+
vmware.vmware
814+
~~~~~~~~~~~~~
815+
816+
- cluster modules - Add identifying information about the cluster managed to the output of cluster modules
817+
- folder_paths - Throw an error when a relative folder path is provided and the datacenter name is not provided
818+
- module_utils/argument_spec - make argument specs public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
819+
- module_utils/clients - make client utils public so other collections can use them https://github.com/ansible-collections/vmware.vmware/issues/144
820+
- update query file to include cluster module queries
821+
822+
Removed Features
823+
----------------
824+
825+
ansible.windows
826+
~~~~~~~~~~~~~~~
827+
828+
- win_domain - Removed deprecated module, use ``microsoft.ad.domain`` instead
829+
- win_domain_controller - Removed deprecated module, use ``microsoft.ad.domain_controller`` instead
830+
- win_domain_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
831+
- win_feature - Removed deprecated return value ``restart_needed`` in ``feature_result``, use ``reboot_required`` instead
832+
- win_updates - Removed deprecated return value ``filtered_reason``, use ``filtered_reasons`` instead
833+
834+
community.postgresql
835+
~~~~~~~~~~~~~~~~~~~~
836+
837+
- postgresql_info - the db alias has been removed in ``community.postgresql 4.0.0``. Please use the ``login_db`` option instead (https://github.com/ansible-collections/community.postgresql/issues/801).
838+
- postgresql_lang - the module has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_ext`` module instead (https://github.com/ansible-collections/community.postgresql/issues/561).
839+
- postgresql_privs - the ``password`` argument has been removed in ``community.postgresql 4.0.0``. Use the ``login_password`` argument instead (https://github.com/ansible-collections/community.postgresql/issues/408).
840+
- postgresql_user - the ``priv`` argument has been removed in ``community.postgresql 4.0.0``. Please use the ``community.postgresql.postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/493).
841+
842+
community.windows
843+
~~~~~~~~~~~~~~~~~
844+
845+
- win_domain_computer - Removed deprecated module, use ``microsoft.ad.computer`` instead
846+
- win_domain_group - Removed deprecated module, use ``microsoft.ad.group`` instead
847+
- win_domain_group_membership - Removed deprecated module, use ``microsoft.ad.membership`` instead
848+
- win_domain_object_info - Removed deprecated module, use ``microsoft.ad.object_info`` instead
849+
- win_domain_ou - Removed deprecated module, use ``microsoft.ad.ou`` instead
850+
- win_domain_user - Removed deprecated module, use ``microsoft.ad.user`` instead
851+
- win_lineinfile - Removed deprecated return value ``backup``, use ``backup_file`` instead
852+
- win_xml - Removed deprecated, and undocumented, return value ``backup``, use ``backup_file`` instead
853+
854+
vmware.vmware
855+
~~~~~~~~~~~~~
856+
857+
- vm_list_group_by_clusters - Tombstone module in favor of vmware.vmware.vm_list_group_by_clusters_info
858+
859+
Deprecated Features
860+
-------------------
861+
862+
Ansible-core
863+
~~~~~~~~~~~~
864+
865+
- Passing a ``warnings` or ``deprecations`` key to ``exit_json`` or ``fail_json`` is deprecated. Use ``AnsibleModule.warn`` or ``AnsibleModule.deprecate`` instead.
866+
- plugins - Accessing plugins with ``_``-prefixed filenames without the ``_`` prefix is deprecated.
867+
868+
community.postgresql
869+
~~~~~~~~~~~~~~~~~~~~
870+
871+
- postgresql modules = the ``login``, ``unix_socket`` and ``host`` aliases are deprecated and will be removed in ``community.postgresql 5.0.0``, use the ``login_user``, ``login_unix_socket`` and ``login_host`` arguments instead.
872+
- postgresql_set - the module has been deprecated and will be removed in ``community.postgresql 5.0.0``. Please use the ``community.postgresql.postgresql_alter_system`` module instead (https://github.com/ansible-collections/community.postgresql/issues/823).
873+
874+
community.windows
875+
~~~~~~~~~~~~~~~~~
876+
877+
- win_audit_policy_system - Deprecated module and will be redirected to ``ansible.windows.win_audit_policy_system``. Use ``ansible.windows.win_audit_policy_system`` instead as the redirection will be removed in 4.0.0
878+
- win_audit_rule - Deprecated module and will be redirected to ``ansible.windows.win_audit_rule``. Use ``ansible.windows.win_audit_rule`` instead as the redirection will be removed in 4.0.0
879+
- win_auto_logon - Deprecated module and will be redirected to ``ansible.windows.win_auto_logon``. Use ``ansible.windows.win_auto_logon`` instead as the redirection will be removed in 4.0.0
880+
- win_certificate_info - Deprecated module and will be redirected to ``ansible.windows.win_certificate_info``. Use ``ansible.windows.win_certificate_info`` instead as the redirection will be removed in 4.0.0
881+
- win_computer_description - Deprecated module and will be redirected to ``ansible.windows.win_computer_description``. Use ``ansible.windows.win_computer_description`` instead as the redirection will be removed in 4.0.0
882+
- win_credential - Deprecated module and will be redirected to ``ansible.windows.win_credential``. Use ``ansible.windows.win_credential`` instead as the redirection will be removed in 4.0.0
883+
- win_dhcp_lease - Deprecated module and will be redirected to ``ansible.windows.win_dhcp_lease``. Use ``ansible.windows.win_dhcp_lease`` instead as the redirection will be removed in 4.0.0
884+
- win_dns_record - Deprecated module and will be redirected to ``ansible.windows.win_dns_record``. Use ``ansible.windows.win_dns_record`` instead as the redirection will be removed in 4.0.0
885+
- win_dns_zone - Deprecated module and will be redirected to ``ansible.windows.win_dns_zone``. Use ``ansible.windows.win_dns_zone`` instead as the redirection will be removed in 4.0.0
886+
- win_eventlog - Deprecated module and will be redirected to ``ansible.windows.win_eventlog``. Use ``ansible.windows.win_eventlog`` instead as the redirection will be removed in 4.0.0
887+
- win_feature_info - Deprecated module and will be redirected to ``ansible.windows.win_feature_info``. Use ``ansible.windows.win_feature_info`` instead as the redirection will be removed in 4.0.0
888+
- win_file_compression - Deprecated module and will be redirected to ``ansible.windows.win_file_compression``. Use ``ansible.windows.win_file_compression`` instead as the redirection will be removed in 4.0.0
889+
- win_firewall - Deprecated module and will be redirected to ``ansible.windows.win_firewall``. Use ``ansible.windows.win_firewall`` instead as the redirection will be removed in 4.0.0
890+
- win_hosts - Deprecated module and will be redirected to ``ansible.windows.win_hosts``. Use ``ansible.windows.win_hosts`` instead as the redirection will be removed in 4.0.0
891+
- win_hotfix - Deprecated module and will be redirected to ``ansible.windows.win_hotfix``. Use ``ansible.windows.win_hotfix`` instead as the redirection will be removed in 4.0.0
892+
- win_http_proxy - Deprecated module and will be redirected to ``ansible.windows.win_http_proxy``. Use ``ansible.windows.win_http_proxy`` instead as the redirection will be removed in 4.0.0
893+
- win_iis_virtualdirectory - Deprecated module, use ``microsoft.iis.virtual_directory`` instead as the module will be removed in 4.0.0
894+
- win_iis_webapplication - Deprecated module, use ``microsoft.iis.web_application`` instead instead as the module will be removed in 4.0.0
895+
- win_iis_webapppool - Deprecated module, use ``microsoft.iis.web_app_pool`` instead instead as the module will be removed in 4.0.0
896+
- win_iis_webbinding - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
897+
- win_iis_website - Deprecated module, use ``microsoft.iis.website`` instead instead as the module will be removed in 4.0.0
898+
- win_inet_proxy - Deprecated module and will be redirected to ``ansible.windows.win_inet_proxy``. Use ``ansible.windows.win_inet_proxy`` instead as the redirection will be removed in 4.0.0
899+
- win_listen_ports_facts - Deprecated module and will be redirected to ``ansible.windows.win_listen_ports_facts``. Use ``ansible.windows.win_listen_ports_facts`` instead as the redirection will be removed in 4.0.0
900+
- win_mapped_drive - Deprecated module and will be redirected to ``ansible.windows.win_mapped_drive``. Use ``ansible.windows.win_mapped_drive`` instead as the redirection will be removed in 4.0.0
901+
- win_product_facts - Deprecated module and will be redirected to ``ansible.windows.win_product_facts``. Use ``ansible.windows.win_product_facts`` instead as the redirection will be removed in 4.0.0
902+
- win_region - Deprecated module and will be redirected to ``ansible.windows.win_region``. Use ``ansible.windows.win_region`` instead as the redirection will be removed in 4.0.0
903+
- win_route - Deprecated module and will be redirected to ``ansible.windows.win_route``. Use ``ansible.windows.win_route`` instead as the redirection will be removed in 4.0.0
904+
- win_timezone - Deprecated module and will be redirected to ``ansible.windows.win_timezone``. Use ``ansible.windows.win_timezone`` instead as the redirection will be removed in 4.0.0
905+
- win_user_profile - Deprecated module and will be redirected to ``ansible.windows.win_user_profile``. Use ``ansible.windows.win_user_profile`` instead as the redirection will be removed in 4.0.0
906+
744907
Porting Guide for v12.0.0a2
745908
===========================
746909

0 commit comments

Comments
 (0)