* nmcli: fix vlan connection modification Fixes #42322 (#42415)
* ensure optional items are set to empty strings rather than not presented
fix syntax of vlan modification command
* extended tests for nmcli
(cherry picked from commit fb72a5424c
)
* Changelog fragment for nmcli fix
This commit is contained in:
parent
42183e562a
commit
ebc35bd79f
3 changed files with 34 additions and 13 deletions
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "nmcli - fix syntax of vlan modification command (https://github.com/ansible/ansible/issues/42322)"
|
|
@ -1033,10 +1033,10 @@ class Nmcli(object):
|
|||
|
||||
params = {'dev': self.vlandev,
|
||||
'id': self.vlanid,
|
||||
'ip4': self.ip4,
|
||||
'gw4': self.gw4,
|
||||
'ip6': self.ip6,
|
||||
'gw6': self.gw6,
|
||||
'ip4': self.ip4 or '',
|
||||
'gw4': self.gw4 or '',
|
||||
'ip6': self.ip6 or '',
|
||||
'gw6': self.gw6 or '',
|
||||
'autoconnect': self.bool_to_string(self.autoconnect)
|
||||
}
|
||||
for k, v in params.items():
|
||||
|
@ -1048,16 +1048,22 @@ class Nmcli(object):
|
|||
cmd = [self.nmcli_bin]
|
||||
cmd.append('con')
|
||||
cmd.append('mod')
|
||||
cmd.append('con-name')
|
||||
|
||||
if self.conn_name is not None:
|
||||
cmd.append(self.conn_name)
|
||||
elif self.ifname is not None:
|
||||
cmd.append(self.ifname)
|
||||
else:
|
||||
cmd.append('vlan%s' % self.vlanid)
|
||||
|
||||
params = {'vlan.parent': self.vlandev,
|
||||
'vlan.id': self.vlanid,
|
||||
'ipv4.address': self.ip4,
|
||||
'ipv4.gateway': self.gw4,
|
||||
'ipv4.dns': self.dns4,
|
||||
'ipv6.address': self.ip6,
|
||||
'ipv6.gateway': self.gw6,
|
||||
'ipv6.dns': self.dns6,
|
||||
'ipv4.address': self.ip4 or '',
|
||||
'ipv4.gateway': self.gw4 or '',
|
||||
'ipv4.dns': self.dns4 or '',
|
||||
'ipv6.address': self.ip6 or '',
|
||||
'ipv6.gateway': self.gw6 or '',
|
||||
'ipv6.dns': self.dns6 or '',
|
||||
'autoconnect': self.bool_to_string(self.autoconnect)
|
||||
}
|
||||
|
||||
|
|
|
@ -402,7 +402,15 @@ def test_create_vlan_con(mocked_generic_connection_create):
|
|||
arg_list = nmcli.Nmcli.execute_command.call_args_list
|
||||
args, kwargs = arg_list[0]
|
||||
|
||||
for param in ['vlan']:
|
||||
assert args[0][0] == '/usr/bin/nmcli'
|
||||
assert args[0][1] == 'con'
|
||||
assert args[0][2] == 'add'
|
||||
assert args[0][3] == 'type'
|
||||
assert args[0][4] == 'vlan'
|
||||
assert args[0][5] == 'con-name'
|
||||
assert args[0][6] == 'non_existent_nw_device'
|
||||
|
||||
for param in ['ip4', '10.10.10.10', 'gw4', '10.10.10.1']:
|
||||
assert param in args[0]
|
||||
|
||||
|
||||
|
@ -419,7 +427,12 @@ def test_mod_vlan_conn(mocked_generic_connection_modify):
|
|||
arg_list = nmcli.Nmcli.execute_command.call_args_list
|
||||
args, kwargs = arg_list[0]
|
||||
|
||||
for param in ['vlan.id']:
|
||||
assert args[0][0] == '/usr/bin/nmcli'
|
||||
assert args[0][1] == 'con'
|
||||
assert args[0][2] == 'mod'
|
||||
assert args[0][3] == 'non_existent_nw_device'
|
||||
|
||||
for param in ['ipv4.address', '10.10.10.10', 'ipv4.gateway', '10.10.10.1']:
|
||||
assert param in args[0]
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue