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
pull/43922/head
Deepak Agrawal 6 years ago committed by GitHub
parent 2974df9d5e
commit 8eaebf86b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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'},
}

@ -70,7 +70,8 @@
table: Bridge
record: br-test
col: stp_enable
value: true
value: 'true'
become: yes
register: result
- assert:
@ -82,7 +83,8 @@
table: Bridge
record: br-test
col: stp_enable
value: true
value: 'true'
become: yes
register: result
- assert:
@ -96,6 +98,7 @@
record: br-test
col: other_config
value: true
become: yes
register: result
- assert:

@ -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):

Loading…
Cancel
Save