From b32f81d68149d3a80c43089de0ec95862c42b451 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Le=20Ninivin?= <cedric.leninivin@nexedi.com>
Date: Wed, 1 Jun 2022 15:34:56 +0000
Subject: [PATCH] slapos_jio_api_style: use SlapOSCatalogToolCacheMixin to get
 Compute Node

---
 .../jIOWebSection_getObjectFromData.py        | 27 +++----------------
 1 file changed, 4 insertions(+), 23 deletions(-)

diff --git a/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_getObjectFromData.py b/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_getObjectFromData.py
index 174f31b0b..5cbf16551 100644
--- a/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_getObjectFromData.py
+++ b/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_getObjectFromData.py
@@ -1,31 +1,12 @@
 portal_type = data_dict["portal_type"]
 
 portal = context.getPortalObject()
-### Start of Duplicated code for getting documents the SlapOS way"
-from Products.ERP5Type.Cache import CachingMethod
-
-def _getNonCachedComputeNodeDocumentUrl(compute_node_reference):
-  return context.Base_getUnrestrictedDocumentUrl(
-      portal_type='Compute Node',
-      # XXX Hardcoded validation state
-      validation_state="validated",
-      reference=compute_node_reference)
-
-def _getComputeNodeDocument(compute_node_reference):
-  """
-  Get the validated compute_node with this reference.
-  """
-  result = CachingMethod(_getNonCachedComputeNodeDocumentUrl,
-      id='_getComputeNodeDocument',
-      cache_factory='slap_cache_factory')(compute_node_reference)
-  if result:
-    return portal.restrictedTraverse(result)
-  return None
-
-
 if portal_type == "Software Installation":
   if "compute_node_id" in data_dict and "software_release_uri" in data_dict:
-    compute_node = _getComputeNodeDocument(data_dict["compute_node_id"])
+    compute_node = portal.portal_catalog.getComputeNodeObject(
+      data_dict["compute_node_id"],
+      raise_not_found=False,
+    )
     if compute_node:
       return compute_node.getSoftwareInstallationFromUrl(data_dict["software_release_uri"])
 
-- 
2.30.9