Skip to content

Commit

Permalink
Make command always return changed=true. (#50)
Browse files Browse the repository at this point in the history
  • Loading branch information
felixfontein authored Oct 9, 2021
1 parent 5042905 commit f9d246c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/50-command-changed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
breaking_changes:
- "command - the module now always indicates that a change happens. If this is not correct, please use ``changed_when`` to determine the correct changed status for a task (https://github.com/ansible-collections/community.routeros/pull/50)."
5 changes: 4 additions & 1 deletion plugins/modules/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
read from the device. This module includes an
argument that will cause the module to wait for a specific condition
before returning or timing out if the condition is not met.
- The module always indicates a (changed) status. You can use
R(the changed_when task property,override_the_changed_result) to determine
whether a command task actually resulted in a change or not.
options:
commands:
description:
Expand Down Expand Up @@ -168,7 +171,7 @@ def main():
module.fail_json(msg=msg, failed_conditions=failed_conditions)

result.update({
'changed': False,
'changed': True,
'stdout': responses,
'stdout_lines': list(to_lines(responses))
})
Expand Down
12 changes: 6 additions & 6 deletions tests/unit/plugins/modules/test_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,20 +61,20 @@ def load_from_file(*args, **kwargs):

def test_command_simple(self):
set_module_args(dict(commands=['/system resource print']))
result = self.execute_module()
result = self.execute_module(changed=True)
self.assertEqual(len(result['stdout']), 1)
self.assertTrue('platform: "MikroTik"' in result['stdout'][0])

def test_command_multiple(self):
set_module_args(dict(commands=['/system resource print', '/system resource print']))
result = self.execute_module()
result = self.execute_module(changed=True)
self.assertEqual(len(result['stdout']), 2)
self.assertTrue('platform: "MikroTik"' in result['stdout'][0])

def test_command_wait_for(self):
wait_for = 'result[0] contains "MikroTik"'
set_module_args(dict(commands=['/system resource print'], wait_for=wait_for))
self.execute_module()
self.execute_module(changed=True)

def test_command_wait_for_fails(self):
wait_for = 'result[0] contains "test string"'
Expand All @@ -92,13 +92,13 @@ def test_command_match_any(self):
wait_for = ['result[0] contains "MikroTik"',
'result[0] contains "test string"']
set_module_args(dict(commands=['/system resource print'], wait_for=wait_for, match='any'))
self.execute_module()
self.execute_module(changed=True)

def test_command_match_all(self):
wait_for = ['result[0] contains "MikroTik"',
'result[0] contains "RB1100"']
set_module_args(dict(commands=['/system resource print'], wait_for=wait_for, match='all'))
self.execute_module()
self.execute_module(changed=True)

def test_command_match_all_failure(self):
wait_for = ['result[0] contains "MikroTik"',
Expand All @@ -110,4 +110,4 @@ def test_command_match_all_failure(self):
def test_command_wait_for_2(self):
wait_for = 'result[0] contains "wireless"'
set_module_args(dict(commands=['/system package print'], wait_for=wait_for))
self.execute_module()
self.execute_module(changed=True)

0 comments on commit f9d246c

Please sign in to comment.