diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go
index ff124dad..283d6396 100644
--- a/backend/go-app/walkoff.go
+++ b/backend/go-app/walkoff.go
@@ -1790,7 +1790,6 @@ func handleExecution(id string, workflow Workflow, request *http.Request) (Workf
}
if len(workflowExecution.ExecutionId) == 0 {
- log.Println("Making new executionId!")
sessionToken := uuid.NewV4()
workflowExecution.ExecutionId = sessionToken.String()
} else {
diff --git a/frontend/src/AngularWorkflow.js b/frontend/src/AngularWorkflow.js
index 7af0d0a9..5ea6198b 100644
--- a/frontend/src/AngularWorkflow.js
+++ b/frontend/src/AngularWorkflow.js
@@ -160,7 +160,7 @@ const AngularWorkflow = (props) => {
const [elements, setElements] = useState([])
const { start, stop } = useInterval({
- duration: 5000,
+ duration: 2500,
startImmediate: false,
callback: () => {
fetchUpdates()
@@ -285,6 +285,7 @@ const AngularWorkflow = (props) => {
currentnode = currentnode[0]
const outgoingEdges = currentnode.outgoers('edge')
const incomingEdges = currentnode.incomers('edge')
+ console.log("NODE: ", currentnode)
//currentnode.removeClass('success-highlight failure-highlight executing-highlight')
switch (item.status) {
@@ -335,7 +336,19 @@ const AngularWorkflow = (props) => {
// FIXME - add outgoing nodes to executing
//const outgoingNodes = outgoingEdges.find().data().target
if (outgoingEdges.length > 0) {
- outgoingEdges.addClass('success-highlight')
+ for (var i = 0; i < outgoingEdges.length; i++) {
+ const edge = outgoingEdges[i]
+ const targetnode = cy.getElementById(edge.data().target)
+ if (targetnode !== undefined && !targetnode.classes().includes("success-highlight") && !targetnode.classes().includes("failure-highlight")) {
+ targetnode.removeClass('not-executing-highlight')
+ targetnode.removeClass('success-highlight')
+ targetnode.removeClass('failure-highlight')
+ targetnode.removeClass('awaiting-data-highlight')
+ targetnode.addClass('executing-highlight')
+ }
+ }
+
+ // const outgoingEdges = currentnode.outgoers('edge')
}
break
case "FAILURE":
@@ -359,6 +372,7 @@ const AngularWorkflow = (props) => {
currentnode.addClass('awaiting-data-highlight')
break
default:
+ console.log("DEFAULT?")
break
}
}
@@ -501,6 +515,7 @@ const AngularWorkflow = (props) => {
cy.elements().removeClass('success-highlight failure-highlight executing-highlight')
firstnode[0].addClass('executing-highlight')
+
return true
}
@@ -730,8 +745,13 @@ const AngularWorkflow = (props) => {
}
const onEdgeSelect = (event) => {
- setSelectedEdgeIndex(workflow.branches.findIndex(data => data.id === event.target.data()["id"]))
- setSelectedEdge(event.target.data())
+ const triggercheck = workflow.triggers.find(trigger => trigger.id === event.target.data()["source"])
+ if (triggercheck === undefined) {
+ setSelectedEdgeIndex(workflow.branches.findIndex(data => data.id === event.target.data()["id"]))
+ setSelectedEdge(event.target.data())
+ } else {
+ alert.info("Can't edit branches from triggers")
+ }
}
const onNodeSelect = (event) => {
@@ -759,14 +779,13 @@ const AngularWorkflow = (props) => {
env = environments[0]
}
- console.log(curapp)
+ console.log("Selected: ", data.id)
setRequiresAuthentication(curapp.authentication.required)
setSelectedApp(curapp)
setSelectedActionEnvironment(env)
setSelectedActionName(curaction.name)
setSelectedAction(curaction)
- console.timeEnd("ACTIONSTART")
} else if (data.type === "TRIGGER") {
//console.log("Should handle trigger "+data.triggertype)
//console.log(data)
@@ -1626,6 +1645,8 @@ const AngularWorkflow = (props) => {
:
+
+ const color = trigger.is_valid ? "green" : "orange"
return(
{handleTriggerDrag(e, trigger)}}
@@ -1637,7 +1658,7 @@ const AngularWorkflow = (props) => {
}}
>
{}}>
-
+
@@ -2235,7 +2256,6 @@ const AngularWorkflow = (props) => {
// Remap data based on variant
if (data.variant === "STATIC_VALUE") {
staticcolor = "#f85a3e"
- console.log("DATA IS STATIC")
} else if (data.variant === "ACTION_RESULT") {
// Gets the parents of the current node
var parents = getParents(selectedAction)
@@ -2706,7 +2726,6 @@ const AngularWorkflow = (props) => {
placeholder={placeholder}
onClick={() => {
console.log("CHANGE FIELD")
- setMultiline(!multiline)
}}
onBlur={(e) => {
changeActionVariable(data.action_field, e.target.value)
diff --git a/frontend/src/App.js b/frontend/src/App.js
index ce7b860b..3f1d759d 100644
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -39,6 +39,7 @@ import { positions, Provider } from "react-alert";
// Testing - localhost
//const globalUrl = "http://192.168.3.6:5001"
+//console.log("HOST: ", process.env)
// Production - backend proxy forwarding in nginx
diff --git a/frontend/src/defaultCytoscapeStyle.js b/frontend/src/defaultCytoscapeStyle.js
index 8cce248c..5621a377 100644
--- a/frontend/src/defaultCytoscapeStyle.js
+++ b/frontend/src/defaultCytoscapeStyle.js
@@ -114,8 +114,8 @@ const data = [{
{
selector: '.success-highlight',
css: {
- 'background-color': '#399645',
- 'border-color': '#399645',
+ 'background-color': '#41dcab',
+ 'border-color': '#41dcab',
'border-width': '5px',
'transition-property': 'background-color',
'transition-duration': '0.5s',
@@ -136,6 +136,7 @@ const data = [{
css: {
'background-color': 'grey',
'border-color': 'grey',
+ 'border-width': '5px',
'transition-property': '#ffef47',
'transition-duration': '0.25s',
},
diff --git a/functions/onprem/orborus/orborus.go b/functions/onprem/orborus/orborus.go
index 91a8e22e..9cfaf5bd 100644
--- a/functions/onprem/orborus/orborus.go
+++ b/functions/onprem/orborus/orborus.go
@@ -29,6 +29,11 @@ var baseimagename = "frikky/shuffle"
var dockerApiVersion = os.Getenv("DOCKER_API_VERSION")
var environment = os.Getenv("ENVIRONMENT_NAME")
var orgId = os.Getenv("ORG_ID")
+
+// Starts jobs in bulk, so this could be increased
+var sleepTime = 3
+
+// Timeout if somethinc rashes
var workerTimeout = 600
type ExecutionRequestWrapper struct {
@@ -173,7 +178,6 @@ func main() {
log.Printf("--- Finished configuring docker environment ---\n")
// FIXME - time limit
- sleepTime := 10
client := &http.Client{}
fullUrl := fmt.Sprintf("%s/api/v1/workflows/queue", baseUrl)
diff --git a/functions/onprem/worker/worker.bin b/functions/onprem/worker/worker.bin
index ae579699..a5a7a7cf 100755
Binary files a/functions/onprem/worker/worker.bin and b/functions/onprem/worker/worker.bin differ
diff --git a/functions/onprem/worker/worker.go b/functions/onprem/worker/worker.go
index 310a7f1d..63dd0480 100644
--- a/functions/onprem/worker/worker.go
+++ b/functions/onprem/worker/worker.go
@@ -22,6 +22,7 @@ import (
var environment = os.Getenv("ENVIRONMENT_NAME")
var baseUrl = os.Getenv("BASE_URL")
var baseimagename = "frikky/shuffle"
+var sleepTime = 2
type Condition struct {
AppName string `json:"app_name"`
@@ -210,11 +211,11 @@ type WorkflowAppAction struct {
}
// removes every container except itself (worker)
-func shutdown(executionId string) {
+func shutdown(executionId, workflowId string) {
dockercli, err := dockerclient.NewEnvClient()
if err != nil {
log.Printf("Unable to create docker client: %s", err)
- shutdown(executionId)
+ os.Exit(3)
}
containerOptions := types.ContainerListOptions{
@@ -243,9 +244,9 @@ func shutdown(executionId string) {
}
// FIXME: Add an API call to the backend
- workflowid := "d0496ad4-d682-4506-bbf9-f926358a4b2a"
- fullUrl := fmt.Sprintf("%s/api/v1/workflows/%s/executions/%s/abort", baseUrl, workflowid, executionId)
- log.Printf("ShutdownURL: %s", fullUrl)
+ // fmt.Sprintf("AUTHORIZATION=%s", workflowExecution.Authorization),
+
+ fullUrl := fmt.Sprintf("%s/api/v1/workflows/%s/executions/%s/abort", baseUrl, workflowId, executionId)
req, err := http.NewRequest(
"GET",
fullUrl,
@@ -256,6 +257,8 @@ func shutdown(executionId string) {
log.Println("Failed building request: %s", err)
}
+ req.Header.Add("Content-Type", "application/json")
+ req.Header.Add("Authorization", authorization)
client := &http.Client{}
_, err = client.Do(req)
if err != nil {
@@ -339,12 +342,11 @@ func handleExecution(client *http.Client, req *http.Request, workflowExecution W
dockercli, err := dockerclient.NewEnvClient()
if err != nil {
log.Printf("Unable to create docker client: %s", err)
- shutdown(workflowExecution.ExecutionId)
+ shutdown(workflowExecution.ExecutionId, workflowExecution.Workflow.ID)
}
onpremApps := []string{}
startAction := workflowExecution.Workflow.Start
- sleepTime := 5
toExecuteOnprem := []string{}
parents := map[string][]string{}
children := map[string][]string{}
@@ -614,13 +616,13 @@ func handleExecution(client *http.Client, req *http.Request, workflowExecution W
if workflowExecution.Status == "FINISHED" || workflowExecution.Status == "SUCCESS" {
log.Printf("Workflow %s is finished. Exiting worker.", workflowExecution.ExecutionId)
- shutdown(workflowExecution.ExecutionId)
+ shutdown(workflowExecution.ExecutionId, workflowExecution.Workflow.ID)
}
log.Printf("Status: %s, Results: %d, actions: %d", workflowExecution.Status, len(workflowExecution.Results), len(workflowExecution.Workflow.Actions))
if workflowExecution.Status != "EXECUTING" {
log.Printf("Exiting as worker execution has status %s!", workflowExecution.Status)
- shutdown(workflowExecution.ExecutionId)
+ shutdown(workflowExecution.ExecutionId, workflowExecution.Workflow.ID)
}
if len(workflowExecution.Results) == len(workflowExecution.Workflow.Actions) {
@@ -689,7 +691,7 @@ func handleExecution(client *http.Client, req *http.Request, workflowExecution W
if shutdownCheck {
log.Println("BREAKING BECAUSE RESULTS IS SAME LENGTH AS ACTIONS. SHOULD CHECK ALL RESULTS FOR WHETHER THEY'RE DONE")
- shutdown(workflowExecution.ExecutionId)
+ shutdown(workflowExecution.ExecutionId, workflowExecution.Workflow.ID)
}
}
time.Sleep(time.Duration(sleepTime) * time.Second)
@@ -740,12 +742,12 @@ func main() {
if len(authorization) == 0 {
log.Println("No AUTHORIZATION key set in env")
- shutdown(executionId)
+ shutdown(executionId, "")
}
if len(executionId) == 0 {
log.Println("No EXECUTIONID key set in env")
- shutdown(executionId)
+ shutdown(executionId, "")
}
// FIXME - tmp
@@ -759,7 +761,7 @@ func main() {
if err != nil {
log.Println("Failed making request builder")
- shutdown(executionId)
+ shutdown(executionId, "")
}
for {
@@ -793,7 +795,7 @@ func main() {
if workflowExecution.Status == "FINISHED" || workflowExecution.Status == "SUCCESS" {
log.Printf("Workflow %s is finished. Exiting worker.", workflowExecution.ExecutionId)
- shutdown(executionId)
+ shutdown(executionId, workflowExecution.Workflow.ID)
}
if workflowExecution.Status == "EXECUTING" || workflowExecution.Status == "RUNNING" {
@@ -801,11 +803,11 @@ func main() {
err = handleExecution(client, req, workflowExecution)
if err != nil {
log.Printf("Workflow %s is finished: %s", workflowExecution.ExecutionId, err)
- shutdown(executionId)
+ shutdown(executionId, workflowExecution.Workflow.ID)
}
} else {
log.Printf("Workflow %s has status %s. Exiting worker.", workflowExecution.ExecutionId, workflowExecution.Status)
- shutdown(executionId)
+ shutdown(executionId, workflowExecution.Workflow.ID)
}
//log.Println(string(body))