parent
5db699603a
commit
0c990933bd
@ -0,0 +1,44 @@
|
||||
From 88b785ee3424fb010da3e70c4337b3b5ebdf5f5e Mon Sep 17 00:00:00 2001
|
||||
From: Fernando Fernandez Mancera <ffmancera@riseup.net>
|
||||
Date: Thu, 24 Aug 2023 17:28:26 +0200
|
||||
Subject: [PATCH] nm: do not attach ovs-bridge to itself when creating a
|
||||
profile
|
||||
|
||||
If ovs-bridge and ovs-interface shares name and ovs-interface is
|
||||
modified, during the creation of the ovs-bridge profile we are setting
|
||||
itself as a controller.
|
||||
|
||||
That is wrong and NetworkManager is reporting the following error:
|
||||
|
||||
```
|
||||
libnmstate.error.NmstateLibnmError: Update profile
|
||||
uuid:ba206f8f-2ed6-486d-a339-9d1f62c5cb84 iface:br1 type:ovs-bridge
|
||||
failed with error=nm-connection-error-quark: connection.slave-type:
|
||||
Cannot set 'master' without 'slave-type' (6)
|
||||
```
|
||||
|
||||
In order to solve that, before setting the controller we check that it
|
||||
is not itself.
|
||||
|
||||
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
|
||||
---
|
||||
libnmstate/nm/ovs.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libnmstate/nm/ovs.py b/libnmstate/nm/ovs.py
|
||||
index f7c589b6..6f732207 100644
|
||||
--- a/libnmstate/nm/ovs.py
|
||||
+++ b/libnmstate/nm/ovs.py
|
||||
@@ -375,5 +375,8 @@ def set_ovs_iface_controller_info(iface_infos):
|
||||
|
||||
for iface_info in iface_infos:
|
||||
ctrl_name = pending_changes.get(iface_info[Interface.NAME])
|
||||
- if ctrl_name:
|
||||
+ if ctrl_name and not (
|
||||
+ ctrl_name == iface_info[Interface.NAME]
|
||||
+ and iface_info[Interface.TYPE] == InterfaceType.OVS_BRIDGE
|
||||
+ ):
|
||||
iface_info[Interface.CONTROLLER] = ctrl_name
|
||||
--
|
||||
2.41.0
|
||||
|
@ -0,0 +1,73 @@
|
||||
From 4c1c741d4dd4d68e12c6e27478f1c320820dd003 Mon Sep 17 00:00:00 2001
|
||||
From: Wen Liang <liangwen12year@gmail.com>
|
||||
Date: Fri, 29 Sep 2023 14:31:34 -0400
|
||||
Subject: [PATCH 1/1] ip: Support treating string as int for `prefix-length`
|
||||
|
||||
When the network role user is using the `network_state` variable to
|
||||
configure the network, and if they are using Jinja2 template to
|
||||
define the `prefix-length`, the type conversion
|
||||
`prefix-length: "{{ __str_val | int }}"` does not work as expected, the
|
||||
type for `prefix-length` in the end is still string. Therefore, nmstate
|
||||
need to support treating string as int for `prefix-length` in order to
|
||||
make the apply succeed.
|
||||
|
||||
Signed-off-by: Wen Liang <liangwen12year@gmail.com>
|
||||
---
|
||||
libnmstate/ifaces/base_iface.py | 7 +++++++
|
||||
libnmstate/schemas/operational-state.yaml | 8 ++++++--
|
||||
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libnmstate/ifaces/base_iface.py b/libnmstate/ifaces/base_iface.py
|
||||
index c1a4c04b..b1e4c811 100644
|
||||
--- a/libnmstate/ifaces/base_iface.py
|
||||
+++ b/libnmstate/ifaces/base_iface.py
|
||||
@@ -48,6 +48,7 @@ class IPState:
|
||||
self._info = info
|
||||
self._remove_stack_if_disabled()
|
||||
self._canonicalize_ip_addr()
|
||||
+ self._canonicalize_ip_prefix()
|
||||
self._canonicalize_dynamic()
|
||||
|
||||
def _canonicalize_dynamic(self):
|
||||
@@ -71,6 +72,12 @@ class IPState:
|
||||
addr[InterfaceIP.ADDRESS_IP]
|
||||
)
|
||||
|
||||
+ def _canonicalize_ip_prefix(self):
|
||||
+ for addr in self.addresses:
|
||||
+ addr[InterfaceIP.ADDRESS_PREFIX_LENGTH] = int(
|
||||
+ addr[InterfaceIP.ADDRESS_PREFIX_LENGTH]
|
||||
+ )
|
||||
+
|
||||
def sort_addresses(self):
|
||||
self.addresses.sort(key=itemgetter(InterfaceIP.ADDRESS_IP))
|
||||
|
||||
diff --git a/libnmstate/schemas/operational-state.yaml b/libnmstate/schemas/operational-state.yaml
|
||||
index 92bd6bd6..8526a0ab 100644
|
||||
--- a/libnmstate/schemas/operational-state.yaml
|
||||
+++ b/libnmstate/schemas/operational-state.yaml
|
||||
@@ -615,7 +615,9 @@ definitions:
|
||||
ip:
|
||||
type: string
|
||||
prefix-length:
|
||||
- type: integer
|
||||
+ type:
|
||||
+ - integer
|
||||
+ - string
|
||||
netmask:
|
||||
type: string
|
||||
neighbor:
|
||||
@@ -654,7 +656,9 @@ definitions:
|
||||
ip:
|
||||
type: string
|
||||
prefix-length:
|
||||
- type: integer
|
||||
+ type:
|
||||
+ - integer
|
||||
+ - string
|
||||
neighbor:
|
||||
type: array
|
||||
items:
|
||||
--
|
||||
2.41.0
|
||||
|
Loading…
Reference in new issue