From e0369a0e50c170a63fb18b6d496416767f8ae96c Mon Sep 17 00:00:00 2001 From: frikky Date: Thu, 14 May 2020 19:29:27 +0200 Subject: [PATCH] Fixed JSON parsing of static valus --- frontend/src/Workflows.js | 2 +- functions/onprem/app_sdk/README.md | 2 +- functions/onprem/app_sdk/app_base.py | 25 +++++++++++++------------ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/frontend/src/Workflows.js b/frontend/src/Workflows.js index 28b0caf6..3be7fa72 100644 --- a/frontend/src/Workflows.js +++ b/frontend/src/Workflows.js @@ -509,7 +509,7 @@ const Workflows = (props) => { theme="solarized" collapsed={collapseJson} displayDataTypes={false} - name={"Results for "+data.action.name} + name={"Results for "+data.action.label} /> } else { // FIXME - have everything parsed as json, either just for frontend diff --git a/functions/onprem/app_sdk/README.md b/functions/onprem/app_sdk/README.md index b66b4c6b..a68aa39d 100644 --- a/functions/onprem/app_sdk/README.md +++ b/functions/onprem/app_sdk/README.md @@ -2,7 +2,7 @@ This is the SDK used for apps to behave like they should. To change it in the backend, upload it to Buckets/shuffler.appspot.com/generated_apps/baseline. -## If you want to update apps.. Why doesn't this work every time..?: +## If you want to update apps.. PS: downloads from docker hub do overrides.. :) 1. Write your code & check if runtime works 2. Build app_base image 3. docker rm $(docker ps -aq) # Remove all stopped containers diff --git a/functions/onprem/app_sdk/app_base.py b/functions/onprem/app_sdk/app_base.py index ce4c4478..f914d5d4 100644 --- a/functions/onprem/app_sdk/app_base.py +++ b/functions/onprem/app_sdk/app_base.py @@ -150,13 +150,14 @@ class AppBase: print("HANDLE RECURSIVE LOOP") pass else: + print("BASE: ", basejson) if isinstance(basejson[value], str): - print(f"LOADING STRING {basejson[value]} AS JSON?") + print(f"LOADING STRING '%s' AS JSON" % basejson[value]) try: - parsedjson = json.loads(basejson[value]) + basejson = json.loads(basejson[value]) except json.decoder.JSONDecodeError as e: - print("RETURNING BECAUSE {basejson[value]} is a normal string") - return basejson + print("RETURNING BECAUSE '%s' IS A NORMAL STRING" % basejson[value]) + return basejson[value] else: basejson = basejson[value] except KeyError as e: @@ -168,8 +169,6 @@ class AppBase: return basejson - - def parse_params(action, fullexecution, parameter): jsonparsevalue = "$." @@ -189,13 +188,15 @@ class AppBase: continue value = get_json_value(fullexecution, to_be_replaced) - - # Check if json inside string - if isinstance(value, str) > 0: - print(f"VALUE: {value}") + if isinstance(value, str): + parameter["value"] = value + elif isinstance(value, dict): + parameter["value"] = json.dumps(value) - self.logger.info(f"CONVERT DATA FROM {parameter['value']} to {data}") - parameter["value"] = data + # Check if json inside string + + #self.logger.info(f"CONVERT DATA FROM {parameter['value']} to {data}") + #parameter["value"] = data if parameter["variant"] == "WORKFLOW_VARIABLE": for item in fullexecution["workflow"]["workflow_variables"]: