summaryrefslogtreecommitdiff
path: root/0004-Duplicate-str_to_version-for-the-upgrade-tool.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-06 02:17:30 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-06 02:17:30 +0000
commit35db127c4920388f07b1c109a88e6845d80ec827 (patch)
treea0f1670b1f0d4b49baf63986bc4968f33cfc6250 /0004-Duplicate-str_to_version-for-the-upgrade-tool.patch
parent192f645be293b6bad64875fb1cfb872b027d99be (diff)
automatic import of keylimeopeneuler24.03_LTS
Diffstat (limited to '0004-Duplicate-str_to_version-for-the-upgrade-tool.patch')
-rw-r--r--0004-Duplicate-str_to_version-for-the-upgrade-tool.patch88
1 files changed, 88 insertions, 0 deletions
diff --git a/0004-Duplicate-str_to_version-for-the-upgrade-tool.patch b/0004-Duplicate-str_to_version-for-the-upgrade-tool.patch
new file mode 100644
index 0000000..66cb11b
--- /dev/null
+++ b/0004-Duplicate-str_to_version-for-the-upgrade-tool.patch
@@ -0,0 +1,88 @@
+From dbd521e8e8f0ffd9ace79c7b9b888f4cb89488f9 Mon Sep 17 00:00:00 2001
+From: rpm-build <rpm-build>
+Date: Tue, 15 Aug 2023 06:09:37 -0400
+Subject: [PATCH 4/4] Duplicate str_to_version for the upgrade tool
+
+So it does not depend on python-keylime
+---
+ keylime/cmd/convert_config.py | 24 ++++++++++++++++++++++--
+ templates/2.0/adjust.py | 22 ++++++++++++++++++++--
+ 2 files changed, 42 insertions(+), 4 deletions(-)
+
+diff --git a/keylime/cmd/convert_config.py b/keylime/cmd/convert_config.py
+index c1c6180..cad5e31 100755
+--- a/keylime/cmd/convert_config.py
++++ b/keylime/cmd/convert_config.py
+@@ -84,13 +84,33 @@ import importlib.util
+ import itertools
+ import json
+ import os
++import re
+ import shutil
+ from configparser import RawConfigParser
+-from typing import List, Optional, Tuple
++from typing import List, Optional, Tuple, Union
+
+ from jinja2 import Template
+
+-from keylime.common.version import str_to_version
++
++def str_to_version(v_str: str) -> Union[Tuple[int, int], None]:
++ """
++ Validates the string format and converts the provided string to a tuple of
++ ints which can be sorted and compared.
++
++ :returns: Tuple with version number parts converted to int. In case of
++ invalid version string, returns None
++ """
++
++ # Strip to remove eventual quotes and spaces
++ v_str = v_str.strip('" ')
++
++ m = re.match(r"^(\d+)\.(\d+)$", v_str)
++
++ if not m:
++ return None
++
++ return (int(m.group(1)), int(m.group(2)))
++
+
+ COMPONENTS = ["agent", "verifier", "tenant", "registrar", "ca", "logging"]
+
+diff --git a/templates/2.0/adjust.py b/templates/2.0/adjust.py
+index 312b790..c1e582a 100644
+--- a/templates/2.0/adjust.py
++++ b/templates/2.0/adjust.py
+@@ -2,9 +2,27 @@ import ast
+ import configparser
+ import re
+ from configparser import RawConfigParser
+-from typing import Dict, List, Optional, Tuple
++from typing import Dict, List, Optional, Tuple, Union
+
+-from keylime.common.version import str_to_version
++
++def str_to_version(v_str: str) -> Union[Tuple[int, int], None]:
++ """
++ Validates the string format and converts the provided string to a tuple of
++ ints which can be sorted and compared.
++
++ :returns: Tuple with version number parts converted to int. In case of
++ invalid version string, returns None
++ """
++
++ # Strip to remove eventual quotes and spaces
++ v_str = v_str.strip('" ')
++
++ m = re.match(r"^(\d+)\.(\d+)$", v_str)
++
++ if not m:
++ return None
++
++ return (int(m.group(1)), int(m.group(2)))
+
+
+ def adjust(config: RawConfigParser, mapping: Dict) -> None: # pylint: disable=unused-argument
+--
+2.39.3
+