From 852555957e9c0e9fded82de6fe9f5f503eb5a7c3 Mon Sep 17 00:00:00 2001 From: Vasyl Saienko Date: Sat, 1 Mar 2025 09:23:56 +0000 Subject: [PATCH] Store only specific node fields in nwl Avoid adding fields that may rapidly changed, store only what we require. Related-Prod: PRODX-49864 Change-Id: Iac6827730c5197f60b54d7642829036312474ef1 --- rockoon/maintenance.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/rockoon/maintenance.py b/rockoon/maintenance.py index 4eb1c98..64ec96b 100644 --- a/rockoon/maintenance.py +++ b/rockoon/maintenance.py @@ -213,6 +213,19 @@ class NodeWorkloadLock(LockBase): kind = "NodeWorkloadLock" kopf_on_args = *version.split("/"), endpoint + @classmethod + def get_normalized_node(cls, node_obj): + node = { + "apiVersion": node_obj["apiVersion"], + "kind": node_obj["kind"], + "spec": node_obj["spec"], + "metadata": { + "name": node_obj["metadata"]["name"], + "labels": node_obj["metadata"].get("labels", []), + }, + } + return node + @classmethod def dummy(cls, name): node_name = "-".join(name.split("-")[1:]) @@ -221,10 +234,13 @@ def dummy(cls, name): dummy["spec"]["nodeDeletionRequestSupported"] = True node = kube.safe_get_node(node_name) if node.exists(): - node = node.obj - node.pop("status", None) + normalized_node = cls.get_normalized_node(node.obj) dummy["metadata"]["annotations"].update( - {"openstack.lcm.mirantis.com/original-node": json.dumps(node)} + { + "openstack.lcm.mirantis.com/original-node": json.dumps( + normalized_node + ) + } ) return dummy