-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add 'state' parameter for alternatives #4557
Add 'state' parameter for alternatives #4557
Conversation
Allow alternatives to be installed without being set as the current selection.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution!
changelogs/fragments/4557-alternatives-add-activate-parameter.yml
Outdated
Show resolved
Hide resolved
changelogs/fragments/4557-alternatives-add-activate-parameter.yml
Outdated
Show resolved
Hide resolved
Co-authored-by: Felix Fontein <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks sensible to me. How about adding a test for the new functionality (see tests/integration/targets/alternatives/tasks/)?
@felixfontein good idea, I'll take a look at doing that. |
The manpage has this for the query format:
Perhaps |
Yes, that's great, I've changed it to |
Hmm, maybe it shouldn't be a boolean parameter, but a parameter After all, if you call this module with ( |
I'm OK with the boolean parameter; because of how Having said that, I don't feel too strongly, so I'm open to this change if you feel it's needed. |
Good points, if This might be beyond the scope of this issue but in the future having |
But Ansible is about ensuring state, not so much about doing actions. If
Sure. |
OK, I like the idea of |
To preserve the current behavior of this module, I would put |
In general, we do not break backwards compatibility if possible, and if we do we deprecate the old behavior and try to show deprecation warnings for a longer time before actually changing the behvaior. So if |
(See also #582 for our policy on deprecation and breaking changes.) |
The test
The test
The test
The test
The test
The test
The test
The test
The test
The test
|
Well, I updated the code to use the |
I can't seem to make the integration tests work locally unless I use the default test image. Is this the right invocation for testing with CentOS 7?
With this one, I get an "unreachable" error, like it's having trouble SSH-ing to the container:
I've tried some other images and combinations of options with the |
Yes, that's correct. The problem you are experiencing is very likely caused by systemd. It's running inside the container and needs some files mounted to work, but that is a hack that mostly only works when you are using the 'correct' systemd version on the host system. It hasn't been working for me for quite some time - at least with Docker. Since ansible-core 2.12 ansible-test can also use podman instead of Docker, and with that it works for me. (Interestingly, on GHA in another project, it turned out that podman doesn't work, but Docker does... it's fun ;-) ) If you set the environment variable |
1 similar comment
Yes, that's correct. The problem you are experiencing is very likely caused by systemd. It's running inside the container and needs some files mounted to work, but that is a hack that mostly only works when you are using the 'correct' systemd version on the host system. It hasn't been working for me for quite some time - at least with Docker. Since ansible-core 2.12 ansible-test can also use podman instead of Docker, and with that it works for me. (Interestingly, on GHA in another project, it turned out that podman doesn't work, but Docker does... it's fun ;-) ) If you set the environment variable |
(Looks like |
state: | ||
description: | ||
- C(present) - install the alternative (if not already installed), but do | ||
not set it as the currently selected alternative for the group. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe to clarify:
not set it as the currently selected alternative for the group. | |
not set it as the currently selected alternative for the group. If it already | |
is the selected alternative for the group, it will not change that. |
I was able to fix it by adding - name: remove links
file:
path: '{{ item }}'
state: absent
with_items:
+ - "{{ alternatives_dir }}/dummy"
- /etc/alternatives/dummy
- /usr/bin/dummy |
@@ -70,6 +87,15 @@ | |||
from ansible.module_utils.basic import AnsibleModule | |||
|
|||
|
|||
class AlternativeState: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit of a nit-picking but I think both terms in the name should be plural:
- the name of the module is "alternatives" so we should be consistent
- within this class we have more than one state, so it should be "states". Line 109
choices=AlternativeState.to_list()
sounds quite odd - to me at least.
Also I think we might want to consider prefixing that class name with a _
, so that it doesn't become a public symbol. By being public, any change we make later on will require a long deprecation period.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are many arguments for and against using a plural vs. a singular name for an enumeration. Java and C# seem to prefer singular names (https://stackoverflow.com/a/15756009). I guess in the end it's a matter of taste.
Also I think we might want to consider prefixing that class name with a
_
, so that it doesn't become a public symbol. By being public, any change we make later on will require a long deprecation period.
I wouldn't consider modules (as opposed to module_utils etc.) a public API. The guidelines only talk about public/private module and plugin utils. Maybe we should discuss this in community-topics...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough. I reckon this is not a show stopper.
) | ||
changed = True | ||
|
||
except subprocess.CalledProcessError as cpe: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this not covered by check_rc=True
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, actually subprocess.CalledProcessError
should never leave module.run_command()
. The module has been catching it before, I guess both the old catch
and the new one can be removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That can also be done later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Backport to stable-4: 💚 backport PR created✅ Backport PR branch: Backported as #4576 🤖 @patchback |
* Add 'activate' parameter for alternatives Allow alternatives to be installed without being set as the current selection. * add changelog fragment * Apply suggestions from code review Co-authored-by: Felix Fontein <[email protected]> * rename 'activate' -> 'selected' * rework 'selected' parameter -> 'state' * handle unsetting of currently selected alternative * add integration tests for 'state' parameter * fix linting issues * fix for Python 2.7 compatibility * Remove alternatives file. Co-authored-by: Felix Fontein <[email protected]> (cherry picked from commit 29c49fe)
@tprestegard thanks for your contribution! If anyone wants to implement the improvements in a follow-up PR, they're welcome to do so :) |
* Add 'activate' parameter for alternatives Allow alternatives to be installed without being set as the current selection. * add changelog fragment * Apply suggestions from code review Co-authored-by: Felix Fontein <[email protected]> * rename 'activate' -> 'selected' * rework 'selected' parameter -> 'state' * handle unsetting of currently selected alternative * add integration tests for 'state' parameter * fix linting issues * fix for Python 2.7 compatibility * Remove alternatives file. Co-authored-by: Felix Fontein <[email protected]> (cherry picked from commit 29c49fe) Co-authored-by: Tanner Prestegard <[email protected]>
@felixfontein thanks for guiding a new contributor through this process, I hope to be able to contribute more going forward. And, thanks for sorting out the issue with the tests! |
v5.7.1 Minor Changes ------------- - The version of fortinet.fortios has been rolled back to 2.1.4 (from 2.1.5) to address a syntax error pending a new release of the collection v5.7.0 Major Changes ------------- community.postgresql ~~~~~~~~~~~~~~~~~~~~ - postgresql_user - the ``priv`` argument has been deprecated and will be removed in ``community.postgresql 3.0.0``. Please use the ``postgresql_privs`` module to grant/revoke privileges instead (ansible-collections/community.postgresql#212). fortinet.fortios ~~~~~~~~~~~~~~~~ - Support FortiOS 7.0.2, 7.0.3, 7.0.4, 7.0.5. Minor Changes ------------- ansible.utils ~~~~~~~~~~~~~ - 'consolidate' filter plugin added. cloud.common ~~~~~~~~~~~~ - Move the content of README_ansible_turbo.module.rst in the main README.md to get visibility on Ansible Galaxy. community.dns ~~~~~~~~~~~~~ - Prepare collection for inclusion in an Execution Environment by declaring its dependencies (ansible-collections/community.dns#93). community.docker ~~~~~~~~~~~~~~~~ - Prepare collection for inclusion in an Execution Environment by declaring its dependencies. The ``docker_stack*`` modules are not supported (ansible-collections/community.docker#336). - current_container_facts - add detection for GitHub Actions (ansible-collections/community.docker#336). - docker_container - support returning Docker container log output when using Docker's ``local`` logging driver, an optimized local logging driver introduced in Docker 18.09 (ansible-collections/community.docker#337). community.general ~~~~~~~~~~~~~~~~~ - alternatives - add ``state`` parameter, which provides control over whether the alternative should be set as the active selection for its alternatives group (ansible-collections/community.general#4543, ansible-collections/community.general#4557). - atomic_container - minor refactoring (ansible-collections/community.general#4567). - clc_alert_policy - minor refactoring (ansible-collections/community.general#4556). - clc_group - minor refactoring (ansible-collections/community.general#4556). - clc_loadbalancer - minor refactoring (ansible-collections/community.general#4556). - clc_server - minor refactoring (ansible-collections/community.general#4556). - cmd_runner module util - reusable command runner with consistent argument formatting and sensible defaults (ansible-collections/community.general#4476). - datadog_monitor - support new datadog event monitor of type `event-v2 alert` (ansible-collections/community.general#4457) - filesystem - add support for resizing btrfs (ansible-collections/community.general#4465). - lxd_container - adds ``project`` option to allow selecting project for LXD instance (ansible-collections/community.general#4479). - lxd_profile - adds ``project`` option to allow selecting project for LXD profile (ansible-collections/community.general#4479). - nmap inventory plugin - add ``sudo`` option in plugin in order to execute ``sudo nmap`` so that ``nmap`` runs with elevated privileges (ansible-collections/community.general#4506). - nomad_job - minor refactoring (ansible-collections/community.general#4567). - nomad_job_info - minor refactoring (ansible-collections/community.general#4567). - packet_device - minor refactoring (ansible-collections/community.general#4567). - packet_sshkey - minor refactoring (ansible-collections/community.general#4567). - packet_volume - minor refactoring (ansible-collections/community.general#4567). - profitbricks - minor refactoring (ansible-collections/community.general#4567). - proxmox - minor refactoring (ansible-collections/community.general#4567). - proxmox inventory plugin - add token authentication as an alternative to username/password (ansible-collections/community.general#4540). - proxmox inventory plugin - parse LXC configs returned by the proxmox API (ansible-collections/community.general#4472). - proxmox_snap - add restore snapshot option (ansible-collections/community.general#4377). - proxmox_snap - fixed timeout value to correctly reflect time in seconds. The timeout was off by one second (ansible-collections/community.general#4377). - redfish_command - add ``IndicatorLedOn``, ``IndicatorLedOff``, and ``IndicatorLedBlink`` commands to the Systems category for controling system LEDs (ansible-collections/community.general#4084). - seport - minor refactoring (ansible-collections/community.general#4471). - smartos_image_info - minor refactoring (ansible-collections/community.general#4567). - terraform - adds ``terraform_upgrade`` parameter which allows ``terraform init`` to satisfy new provider constraints in an existing Terraform project (ansible-collections/community.general#4333). - udm_group - minor refactoring (ansible-collections/community.general#4556). - udm_share - minor refactoring (ansible-collections/community.general#4556). - vmadm - minor refactoring (ansible-collections/community.general#4567). - webfaction_app - minor refactoring (ansible-collections/community.general#4567). - webfaction_db - minor refactoring (ansible-collections/community.general#4567). - xfconf - added missing value types ``char``, ``uchar``, ``int64`` and ``uint64`` (ansible-collections/community.general#4534). community.grafana ~~~~~~~~~~~~~~~~~ - Remove requirement for `ds_type` and `ds_url` parameters when deleting a datasource - add `grafana` action group in `meta/runtime.yml` to support for module group defaults - refactor grafana_notification_channel module community.hrobot ~~~~~~~~~~~~~~~~ - Prepare collection for inclusion in an Execution Environment by declaring its dependencies (ansible-collections/community.hrobot#45). community.zabbix ~~~~~~~~~~~~~~~~ - all modules - prepare for deprecation of distutils LooseVersion. - collection - Add dependencies to other collections. This helps Ansible Galaxy automatically downloading collections that this collection relies on to run. - connection.httpapi (plugin) - add initial httpapi connection plugin. - httpapi.jsonrpc (plugin) - add initial httpapi for future handling of json-rpc. - new module zabbix authentication for configuring global authentication settings in Zabbix Server's Settings section of GUI. - new module zabbix_autoregister for configuring global autoregistration settings in Zabbix Server's Settings section of GUI. - new module zabbix_housekeeping for configuring global housekeeping settings in Zabbix Server's Settings section of GUI. - test_zabbix_host_info - fix Template/Group names for 5.4 - test_zabbix_screen - disable testing for screen in 5.4 (deprecated) - zabbix_action - additional fixes to make module work with Zabbix 6.0 (ansible-collections/community.zabbix#664) - zabbix_action - module ported to work with Zabbix 6.0 (ansible-collections/community.zabbix#648, ansible-collections/community.zabbix#653) - zabbix_agent - Check if 'firewalld' exist and is running when handler is executed. - zabbix_agent - Install the correct Python libxml2 package on SLES15 - zabbix_agent - Move inclusion of the apache.yml tasks to later stage during execution of role. - zabbix_agent - Prepare for Zabbix 6.0. - zabbix_agent - Specify a minor version with zabbix_agent_version_minor for RH systems. - zabbix_agent - There was no way to configure a specific type for the macro. - zabbix_agent - Use multiple aliases in the configuration file with ``zabbix_agent_zabbix_alias`` or ``zabbix_agent2_zabbix_alias``. - zabbix_maintenance - added new module parameter `tags`, which allows configuring Problem Tags on maintenances. - zabbix_proxy - Prepare for Zabbix 6.0. - zabbix_proxy - Specify a minor version with zabbix_proxy_version_minor for RH systems. - zabbix_proxy - Support for Sangoma and treat it like a RHEL system. - zabbix_server - Check the 'zabbix_server_install_database_client' variable in RedHat tasks. - zabbix_server - Prepare for Zabbix 6.0. - zabbix_server - Specify a minor version with zabbix_server_version_minor for RH systems. - zabbix_user - change alias property to username (changed in 5.4) (alias is now an alias for username) - zabbix_user_info - change alias property to username (changed in 5.4) (alias is now an alias for username) - zabbix_web - Change format ENCRYPTION, VERIFY_HOST from string to boolean. - zabbix_web - Specify a minor version with zabbix_web_version_minor for RH systems. f5networks.f5_modules ~~~~~~~~~~~~~~~~~~~~~ - bigip_device_info - add UCS creation date to the data gathered - bigip_virtual_server - add service_down_immediate_action parameter - bigiq_regkey_license - add addon_keys parameter to the module netapp.cloudmanager ~~~~~~~~~~~~~~~~~~~ - na_cloudmanager_connector_gcp - when using the user application default credential authentication by running the command gcloud auth application-default login, ``gcp_service_account_path`` is not needed. netapp.ontap ~~~~~~~~~~~~ - na_ontap_cluster_config role - use na_ontap_login_messages as na_ontap_motd is deprecated. - na_ontap_debug - report ansible version and ONTAP collection version. - na_ontap_efficiency_policy - Added REST support. - na_ontap_export_policy_rule - new option ``ntfs_unix_security`` for NTFS export UNIX security options added. - na_ontap_lun - Added REST support. - na_ontap_snapmirror -- Added more descriptive error messages for REST - na_ontap_snapshot_policy - Added REST support to the na_ontap_snapshot_policy module. - na_ontap_svm - add support for web services (ssl modify) - REST only with 9.8 or later. - na_ontap_volume - add support for SnapLock - only for REST. - na_ontap_volume - allow to modify volume after rename. - na_ontap_volume - new option ``max_files`` to increase the inode count value. - na_ontap_vserver_create role - support max_volumes option. netbox.netbox ~~~~~~~~~~~~~ - Add meta information for use in Execution Environments - Multiple modules - add new parameters added in NetBox 3.2 - nb_inventory - Add site_group as an option - netbox_front_port and netbox_rear_port - Add label as parameter sensu.sensu_go ~~~~~~~~~~~~~~ - Added support for ansible 2.13 - Removed support for CentOS 8 t_systems_mms.icinga_director ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Add icinga_serviceset module (https://github.com/T-Systems-MMS/ansible-collection-icinga-director/pull/163) - Test more ansible versions (https://github.com/T-Systems-MMS/ansible-collection-icinga-director/pull/162) Deprecated Features ------------------- community.general ~~~~~~~~~~~~~~~~~ - nmcli - deprecate default hairpin mode for a bridge. This so we can change it to ``false`` in community.general 7.0.0, as this is also the default in ``nmcli`` (ansible-collections/community.general#4334). - proxmox inventory plugin - the current default ``true`` of the ``want_proxmox_nodes_ansible_host`` option has been deprecated. The default will change to ``false`` in community.general 6.0.0. To keep the current behavior, explicitly set ``want_proxmox_nodes_ansible_host`` to ``true`` in your inventory configuration. We suggest to already switch to the new behavior by explicitly setting it to ``false``, and by using ``compose:`` to set ``ansible_host`` to the correct value. See the examples in the plugin documentation for details (ansible-collections/community.general#4466). Bugfixes -------- Ansible-core ~~~~~~~~~~~~ - Ansible.ModuleUtils.SID - Use user principal name as is for lookup in the ``Convert-ToSID`` function - ansible/ansible#77316 - Fix traceback when installing a collection from a git repository and git is not installed (ansible/ansible#77479). - ansible-test - Correctly detect when running as the ``root`` user (UID 0) on the origin host. The result of the detection was incorrectly being inverted. - ansible-test - Fix skipping of tests marked ``needs/python`` on the origin host. - ansible-test - Fix skipping of tests marked ``needs/root`` on the origin host. - ansible-test compile sanity test - do not crash if a column could not be determined for an error (ansible/ansible#77465). - hostname - use ``file_get_content()`` to read the file containing the host name in the ``FileStrategy.get_permanent_hostname()`` method. This prevents a ``TypeError`` from being raised when the strategy is used (ansible/ansible#77025). - script - skip in check mode since the plugin cannot determine if a change will occur. - shell/command - only skip in check mode if the options `creates` and `removes` are both None. - winrm - Ensure ``kinit`` is run with the same ``PATH`` env var as the Ansible process cloud.common ~~~~~~~~~~~~ - fix parameters with aliases not being passed through (ansible-collections/cloud.common#91). - fix turbo mode loading incorrect module (ansible-collections/cloud.common#102). - turbo - Ensure we don't call the module with duplicated aliased parameters. community.dns ~~~~~~~~~~~~~ - Update Public Suffix List. community.docker ~~~~~~~~~~~~~~~~ - docker connection plugin - make sure that ``docker_extra_args`` is used for querying the Docker version. Also ensures that the Docker version is only queried when needed. This is currently the case if a remote user is specified (ansible-collections/community.docker#325, ansible-collections/community.docker#327). community.general ~~~~~~~~~~~~~~~~~ - dnsmadeeasy - fix failure on deleting DNS entries when API response does not contain monitor value (ansible-collections/community.general#3620). - git_branch - remove deprecated and unnecessary branch ``unprotect`` method (ansible-collections/community.general#4496). - gitlab_group - improve searching for projects inside group on deletion (ansible-collections/community.general#4491). - gitlab_group_members - handle more than 20 groups when finding a group (ansible-collections/community.general#4491, ansible-collections/community.general#4460, ansible-collections/community.general#3729). - gitlab_hook - handle more than 20 hooks when finding a hook (ansible-collections/community.general#4491). - gitlab_project - handle more than 20 namespaces when finding a namespace (ansible-collections/community.general#4491). - gitlab_project_members - handle more than 20 projects and users when finding a project resp. user (ansible-collections/community.general#4491). - gitlab_user - handle more than 20 users and SSH keys when finding a user resp. SSH key (ansible-collections/community.general#4491). - keycloak - fix parameters types for ``defaultDefaultClientScopes`` and ``defaultOptionalClientScopes`` from list of dictionaries to list of strings (ansible-collections/community.general#4526). - opennebula inventory plugin - complete the implementation of ``constructable`` for opennebula inventory plugin. Now ``keyed_groups``, ``compose``, ``groups`` actually work (ansible-collections/community.general#4497). - pacman - fixed bug where ``absent`` state did not work for locally installed packages (ansible-collections/community.general#4464). - pritunl - fixed bug where pritunl plugin api add unneeded data in ``auth_string`` parameter (ansible-collections/community.general#4527). - proxmox inventory plugin - fix error when parsing container with LXC configs (ansible-collections/community.general#4472, ansible-collections/community.general#4472). - proxmox_kvm - fix a bug when getting a state of VM without name will fail (ansible-collections/community.general#4508). - xbps - fix error message that is reported when installing packages fails (ansible-collections/community.general#4438). community.hrobot ~~~~~~~~~~~~~~~~ - robot inventory plugin - do not crash if a server neither has name or primary IP set. Instead, fall back to using the server's number as the name. This can happen if unnamed rack reservations show up in your server list (ansible-collections/community.hrobot#40, ansible-collections/community.hrobot#47). community.postgresql ~~~~~~~~~~~~~~~~~~~~ - postgresql_db - get rid of the deprecated psycopg2 connection alias ``database`` in favor of ``dbname`` when psycopg2 is 2.7+ is used (ansible-collections/community.postgresql#194, ansible-collections/community.postgresql#196). community.proxysql ~~~~~~~~~~~~~~~~~~ - module_utils/mysql.py - Proxysql version suffix may not be an integer (ansible-collections/community.proxysql#96). community.zabbix ~~~~~~~~~~~~~~~~ - Various modules and plugins - use vendored version of ``distutils.version`` instead of the deprecated Python standard library ``distutils`` (ansible-collections/community.zabbix#603). - ZapiWrapper (module_utils) - fix only partial zabbix version is returned. - zabbix_agent - Install Zabbix packages when zabbix_repo == other is used with yum. - zabbix_agent - Install the Agent for MacOSX sooner than its configuration. - zabbix_agent - The ``Install gpg key`` task for Debian did not work when a http proxy is configured. - zabbix_agent - Use the correct URL with correct version. - zabbix_agent - Use the correct path to determine Zabbix Agent 2 installation on Windows. - zabbix_agent - Using the correct hostgroup as default now. - zabbix_agent - fix for the autopsk, incl. tests with Molecule. - zabbix_host - Added small notification that an user should have read access to get hostgroups overview. - zabbix_host - adapter changed properties for interface comparisson - zabbix_maintenance - should now work when creating maintenace on Zabbix 6.0 server - zabbix_proxy - 'zcat' the zipped sql files to /tmp before executing it. - zabbix_proxy - Check MySQL version before settings mysql_innodb_default_row_format value. - zabbix_proxy - Install Zabbix packages when zabbix_repo == other is used with yum. - zabbix_server - 'zcat' the zipped sql files to /tmp before executing it. - zabbix_server - Check MySQL version before settings mysql_innodb_default_row_format value. - zabbix_server - Install Zabbix packages when zabbix_repo == other is used with yum. - zabbix_template - setting correct null values to fix unintentional changes - zabbix_web - Added some default variables if the geerlingguys apache role is not used. - zabbix_web - Specified the correct versions for php. f5networks.f5_modules ~~~~~~~~~~~~~~~~~~~~~ - bigip_command - fixed a bug that interpreted a pipe symbol inside an input string as pipe used to combine commands - bigip_device_certificate - adds missing space to tmsh command - bigip_gtm_wide_ip - fixed inability to change persistence setting on existing wide ip objects fortinet.fortios ~~~~~~~~~~~~~~~~ - Fix issues in version mismatch logic. - Fix status issue in fortios_json_generic(). - Fix the issue of inconsistent data types in different schemas. netapp.cloudmanager ~~~~~~~~~~~~~~~~~~~ - Add check when volume is capacity tiered. - na_cloudmanager_connector_azure - Fix string formatting error when deleting the connector. netapp.ontap ~~~~~~~~~~~~ - Fixed ONTAP minor version ignored in checking minimum ONTAP version. - na_ontap_aggregate - Fixed error in delete aggregate if the ``disk_count`` is less than current disk count. - na_ontap_autosupport - Fixed `partner_address` not working in REST. - na_ontap_command - document that a READONLY user is not supported, even for show commands. - na_ontap_disk_options - ONTAP 9.10.1 returns on/off rather than True/False. - na_ontap_info - Fixes issue with na_ontap_info failing in 9.1 because of ``job-schedule-cluster``. - na_ontap_iscsi - Fixed issue with ``start_state`` always being set to stopped when creating an ISCSI. - na_ontap_iscsi - fixed error starting iscsi service on vserver where Service, adapter, or operation already started. - na_ontap_lun - Fixed KeyError on options ``force_resize``, ``force_remove`` and ``force_remove_fenced`` in Zapi. - na_ontap_lun - Fixed ``force_remove`` option silently ignored in REST. - na_ontap_lun_map - TypeError - '>' not supported between instances of 'int' and 'str '. - na_ontap_qtree - Fixed issue with ``oplocks`` not being changed during a modify in Zapi. - na_ontap_qtree - Fixed issue with ``oplocks`` not warning user about not being supported in REST - na_ontap_snapmirror - Added use_rest condition for the REST support to work when use_rest `always`. - na_ontap_snapshot - add error message if volume is not found with REST. - na_ontap_snapshot - fix key error on volume when using REST. - na_ontap_snapshot_policy - Do not validate parameter when state is ``absent`` and fix KeyError on ``comment``. - na_ontap_svm - fixed KeyError issue on protocols when vserver is stopped. - na_ontap_volume - do not attempt to mount volume if current state is offline. - na_ontap_volume - fix idempotency issue with compression settings when using REST. - na_ontap_vserver_peer - Added cluster peer accept code in REST. - na_ontap_vserver_peer - Fixed AttributeError if ``dest_hostname`` or ``peer_options`` not present. - na_ontap_vserver_peer - Fixed ``local_name_for_peer`` and ``local_name_for_source`` options silently ignored in REST. - na_ontap_vserver_peer - Get peer cluster name if remote peer exist else use local cluster name. - na_ontap_vserver_peer - ignore job entry doesn't exist error with REST to bypass ONTAP issue with FSx. - na_ontap_vserver_peer - report error if SVM peer does not see a peering relationship after create. netbox.netbox ~~~~~~~~~~~~~ - netbox_contact_group - Fix field description - netbox_rack - Add location as a query parameter for uniqueness check New Plugins ----------- Connection ~~~~~~~~~~ - community.zabbix.httpapi - Use httpapi to run command on network appliances Httpapi ~~~~~~~ - community.zabbix.jsonrpc - HttpApi Plugin for Zabbix New Modules ----------- community.general ~~~~~~~~~~~~~~~~~ Cloud ^^^^^ Lxd ... - community.general.lxd_project - Manage LXD projects Monitoring ^^^^^^^^^^ - community.general.alerta_customer - Manage customers in Alerta community.zabbix ~~~~~~~~~~~~~~~~ - community.zabbix.zabbix_authentication - Update Zabbix authentication - community.zabbix.zabbix_autoregister - Update Zabbix autoregistration - community.zabbix.zabbix_housekeeping - Update Zabbix housekeeping f5networks.f5_modules ~~~~~~~~~~~~~~~~~~~~~ - f5networks.f5_modules.bigip_ltm_global - Manages global LTM settings t_systems_mms.icinga_director ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - t_systems_mms.icinga_director.icinga_serviceset - Manage servicesets in Icinga2
Allow alternatives to be installed without being set as the current selection. Fixes #4543.
SUMMARY
Adds a
state
parameter to the alternatives module with the following behavior:selected
, the module behaves exactly as at present:present
, the alternative will be installed, but not set as the current selection for the group.selected
and is now set topresent
, the group will be set to use auto mode.This change preserves existing behavior by default and allows the following behavior if
state
is set topresent
:ISSUE TYPE
COMPONENT NAME
alternatives
ADDITIONAL INFORMATION
There is an example in the description of #4543.
A few questions:
Any better ideas for parameter names thanUpdate: changed toactivate
?state
.selected = False
the default behavior? At present, the PR preserves the existing default behavior, but to me it does not seem very useful.