From 31b47afd3cc95ae93e42a3eb2161ce714cd7256b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Le=20Ninivin?= <cedric.leninivin@nexedi.com>
Date: Tue, 24 May 2022 13:43:37 +0000
Subject: [PATCH] slapos_jio_api_style: Instance parameter is expected in JSON

---
 ...bSection_requestComputerPartitionFromJSON.xml |  4 ++--
 .../jIOWebSection_requestComputerPartition.py    | 16 +++++++++-------
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/master/bt5/slapos_jio_api_style/PathTemplateItem/portal_callables/jIOWebSection_requestComputerPartitionFromJSON.xml b/master/bt5/slapos_jio_api_style/PathTemplateItem/portal_callables/jIOWebSection_requestComputerPartitionFromJSON.xml
index 50f5c22ac..de8482ee7 100644
--- a/master/bt5/slapos_jio_api_style/PathTemplateItem/portal_callables/jIOWebSection_requestComputerPartitionFromJSON.xml
+++ b/master/bt5/slapos_jio_api_style/PathTemplateItem/portal_callables/jIOWebSection_requestComputerPartitionFromJSON.xml
@@ -60,8 +60,8 @@
     },\n
     "parameters": {\n
       "title": "Instance Parameters",\n
-      "type": "object",\n
-      "additionalProperties": { "type": "string" }\n
+      "type": "string",\n
+      "description": "Instance parameters in JSON Format."\n
     },\n
     "shared": {\n
       "title": "Shared Instance",\n
diff --git a/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_requestComputerPartition.py b/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_requestComputerPartition.py
index 503b303db..fe06f44dd 100644
--- a/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_requestComputerPartition.py
+++ b/master/bt5/slapos_jio_api_style/SkinTemplateItem/portal_skins/slapos_jio_api/jIOWebSection_requestComputerPartition.py
@@ -88,8 +88,8 @@ def getSoftwareInstanceForComputePartition(compute_node_id,
 
 
 # Loads partition parameter
-partition_parameter = data_dict.get("parameters", {})
-if isinstance(partition_parameter, str):
+partition_parameter = data_dict.get("parameters", None)
+if partition_parameter:
   import json
   try:
     partition_parameter = json.loads(partition_parameter)
@@ -99,11 +99,13 @@ if isinstance(partition_parameter, str):
       error_name="CANNOT-DECODE-COMPUTER-PARTITION-JSON-PARAMETER",
     )
 
-if not isinstance(partition_parameter, dict):
-  return logError(
-    "Parameters should be a key value object.",
-    error_name="INCORRECT-COMPUTER-PARTITION-JSON-PARAMETER",
-  )
+  if not isinstance(partition_parameter, dict):
+    return logError(
+      "Parameters should be a key value object.",
+      error_name="INCORRECT-COMPUTER-PARTITION-JSON-PARAMETER",
+    )
+else:
+  partition_parameter = {}
 
 try:
   # filter dict
-- 
2.30.9