-
Notifications
You must be signed in to change notification settings - Fork 90
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
nclu: fix 'net pending' delimiter string, and exec commit only if changed #219
nclu: fix 'net pending' delimiter string, and exec commit only if changed #219
Conversation
Could you please add a changelog fragment? |
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Closing and reopening to restart tests (no idea why that one was cancelled, this should fix it :) ). |
Hi @kakkotetsu, thank you for the fix! What do you think about handling both cases of quotes? Maybe something like this dericcrago@259159d ? |
Thanks for review it. It looks good to me! |
switched to 're' to handle both cases of quotes
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 @kakkotetsu!
@dericcrago btw, you need to add the |
…nged (#219) * fix 'net pendig''s delimiter string * test for #219 * test for #219 * add changelog fragment for #219 * Update changelogs/fragments/219-nclu-fix-pending.yaml Co-authored-by: Felix Fontein <felix@fontein.de> * Update changelogs/fragments/219-nclu-fix-pending.yaml Co-authored-by: Felix Fontein <felix@fontein.de> * switched to 're' to handle both cases of quotes Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Deric Crago <deric.crago@redhat.com> (cherry picked from commit 5e2cd88)
…nged (#219) (#220) * fix 'net pendig''s delimiter string * test for #219 * test for #219 * add changelog fragment for #219 * Update changelogs/fragments/219-nclu-fix-pending.yaml Co-authored-by: Felix Fontein <felix@fontein.de> * Update changelogs/fragments/219-nclu-fix-pending.yaml Co-authored-by: Felix Fontein <felix@fontein.de> * switched to 're' to handle both cases of quotes Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Deric Crago <deric.crago@redhat.com> (cherry picked from commit 5e2cd88) Co-authored-by: kakkotetsu <kakkotetsu@users.noreply.github.com>
v3.2.0 community.crypto - acme module_utils - the ``acme`` module_utils has been split up into several Python modules (ansible-collections/community.crypto#184). - acme_* modules - codebase refactor which should not be visible to end-users (ansible-collections/community.crypto#184). - acme_* modules - support account key passphrases for ``cryptography`` backend (ansible-collections/community.crypto#197, ansible-collections/community.crypto#207). - acme_certificate_revoke - support revoking by private keys that are passphrase protected for ``cryptography`` backend (ansible-collections/community.crypto#207). - acme_challenge_cert_helper - add ``private_key_passphrase`` parameter (ansible-collections/community.crypto#207). community.docker - docker_swarm_service - change ``publish.published_port`` option from mandatory to optional. Docker will assign random high port if not specified (ansible-collections/community.docker#99). community.general - archive - refactored some reused code out into a couple of functions (ansible-collections/community.general#2061). - csv module utils - new module_utils for shared functions between ``from_csv`` filter and ``read_csv`` module (ansible-collections/community.general#2037). - ipa_sudorule - add support for setting sudo runasuser (ansible-collections/community.general#2031). - jenkins_job - add a ``validate_certs`` parameter that allows disabling TLS/SSL certificate validation (ansible-collections/community.general#255). - kibana_plugin - add parameter for passing ``--allow-root`` flag to kibana and kibana-plugin commands (ansible-collections/community.general#2014). - proxmox - added ``purge`` module parameter for use when deleting lxc's with HA options (ansible-collections/community.general#2013). - proxmox inventory plugin - added ``tags_parsed`` fact containing tags parsed as a list (ansible-collections/community.general#1949). - proxmox_kvm - added new module parameter ``tags`` for use with PVE 6+ (ansible-collections/community.general#2000). - rax - elements of list parameters are now validated (ansible-collections/community.general#2006). - rax_cdb_user - elements of list parameters are now validated (ansible-collections/community.general#2006). - rax_scaling_group - elements of list parameters are now validated (ansible-collections/community.general#2006). - read_csv - refactored read_csv module to use shared csv functions from csv module_utils (ansible-collections/community.general#2037). - redfish_* modules, redfish_utils module utils - add support for Redfish session create, delete, and authenticate (ansible-collections/community.general#1975). - snmp_facts - added parameters ``timeout`` and ``retries`` to module (ansible-collections/community.general#980). - vdo - add ``force`` option (ansible-collections/community.general#2101). community.network - edgeos_config - match the space after ``set`` and ``delete`` commands (ansible-collections/community.network#199). - nclu - execute ``net commit description <description>`` only if changed ``net pending``'s diff field (ansible-collections/community.network#219). community.postgresql - postgresql_info - add the ``patch``, ``full``, and ``raw`` values of the ``version`` return value (ansible-collections/community.postgresql#68). - postgresql_ping - add the ``patch``, ``full``, and ``raw`` values of the ``server_version`` return value (ansible-collections/community.postgresql#70). community.zabbix - zabbix_agent - added support for installations on arm64 systems (ansible-collections/community.zabbix#320). - zabbix_proxy - now supports configuring StatsAllowedIP (ansible-collections/community.zabbix#337). - zabbix_server - added support for installtions on arm64 systems (ansible-collections/community.zabbix#320). - zabbix_web - added support for installtions on arm64 systems (ansible-collections/community.zabbix#320). dellemc.openmanage - ome_template - Allows to deploy a template on device groups. hetzner.hcloud - Add firewalls to hcloud_server module ovirt.ovirt - cluster_upgrade - Add correlation-id header (oVirt/ovirt-ansible-collection#222). - engine_setup - Add skip renew pki confirm (oVirt/ovirt-ansible-collection#228). - examples - Add recipe for removing DM device (oVirt/ovirt-ansible-collection#233). - hosted_engine_setup - Filter devices with unsupported bond mode (oVirt/ovirt-ansible-collection#226). - infra - Add reboot host parameters (oVirt/ovirt-ansible-collection#231). - ovirt_disk - Add SATA support (oVirt/ovirt-ansible-collection#225). - ovirt_user - Add ssh_public_key (oVirt/ovirt-ansible-collection#232) purestorage.flasharray - purefa_maintenance - New module to set maintenance windows - purefa_pg - Add support to rename protection groups - purefa_syslog - Add support for naming SYSLOG servers for Purity//FA 6.1 or higher purestorage.flashblade - purefb_certs - Add update functionality for array cert - purefb_fs - Add multiprotocol ACL support - purefb_info - Add information regarding filesystem multiprotocol (where available) - purefb_info - Add new parameter to provide details on admin users - purefb_info - Add replication performace statistics - purefb_s3user - Add ability to remove an S3 users existing access key
@kakkotetsu hi, would you like to have your GH login added to |
Is there reasoning behind the "exec commit only if changed"? This broke functionality and multi-stage commits:
Specifically, this change makes it impossible to commit staged commands if you do not also have a command in the final task which also specifically changes the configuration. As such, the value of the (default) non-commit, non-atomic tasks is questionable. |
@eikef thanks for the feedback! |
I think the The reasons for this change("exec commit only if changed") are:
While investigating this matter, I noticed that "changed" does not seem to be true when "commit" is executed due to the following bug in Cumulus Linux. |
One could alter the logic to skip committing if there are no changes effected by the queued commands (i.e. check_pending() returns an empty string, presumably) to avoid those empty commit history entries. That way commits should still happen if the staged commands have changed any actual configuration (since that will yield a non-empty diff), but not when no actual change has taken place. (I've noticed the same problem of empty commits but solved it differently for my playbook -- before committing I actually check whether there are pending changes and register the output to test for an empty diff and basing the decision to run the commit task on the outcome.) |
Thanks for explaining. Please Pull Request to fix #399 if possible. I think it would be improved by modifying the code as follows.
|
SUMMARY
nclu
modulenet pending
's delimiter string3.7.3
,4.0.0
,4.2.1
,4.3.0
net commit description <description>
only if changednet pending
's diff field.ISSUE TYPE
COMPONENT NAME
nclu
ADDITIONAL INFORMATION