diff --git a/plugins/doc_fragments/attributes.py b/plugins/doc_fragments/attributes.py index d4f407f..b8e68bf 100644 --- a/plugins/doc_fragments/attributes.py +++ b/plugins/doc_fragments/attributes.py @@ -21,6 +21,20 @@ attributes: platform: description: Target OS/families that can be operated against. support: N/A + 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 diff --git a/plugins/modules/api.py b/plugins/modules/api.py index 404569d..7d90045 100644 --- a/plugins/modules/api.py +++ b/plugins/modules/api.py @@ -33,6 +33,10 @@ attributes: platforms: RouterOS action_group: version_added: 2.1.0 + idempotent: + support: N/A + details: + - Whether the executed command is idempotent depends on the operation performed. options: path: description: diff --git a/plugins/modules/api_facts.py b/plugins/modules/api_facts.py index e1fb70a..b6d1261 100644 --- a/plugins/modules/api_facts.py +++ b/plugins/modules/api_facts.py @@ -29,6 +29,7 @@ extends_documentation_fragment: - community.routeros.attributes.actiongroup_api - community.routeros.attributes.facts - community.routeros.attributes.facts_module + - community.routeros.attributes.idempotent_not_modify_state attributes: platform: support: full diff --git a/plugins/modules/api_find_and_modify.py b/plugins/modules/api_find_and_modify.py index f6aab9f..817451c 100644 --- a/plugins/modules/api_find_and_modify.py +++ b/plugins/modules/api_find_and_modify.py @@ -35,6 +35,8 @@ attributes: platform: support: full platforms: RouterOS + idempotent: + support: full options: path: description: diff --git a/plugins/modules/api_info.py b/plugins/modules/api_info.py index f696548..e68ded0 100644 --- a/plugins/modules/api_info.py +++ b/plugins/modules/api_info.py @@ -28,6 +28,7 @@ extends_documentation_fragment: - community.routeros.api.restrict - community.routeros.attributes - community.routeros.attributes.actiongroup_api + - community.routeros.attributes.idempotent_not_modify_state - community.routeros.attributes.info_module attributes: platform: diff --git a/plugins/modules/api_modify.py b/plugins/modules/api_modify.py index 4abc8fc..b4a7765 100644 --- a/plugins/modules/api_modify.py +++ b/plugins/modules/api_modify.py @@ -42,6 +42,8 @@ attributes: platform: support: full platforms: RouterOS + idempotent: + support: full options: path: description: diff --git a/plugins/modules/command.py b/plugins/modules/command.py index 306f648..90f9733 100644 --- a/plugins/modules/command.py +++ b/plugins/modules/command.py @@ -29,6 +29,10 @@ attributes: platform: support: full platforms: RouterOS + idempotent: + support: N/A + details: + - Whether the executed command is idempotent depends on the command. options: commands: description: diff --git a/plugins/modules/facts.py b/plugins/modules/facts.py index 21013aa..7b169b7 100644 --- a/plugins/modules/facts.py +++ b/plugins/modules/facts.py @@ -19,6 +19,7 @@ extends_documentation_fragment: - community.routeros.attributes - community.routeros.attributes.facts - community.routeros.attributes.facts_module + - community.routeros.attributes.idempotent_not_modify_state attributes: platform: support: full