diff --git a/backend/app_sdk/app_base.py b/backend/app_sdk/app_base.py index c2acb4d0..132b3fe9 100644 --- a/backend/app_sdk/app_base.py +++ b/backend/app_sdk/app_base.py @@ -505,11 +505,13 @@ class AppBase: results = [] if has_loop: - self.logger.info(f"[DEBUG] Should run inner loop: {newparams}") + #self.logger.info(f"[DEBUG] Should run inner loop: {newparams}") + self.logger.info(f"[DEBUG] Should run inner loop") #ret = await self.run_recursed_items(func, newparams, loop_wrapper) ret = self.run_recursed_items(func, newparams, loop_wrapper) else: - self.logger.info(f"[DEBUG] Should run multiplier check with params (inner): {newparams}") + #self.logger.info(f"[DEBUG] Should run multiplier check with params (inner): {newparams}") + self.logger.info(f"[DEBUG] Should run multiplier check with params (inner)") # 1. Find the loops that are required and create new multipliers # If here: check for multipliers within this scope. ret = [] diff --git a/frontend/package.json b/frontend/package.json index f027f35a..6987b0c2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,7 +17,7 @@ "babel-eslint": "^10.1.0", "class-transformer": "^0.4.0", "create-react-app": "^4.0.3", - "cytoscape": "^3.11.0", + "cytoscape": "^3.20.0", "cytoscape-clipboard": "^2.2.1", "cytoscape-cxtmenu": "^3.1.1", "cytoscape-edgehandles": "^3.6.0", diff --git a/frontend/src/components/ConfigureWorkflow.jsx b/frontend/src/components/ConfigureWorkflow.jsx index bb85a059..460ca8cf 100644 --- a/frontend/src/components/ConfigureWorkflow.jsx +++ b/frontend/src/components/ConfigureWorkflow.jsx @@ -119,6 +119,7 @@ const ConfigureWorkflow = (props) => { auth_done: false, action_ids: [], action: action, + update_version: action.app_version, app: {}, }; @@ -130,7 +131,13 @@ const ConfigureWorkflow = (props) => { app.loop_versions.includes(action.app_version))) ); if (app === undefined || app === null) { - console.log("App not found: ", action.app_name); + //console.log("App not found: ", action.app_name); + + const subapp = apps.find(app => app.name === action.app_name) + if (subapp !== undefined && subapp !== null) { + newaction.update_version = "1.1.0" + } + newaction.must_activate = true; } else { @@ -196,7 +203,7 @@ const ConfigureWorkflow = (props) => { tmpaction.app_name === newaction.app_name ) !== undefined ) { - console.log("Action already found."); + //console.log("Action already found."); } else { newactions.push(newaction); } @@ -508,7 +515,7 @@ const ConfigureWorkflow = (props) => { {action.must_activate ? ( + ) : null} + {action.update_version !== action.app_version ? ( + ) : null} ); @@ -609,7 +645,7 @@ const ConfigureWorkflow = (props) => { */} ); @@ -6591,7 +6637,7 @@ const AngularWorkflow = (props) => { }, }} onChange={(e) => { - setTriggerFolderWrapperMulti(e); + setTriggerFolderWrapperMulti(e) }} fullWidth input={} @@ -10854,7 +10900,7 @@ const AngularWorkflow = (props) => { //setDragging(true); } }} - disabled={draggingDisabled} + disabled={true} onStop={(e) => { console.log("STOP"); if (!dragging) { @@ -10894,9 +10940,9 @@ const AngularWorkflow = (props) => { pointerEvents: "auto", backgroundColor: inputColor, color: "white", - minWidth: 750, + minWidth: 650, padding: 30, - maxHeight: 700, + maxHeight: 550, overflowY: "auto", overflowX: "hidden", zIndex: 10012, diff --git a/frontend/src/views/SettingsPage.jsx b/frontend/src/views/SettingsPage.jsx index 568e03b2..5567bed5 100644 --- a/frontend/src/views/SettingsPage.jsx +++ b/frontend/src/views/SettingsPage.jsx @@ -754,6 +754,10 @@ const Settings = (props) => { ) : null} + {userdata.eth_info !== undefined && + userdata.eth_info.account !== undefined && + userdata.eth_info.account.length > 0 && + userdata.eth_info.parsed_balance !== undefined ? (
{
+ ) : null}
- {userdata !== undefined && + {userdata !== undefined && userdata.eth_info !== undefined && userdata.eth_info.account.length > 0 ? (
diff --git a/frontend/src/views/Workflows.jsx b/frontend/src/views/Workflows.jsx index a349dce8..fa34eceb 100644 --- a/frontend/src/views/Workflows.jsx +++ b/frontend/src/views/Workflows.jsx @@ -117,7 +117,7 @@ export const GetIconInfo = (action) => { { key: "merge", values: ["join", "merge"] }, { key: "search", - values: ["search", "find", "locate", "index", "analyze", "anal", "match"], + values: ["search", "find", "locate", "index", "analyze", "anal", "match", "check cache", "check", "verify", "validate"], }, { key: "list", values: ["list", "head", "options"] }, { @@ -134,8 +134,8 @@ export const GetIconInfo = (action) => { "preview", ], }, - { key: "add", values: ["add"] }, - { key: "delete", values: ["delete", "remove", "clear", "clean"] }, + { key: "add", values: ["add", "accept", ] }, + { key: "delete", values: ["delete", "remove", "clear", "clean", "dismiss",] }, { key: "send", values: [ diff --git a/functions/onprem/worker/build.sh b/functions/onprem/worker/build.sh index 069349b4..cf854af6 100644 --- a/functions/onprem/worker/build.sh +++ b/functions/onprem/worker/build.sh @@ -1,5 +1,5 @@ NAME=shuffle-worker -VERSION=0.9.35 +VERSION=0.9.36 echo "Running docker build with $NAME:$VERSION" #CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o worker.bin . diff --git a/functions/onprem/worker/worker.go b/functions/onprem/worker/worker.go index 1ed02cef..9ed76cfa 100644 --- a/functions/onprem/worker/worker.go +++ b/functions/onprem/worker/worker.go @@ -1767,7 +1767,7 @@ func handleWorkflowQueue(resp http.ResponseWriter, request *http.Request) { log.Printf("\n\n[DEBUG] In workflowQueue\n\n") body, err := ioutil.ReadAll(request.Body) if err != nil { - log.Println("(3) Failed reading body for workflowqueue") + log.Println("[WARNING] (3) Failed reading body for workflowqueue") resp.WriteHeader(401) resp.Write([]byte(fmt.Sprintf(`{"success": false, "reason": "%s"}`, err))) return @@ -1777,7 +1777,7 @@ func handleWorkflowQueue(resp http.ResponseWriter, request *http.Request) { var actionResult shuffle.ActionResult err = json.Unmarshal(body, &actionResult) if err != nil { - log.Printf("Failed shuffle.ActionResult unmarshaling: %s", err) + log.Printf("[ERROR] Failed shuffle.ActionResult unmarshaling: %s", err) resp.WriteHeader(401) resp.Write([]byte(fmt.Sprintf(`{"success": false, "reason": "%s"}`, err))) return @@ -2502,8 +2502,8 @@ func sendAppRequest(incomingUrl, appName string, port int, action shuffle.Action // Run with proper hostname, but set to shuffle-worker to avoid specific host target. // This means running with VIP instead. if len(hostname) > 0 { - //parsedRequest.BaseUrl = fmt.Sprintf("http://%s:%d", hostname, baseport) - parsedRequest.BaseUrl = fmt.Sprintf("http://shuffle-workers:%d", baseport) + parsedRequest.BaseUrl = fmt.Sprintf("http://%s:%d", hostname, baseport) + //parsedRequest.BaseUrl = fmt.Sprintf("http://shuffle-workers:%d", baseport) log.Printf("[DEBUG] Changing hostname to local hostname in Docker network for WORKER URL: %s", parsedRequest.BaseUrl) } @@ -2841,6 +2841,7 @@ func handleRunExecution(resp http.ResponseWriter, request *http.Request) { return } + // FIXME: This should be PER EXECUTION //if strings.ToLower(os.Getenv("SHUFFLE_PASS_APP_PROXY")) == "true" { // Is it ok if these are standard? Should they be update-able after launch? Hmm if len(execRequest.HTTPProxy) > 0 { @@ -2926,6 +2927,12 @@ func handleRunExecution(resp http.ResponseWriter, request *http.Request) { return } + ctx := context.Background() + err = setWorkflowExecution(ctx, workflowExecution, true) + if err != nil { + log.Printf("[ERROR] Failed initializing execution saving for %s: %s", workflowExecution.ExecutionId, err) + } + if workflowExecution.Status == "FINISHED" || workflowExecution.Status == "SUCCESS" { log.Printf("[INFO] Workflow %s is finished. Exiting worker.", workflowExecution.ExecutionId) log.Printf("[DEBUG] Shutting down (20)") @@ -2935,7 +2942,6 @@ func handleRunExecution(resp http.ResponseWriter, request *http.Request) { return } - //ctx := context.Background() //startAction, extra, children, parents, visited, executed, nextActions, environments := shuffle.GetExecutionVariables(ctx, workflowExecution.ExecutionId) extra := 0