1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Return commands instead of command (#24061)

Ok, so for openvswitch_db in particular we just return one command
but in the sake of consistency and code re-use, let's return a list
of "commands", even if it's just one.
This commit is contained in:
Ricardo Carrillo Cruz 2017-04-27 16:36:08 +02:00 committed by GitHub
parent 9456f93ea8
commit 2716fad38f
3 changed files with 20 additions and 19 deletions

View file

@ -103,26 +103,26 @@ EXAMPLES = '''
''' '''
def map_obj_to_command(want, have, module): def map_obj_to_commands(want, have, module):
""" Define ovs-vsctl command to meet desired state """ """ Define ovs-vsctl command to meet desired state """
command = None commands = list()
if module.params['state'] == 'absent': if module.params['state'] == 'absent':
if 'key' in have.keys(): if 'key' in have.keys():
templatized_command = "%(ovs-vsctl)s -t %(timeout)s remove %(table)s %(record)s " \ templatized_command = "%(ovs-vsctl)s -t %(timeout)s remove %(table)s %(record)s " \
"%(col)s %(key)s=%(value)s" "%(col)s %(key)s=%(value)s"
command = templatized_command % module.params commands.append(templatized_command % module.params)
else: else:
if 'key' not in have.keys(): if 'key' not in have.keys():
templatized_command = "%(ovs-vsctl)s -t %(timeout)s add %(table)s %(record)s " \ templatized_command = "%(ovs-vsctl)s -t %(timeout)s add %(table)s %(record)s " \
"%(col)s %(key)s=%(value)s" "%(col)s %(key)s=%(value)s"
command = templatized_command % module.params commands.append(templatized_command % module.params)
elif want['value'] != have['value']: elif want['value'] != have['value']:
templatized_command = "%(ovs-vsctl)s -t %(timeout)s set %(table)s %(record)s " \ templatized_command = "%(ovs-vsctl)s -t %(timeout)s set %(table)s %(record)s " \
"%(col)s:%(key)s=%(value)s" "%(col)s:%(key)s=%(value)s"
command = templatized_command % module.params commands.append(templatized_command % module.params)
return command return commands
def map_config_to_obj(module): def map_config_to_obj(module):
@ -190,12 +190,13 @@ def main():
want = map_params_to_obj(module) want = map_params_to_obj(module)
have = map_config_to_obj(module) have = map_config_to_obj(module)
command = map_obj_to_command(want, have, module) commands = map_obj_to_commands(want, have, module)
result['command'] = command result['commands'] = commands
if command: if commands:
if not module.check_mode: if not module.check_mode:
module.run_command(command, check_rc=True) for c in commands:
module.run_command(c, check_rc=True)
result['changed'] = True result['changed'] = True
module.exit_json(**result) module.exit_json(**result)

View file

@ -65,7 +65,7 @@ class AnsibleFailJson(Exception):
class TestOpenVSwitchModule(unittest.TestCase): class TestOpenVSwitchModule(unittest.TestCase):
def execute_module(self, failed=False, changed=False, def execute_module(self, failed=False, changed=False,
command=None, test_name=None): commands=None, test_name=None):
self.load_fixtures(test_name) self.load_fixtures(test_name)
@ -76,8 +76,8 @@ class TestOpenVSwitchModule(unittest.TestCase):
result = self.changed(changed) result = self.changed(changed)
self.assertEqual(result['changed'], changed, result) self.assertEqual(result['changed'], changed, result)
if command: if commands:
self.assertEqual(command, result['command'], result['command']) self.assertEqual(commands, result['commands'], result['commands'])
return result return result

View file

@ -87,8 +87,8 @@ class TestOpenVSwitchDBModule(TestOpenVSwitchModule):
value='True')) value='True'))
self.execute_module( self.execute_module(
changed=True, changed=True,
command='/usr/bin/ovs-vsctl -t 5 remove Bridge test-br other_config' commands=['/usr/bin/ovs-vsctl -t 5 remove Bridge test-br other_config'
' disable-in-band=True', ' disable-in-band=True'],
test_name='test_openvswitch_db_absent_removes_key') test_name='test_openvswitch_db_absent_removes_key')
def test_openvswitch_db_present_idempotent(self): def test_openvswitch_db_present_idempotent(self):
@ -105,8 +105,8 @@ class TestOpenVSwitchDBModule(TestOpenVSwitchModule):
value='True')) value='True'))
self.execute_module( self.execute_module(
changed=True, changed=True,
command='/usr/bin/ovs-vsctl -t 5 add Bridge test-br other_config' commands=['/usr/bin/ovs-vsctl -t 5 add Bridge test-br other_config'
' disable-in-band=True', ' disable-in-band=True'],
test_name='test_openvswitch_db_present_adds_key') test_name='test_openvswitch_db_present_adds_key')
def test_openvswitch_db_present_updates_key(self): def test_openvswitch_db_present_updates_key(self):
@ -116,6 +116,6 @@ class TestOpenVSwitchDBModule(TestOpenVSwitchModule):
value='False')) value='False'))
self.execute_module( self.execute_module(
changed=True, changed=True,
command='/usr/bin/ovs-vsctl -t 5 set Bridge test-br other_config' commands=['/usr/bin/ovs-vsctl -t 5 set Bridge test-br other_config'
':disable-in-band=False', ':disable-in-band=False'],
test_name='test_openvswitch_db_present_updates_key') test_name='test_openvswitch_db_present_updates_key')