Add 'idempotent' attribute (#833)

* Add 'idempotent' attribute.

* Mention check mode in attribute description.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
pull/371/head
Felix Fontein 2024-12-30 21:11:12 +01:00 committed by GitHub
parent 0d4b16aadb
commit 3f0e292246
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 108 additions and 0 deletions

View File

@ -18,6 +18,20 @@ attributes:
description: Can run in C(check_mode) and return changed status prediction without modifying target. description: Can run in C(check_mode) and return changed status prediction without modifying target.
diff_mode: diff_mode:
description: Will return details on what has changed (or possibly needs changing in C(check_mode)), when in diff mode. description: Will return details on what has changed (or possibly needs changing in C(check_mode)), when in diff mode.
idempotent:
description:
- When run twice in a row outside check mode, with the same arguments, the second invocation indicates no change.
- This assumes that the system controlled/queried by the module has not changed in a relevant way.
"""
# Should be used together with the standard fragment
IDEMPOTENT_NOT_MODIFY_STATE = r"""
options: {}
attributes:
idempotent:
support: full
details:
- This action does not modify state.
""" """
# Should be used together with the standard fragment # Should be used together with the standard fragment

View File

@ -19,6 +19,11 @@ description:
attributes: attributes:
diff_mode: diff_mode:
support: full support: full
idempotent:
support: partial
details:
- If relative timestamps are used and O(ignore_timestamps=false), the module is not idempotent.
- The option O(force=true) generally disables idempotency.
requirements: requirements:
- cryptography >= 1.6 (if using V(selfsigned) or V(ownca) provider) - cryptography >= 1.6 (if using V(selfsigned) or V(ownca) provider)
options: options:

View File

@ -18,6 +18,8 @@ description:
attributes: attributes:
diff_mode: diff_mode:
support: full support: full
idempotent:
support: full
requirements: requirements:
- cryptography >= 1.3 - cryptography >= 1.3
options: options:

View File

@ -20,6 +20,10 @@ description:
attributes: attributes:
diff_mode: diff_mode:
support: full support: full
idempotent:
support: partial
details:
- The option O(regenerate=always) generally disables idempotency.
requirements: requirements:
- cryptography >= 1.2.3 (older versions might work as well) - cryptography >= 1.2.3 (older versions might work as well)
options: options:

View File

@ -17,6 +17,8 @@ requirements:
attributes: attributes:
diff_mode: diff_mode:
support: none support: none
idempotent:
support: full
options: options:
src_path: src_path:
description: description:

View File

@ -43,6 +43,10 @@ attributes:
support: full support: full
diff_mode: diff_mode:
support: full support: full
idempotent:
support: partial
details:
- If O(state=changed_key) is used, the module is not idempotent.
options: options:
state: state:
description: description:

View File

@ -26,6 +26,7 @@ extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.actiongroup_acme - community.crypto.attributes.actiongroup_acme
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
retrieve_orders: retrieve_orders:
description: description:

View File

@ -24,6 +24,7 @@ extends_documentation_fragment:
- community.crypto.acme.no_account - community.crypto.acme.no_account
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
certificate_path: certificate_path:
description: description:

View File

@ -81,6 +81,12 @@ attributes:
support: none support: none
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- If O(force=true), the module is not idempotent.
If O(force=false), it depends on the certificate's validity period and the value of O(remaining_days).
- The second phase invocation of the module is always idempotent, assuming no error occurs.
options: options:
account_email: account_email:
description: description:

View File

@ -33,6 +33,8 @@ attributes:
support: full support: full
diff_mode: diff_mode:
support: none support: none
idempotent:
support: full
options: options:
order_uri: order_uri:
description: description:

View File

@ -23,6 +23,7 @@ extends_documentation_fragment:
- community.crypto.acme.no_account - community.crypto.acme.no_account
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
certificate_path: certificate_path:
description: description:

View File

@ -41,6 +41,8 @@ attributes:
support: none support: none
diff_mode: diff_mode:
support: none support: none
idempotent:
support: full
options: options:
certificate: certificate:
description: description:

View File

@ -37,6 +37,11 @@ attributes:
support: N/A support: N/A
details: details:
- This action does not modify state. - This action does not modify state.
idempotent:
support: none
details:
- The certificates returned are never the same, since the Not Before and Not After timestamps
depend on the invocation's timestamp.
options: options:
challenge: challenge:
description: description:

View File

@ -44,6 +44,8 @@ attributes:
support: none support: none
diff_mode: diff_mode:
support: none support: none
idempotent:
support: none
options: options:
url: url:
description: description:

View File

@ -24,6 +24,7 @@ requirements:
- "cryptography >= 1.5" - "cryptography >= 1.5"
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.idempotent_not_modify_state
attributes: attributes:
check_mode: check_mode:
support: full support: full

View File

@ -21,6 +21,7 @@ description:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: {} options: {}
""" """

View File

@ -37,6 +37,13 @@ attributes:
support: none support: none
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true).
- Under which conditions the module is idempotent still needs to be determined.
If you are using this module and have more information, please contribute to
the documentation!
options: options:
backup: backup:
description: description:

