Support treating string as int for address prefix-length
Resolves: RHEL-3358 Signed-off-by: Wen Liang <wenliang@redhat.com>
This commit is contained in:
parent
b88a2c8f1c
commit
c4e9fb4326
@ -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
|
||||||
|
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Name: nmstate
|
Name: nmstate
|
||||||
Version: 1.4.4
|
Version: 1.4.4
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: Declarative network manager API
|
Summary: Declarative network manager API
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: https://github.com/%{srcname}/%{srcname}
|
URL: https://github.com/%{srcname}/%{srcname}
|
||||||
@ -16,6 +16,7 @@ Source3: %{url}/releases/download/v%{version}/%{srcname}-vendor-%{version
|
|||||||
Patch0: BZ_2132570-nm-reverse-IPv6-order-before-adding-them-to-setting.patch
|
Patch0: BZ_2132570-nm-reverse-IPv6-order-before-adding-them-to-setting.patch
|
||||||
Patch1: BZ_2203277-ip-Support-static-route-with-auto-ip.patch
|
Patch1: BZ_2203277-ip-Support-static-route-with-auto-ip.patch
|
||||||
Patch2: BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch
|
Patch2: BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch
|
||||||
|
Patch3: RHEL_3358_ip-Support-treating-string-as-int-for-prefix-length.patch
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
BuildRequires: python3-setuptools
|
BuildRequires: python3-setuptools
|
||||||
BuildRequires: gnupg2
|
BuildRequires: gnupg2
|
||||||
@ -150,6 +151,9 @@ popd
|
|||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 04 2023 Wen Liang <wenliang@redhat.com> - 1.4.4-5
|
||||||
|
- Support treating string as int for address prefix-length. RHEL-3358
|
||||||
|
|
||||||
* Wed Aug 30 2023 Fernando Fernandez Mancera <ferferna@redhat.com> - 1.4.4-4
|
* Wed Aug 30 2023 Fernando Fernandez Mancera <ferferna@redhat.com> - 1.4.4-4
|
||||||
- Fix issue with ovs-bridge and ovs-interface with same name. RHBZ#2231843
|
- Fix issue with ovs-bridge and ovs-interface with same name. RHBZ#2231843
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user