openvswitch_db : Handle column value conversion and idempotency in no_key case (#43869)

* change column value to string. handle idempotency in no key case

* fix unit test failures in baseline

(cherry picked from commit 8eaebf86b6)
This commit is contained in:
Deepak Agrawal 2018-08-10 10:31:03 +05:30 committed by Matt Clay
parent 445a3e4127
commit 8b2abfe446
3 changed files with 13 additions and 11 deletions

View file

@ -120,15 +120,14 @@ def map_obj_to_commands(want, have, module):
"%(col)s"
commands.append(templatized_command % module.params)
else:
if want == have:
# Nothing to commit
return commands
if module.params['key'] is None:
templatized_command = "%(ovs-vsctl)s -t %(timeout)s set %(table)s %(record)s " \
"%(col)s=%(value)s"
commands.append(templatized_command % module.params)
elif 'key' not in have.keys():
templatized_command = "%(ovs-vsctl)s -t %(timeout)s add %(table)s %(record)s " \
"%(col)s %(key)s=%(value)s"
commands.append(templatized_command % module.params)
elif want['value'] != have['value']:
else:
templatized_command = "%(ovs-vsctl)s -t %(timeout)s set %(table)s %(record)s " \
"%(col)s:%(key)s=%(value)s"
commands.append(templatized_command % module.params)
@ -171,7 +170,7 @@ def map_config_to_obj(module):
obj['key'] = module.params['key']
obj['value'] = col_value_to_dict[module.params['key']]
else:
obj['value'] = col_value.strip()
obj['value'] = str(col_value.strip())
return obj
@ -199,7 +198,7 @@ def main():
'record': {'required': True},
'col': {'required': True},
'key': {'required': False},
'value': {'required': True},
'value': {'required': True, 'type': 'str'},
'timeout': {'default': 5, 'type': 'int'},
}

View file

@ -64,7 +64,8 @@
table: Bridge
record: br-test
col: stp_enable
value: true
value: 'true'
become: yes
register: result
- assert:
@ -76,7 +77,8 @@
table: Bridge
record: br-test
col: stp_enable
value: true
value: 'true'
become: yes
register: result
- assert:
@ -90,6 +92,7 @@
record: br-test
col: other_config
value: true
become: yes
register: result
- assert:

View file

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