View File

@ -44,6 +44,12 @@ attributes:
support: none support: none
diff_mode: diff_mode:
support: none support: none
idempotent:
support: partial
details:
- Under which conditions the module is idempotent still needs to be determined.
If you are using this module and have more information, please contribute to
the documentation!
options: options:
client_id: client_id:
description: description:

View File

@ -20,6 +20,7 @@ description:
newer. newer.
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.idempotent_not_modify_state
attributes: attributes:
check_mode: check_mode:
support: none support: none

View File

@ -23,6 +23,8 @@ attributes:
support: full support: full
diff_mode: diff_mode:
support: none support: none
idempotent:
support: full
options: options:
device: device:

View File

@ -28,6 +28,11 @@ attributes:
support: full support: full
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true) or O(regenerate=always).
- If relative timestamps are used and O(ignore_timestamps=false) (default), the module is not idempotent.
options: options:
state: state:
description: description:

View File

@ -30,6 +30,10 @@ attributes:
support: full support: full
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true) or O(regenerate=always).
options: options:
state: state:
description: description:

View File

@ -26,6 +26,7 @@ extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.name_encoding - community.crypto.name_encoding
- community.crypto.attributes.idempotent_not_modify_state
options: options:
path: path:
description: description:

View File

@ -35,6 +35,10 @@ attributes:
support: none support: none
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true).
options: options:
state: state:
description: description:

View File

@ -32,6 +32,10 @@ attributes:
support: none support: none
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true).
options: options:
action: action:
description: description:

View File

@ -27,6 +27,7 @@ author:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
path: path:
description: description:

View File

@ -34,6 +34,10 @@ attributes:
support: full support: full
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true).
options: options:
state: state:
description: description:

View File

@ -23,6 +23,7 @@ author:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
path: path:
description: description:

View File

@ -30,6 +30,11 @@ attributes:
- This action does not modify state. - This action does not modify state.
diff_mode: diff_mode:
support: none support: none
idempotent:
support: partial
details:
- Signature algorithms are generally not deterministic. Thus the generated signature
can change from one invocation to the next.
options: options:
privatekey_path: privatekey_path:
description: description:

View File

@ -24,6 +24,7 @@ author:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
options: options:
path: path:
description: description:

View File

@ -28,6 +28,8 @@ attributes:
support: none support: none
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: full
options: options:
src_path: src_path:
description: description:

View File

@ -31,6 +31,7 @@ author:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
- community.crypto.name_encoding - community.crypto.name_encoding
options: options:
path: path:

View File

@ -33,6 +33,11 @@ attributes:
support: full support: full
safe_file_operations: safe_file_operations:
support: full support: full
idempotent:
support: partial
details:
- The module is not idempotent if O(force=true).
- If relative timestamps and O(ignore_timestamps=false) (default), the module is not idempotent.
options: options:
state: state:
description: description:

View File

@ -22,6 +22,7 @@ author:
extends_documentation_fragment: extends_documentation_fragment:
- community.crypto.attributes - community.crypto.attributes
- community.crypto.attributes.info_module - community.crypto.attributes.info_module
- community.crypto.attributes.idempotent_not_modify_state
- community.crypto.name_encoding - community.crypto.name_encoding
options: options:
path: path: