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
parent
0d4b16aadb
commit
3f0e292246
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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: {}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -23,6 +23,8 @@ attributes:
|
||||||
support: full
|
support: full
|
||||||
diff_mode:
|
diff_mode:
|
||||||
support: none
|
support: none
|
||||||
|
idempotent:
|
||||||
|
support: full
|
||||||
|
|
||||||
options:
|
options:
|
||||||
device:
|
device:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue