Fixed Theme name issue and updated backend to 0.4.17

This commit is contained in:
frikky
2023-05-30 17:14:00 +02:00
parent 012371c922
commit c98aedb66f
37 changed files with 139 additions and 93 deletions
+1 -1
View File
@@ -66,7 +66,7 @@ SHUFFLE_BASE_IMAGE_TAG_SUFFIX="-1.1.0"
SHUFFLE_CONTAINER_AUTO_CLEANUP=false
SHUFFLE_ELASTIC=true
SHUFFLE_LOGS_DISABLED=false
SHUFFLE_CHAT_DISABLED=false # Controls support chat
SHUFFLE_CHAT_DISABLED=false # Controls support chat
SHUFFLE_RERUN_SCHEDULE=300
SHUFFLE_DISABLE_RERUN_AND_ABORT=false
SHUFFLE_WORKER_SERVER_URL= # Definition in case Worker & Orborus is talking to the wrong server
+3 -3
View File
@@ -1,10 +1,10 @@
#!/bin/sh
docker stop shuffle-backend
docker rm shuffle-backend
docker rmi ghcr.io/shuffle/shuffle-backend:latest
docker rmi ghcr.io/shuffle/shuffle-backend:nightly
docker build . -t ghcr.io/shuffle/shuffle-backend:latest
#docker push ghcr.io/shuffle/shuffle-backend:latest
docker build . -t ghcr.io/shuffle/shuffle-backend:nightly
docker push ghcr.io/shuffle/shuffle-backend:nightly
echo "Starting server"
#docker run -it \
+1 -1
View File
@@ -19,7 +19,7 @@ require (
github.com/gorilla/mux v1.8.0
github.com/h2non/filetype v1.1.3
github.com/satori/go.uuid v1.2.0
github.com/shuffle/shuffle-shared v0.4.14
github.com/shuffle/shuffle-shared v0.4.17
golang.org/x/crypto v0.3.0
google.golang.org/api v0.103.0
google.golang.org/appengine v1.6.7
+1 -1
View File
@@ -400,7 +400,7 @@ func handleGetWorkflowqueue(resp http.ResponseWriter, request *http.Request) {
// Add to start of org.Priorities
org.Priorities = append(org.Priorities, shuffle.Priority{
Name: fmt.Sprintf("High CPU in environment %s", orgId),
Description: fmt.Sprintf("The environment %s has been using more than %d percent CPU.", orgId, percentageCheck),
Description: fmt.Sprintf("The environment %s has been using more than %d percent CPU. This indicates you may need to look at scaling.", orgId, percentageCheck),
Type: "scale",
Active: true,
URL: fmt.Sprintf("/admin?tab=environments"),
+1 -1
View File
@@ -3,7 +3,7 @@ import React, { useState, useEffect } from 'react';
import CytoscapeComponent from 'react-cytoscapejs';
import frameworkStyle from '../frameworkStyle.jsx';
import { v4 as uuidv4 } from "uuid";
import theme from '../theme';
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
import AppSearch from '../components/Appsearch.jsx';
+1 -1
View File
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import theme from '../theme';
import theme from '../theme.jsx';
import AppSearch from './Appsearch.jsx';
import {
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
import {
Tooltip,
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import { v4 as uuidv4 } from "uuid";
+1 -1
View File
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from "react";
import ReactGA from 'react-ga4';
import theme from "../theme";
import theme from "../theme.jsx";
import { useTheme } from "@material-ui/core/styles";
import {
+23 -16
View File
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
import theme from "../theme";
import theme from "../theme.jsx";
import {
Tooltip,
Divider,
@@ -48,9 +48,10 @@ const CacheView = (props) => {
const [listCache, setListCache] = React.useState([]);
const [addCache, setAddCache] = React.useState("");
const [modalOpen, setModalOpen] = React.useState(false);
const [key,setKey]= React.useState("");
const [key, setKey]= React.useState("");
const [value, setValue]= React.useState("");
const [cacheInput, setCacheInput]= React.useState('');
const [cacheInput, setCacheInput]= React.useState("");
const [cacheCursor, setCacheCursor]= React.useState("");
const alert = useAlert();
useEffect(() => {
@@ -67,20 +68,26 @@ const CacheView = (props) => {
},
credentials: "include",
})
.then((response) => {
if (response.status !== 200) {
console.log("Status not 200 for apps :O!");
return;
}
.then((response) => {
if (response.status !== 200) {
console.log("Status not 200 for apps :O!");
return;
}
return response.json();
})
.then((responseJson) => {
setListCache(responseJson);
})
.catch((error) => {
alert.error(error.toString());
});
return response.json();
})
.then((responseJson) => {
if (responseJson.success === true) {
setListCache(responseJson.keys);
}
if (responseJson.cursor !== undefined && responseJson.cursor !== null && responseJson.cursor !== "") {
setCacheCursor(responseJson.cursor);
}
})
.catch((error) => {
alert.error(error.toString());
});
};
// const getCacheList = (orgId) => {
+1 -1
View File
@@ -1,5 +1,5 @@
import React, { useEffect, useContext } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import { isMobile } from "react-device-detect"
import ChipInput from "material-ui-chip-input";
import UsecaseSearch from "../components/UsecaseSearch.jsx"
+1 -1
View File
@@ -32,7 +32,7 @@ import {
import { useAlert } from "react-alert";
import Dropzone from "../components/Dropzone.jsx";
import CodeEditor from "../components/ShuffleCodeEditor.jsx";
import theme from "../theme";
import theme from "../theme.jsx";
const Files = (props) => {
const { globalUrl, userdata, serverside, selectedOrganization, isCloud, } = props;
+1 -1
View File
@@ -77,7 +77,7 @@ const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, ho
textDecoration: "none",
}
const isCloud = serverside === true ? true : window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const isCloud = serverside === true || typeof window === 'undefined' ? true : window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const clearNotifications = () => {
// Don't really care about the logout
+3 -8
View File
@@ -1,7 +1,7 @@
import React, { useRef, useState, useEffect, useLayoutEffect } from "react";
import { useParams, useNavigate, Link } from "react-router-dom";
import { useTheme } from "@material-ui/core/styles";
import theme from '../theme';
import theme from '../theme.jsx';
import { v4 as uuidv4 } from "uuid";
import {
@@ -90,7 +90,6 @@ const AuthenticationOauth2 = (props) => {
appAuthentication,
setSelectedAction,
setNewAppAuth,
setAuthenticationModalOpen,
isCloud,
autoAuth,
authButtonOnly,
@@ -118,7 +117,7 @@ const AuthenticationOauth2 = (props) => {
const [oauthUrl, setOauthUrl] = React.useState("");
const [buttonClicked, setButtonClicked] = React.useState(false);
const [offlineAccess, setOfflineAccess] = React.useState(false);
const [offlineAccess, setOfflineAccess] = React.useState(true);
const allscopes = authenticationType.scope !== undefined ? authenticationType.scope : [];
@@ -365,9 +364,6 @@ const AuthenticationOauth2 = (props) => {
if (newwin.closed) {
console.log("Closing?")
if (setAuthenticationModalOpen !== undefined) {
setAuthenticationModalOpen(false)
}
setButtonClicked(false);
clearInterval(timer);
@@ -375,7 +371,7 @@ const AuthenticationOauth2 = (props) => {
//
if (getAppAuthentication !== undefined) {
getAppAuthentication(true, true);
getAppAuthentication(true, true, true);
}
} else {
console.log("Not closed")
@@ -574,7 +570,6 @@ const AuthenticationOauth2 = (props) => {
return autoAuthButton
}
console.log("Window: ", window.location)
return (
<div>
<DialogTitle>
+1 -1
View File
@@ -7,7 +7,7 @@ import { sortByKey } from "../views/AngularWorkflow.jsx";
import { useTheme } from "@material-ui/core/styles";
import NestedMenuItem from "material-ui-nested-menu-item";
import { useAlert } from "react-alert";
import theme from '../theme';
import theme from '../theme.jsx';
import {
ButtonGroup,
+1 -1
View File
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useLayoutEffect } from "react";
import * as cytoscape from "cytoscape";
import CytoscapeComponent from "react-cytoscapejs";
import cystyle from "../defaultCytoscapeStyle";
import cystyle from "../defaultCytoscapeStyle.jsx";
const surfaceColor = "#27292D";
const CytoscapeWrapper = (props) => {
@@ -14,7 +14,7 @@ import {
Button,
} from '@material-ui/core';
import theme from '../theme';
import theme from '../theme.jsx';
import Checkbox from '@mui/material/Checkbox';
import { orange } from '@mui/material/colors';
import { isMobile } from "react-device-detect"
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import ReactGA from 'react-ga4';
import theme from '../theme';
import theme from '../theme.jsx';
import PaperComponent from "../components/PaperComponent.jsx"
import UsecaseSearch, { usecaseTypes } from "../components/UsecaseSearch.jsx"
+1 -1
View File
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import { useNavigate, Link } from "react-router-dom";
import { useAlert } from "react-alert";
import ConfigureWorkflow from "../components/ConfigureWorkflow.jsx";
+1 -1
View File
@@ -14,7 +14,7 @@ import LightbulbIcon from '@mui/icons-material/Lightbulb';
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
import theme from '../theme';
import theme from '../theme.jsx';
import {
Fade,
IconButton,
+15 -14
View File
@@ -1,5 +1,5 @@
import React, { useState, useEffect, useLayoutEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import {
Chip,
@@ -30,19 +30,6 @@ const workflowActionStyle = {
justifyContent: "space-between",
}
const paperAppStyle = {
minHeight: 130,
maxHeight: 130,
overflow: "hidden",
width: "100%",
color: "white",
backgroundColor: theme.palette.surfaceColor,
padding: "12px 12px 0px 15px",
borderRadius: 5,
display: "flex",
boxSizing: "border-box",
position: "relative",
}
const chipStyle = {
backgroundColor: "#3d3f43",
@@ -70,6 +57,20 @@ const WorkflowPaper = (props) => {
//console.log("Workflow: ", data)
var boxColor = "#86c142";
const paperAppStyle = {
minHeight: 130,
maxHeight: 130,
overflow: "hidden",
width: "100%",
color: "white",
backgroundColor: theme.palette.surfaceColor,
padding: "12px 12px 0px 15px",
borderRadius: 5,
display: "flex",
boxSizing: "border-box",
position: "relative",
}
var parsedName = data.name;
if (
parsedName !== undefined &&
+1 -1
View File
@@ -1,5 +1,5 @@
import React, { useState, useEffect, useLayoutEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import {
Chip,
+1 -1
View File
@@ -6,7 +6,7 @@ import countries from "../components/Countries.jsx";
import CodeEditor from "../components/ShuffleCodeEditor.jsx";
import getLocalCodeData from "../components/ShuffleCodeEditor.jsx";
import CacheView from "../components/CacheView.jsx";
import theme from "../theme";
import theme from "../theme.jsx";
import AddIcon from "@mui/icons-material/Add";
import ClearIcon from '@mui/icons-material/Clear';
import StorageIcon from '@mui/icons-material/Storage';
+31 -10
View File
@@ -13,7 +13,7 @@ import ReactJson from "react-json-view";
import NestedMenuItem from "material-ui-nested-menu-item";
import ReactMarkdown from "react-markdown";
import { useAlert } from "react-alert";
import theme from '../theme';
import theme from '../theme.jsx';
import { isMobile } from "react-device-detect"
import aa from 'search-insights'
import Drift from "react-driftjs";
@@ -128,7 +128,7 @@ import undoRedo from "cytoscape-undo-redo";
import Draggable from "react-draggable";
import cytoscapestyle from "../defaultCytoscapeStyle";
import cytoscapestyle from "../defaultCytoscapeStyle.jsx";
import cxtmenu from "cytoscape-cxtmenu";
import { validateJson, GetIconInfo } from "./Workflows.jsx";
@@ -1710,7 +1710,7 @@ const AngularWorkflow = (defaultprops) => {
//"Testing",
const internalIds = ["Shuffle Tools", "http", "email"];
const getAppAuthentication = (reset, updateAction) => {
const getAppAuthentication = (reset, updateAction, closeMenu) => {
fetch(globalUrl + "/api/v1/apps/authentication", {
method: "GET",
headers: {
@@ -1727,6 +1727,7 @@ const AngularWorkflow = (defaultprops) => {
return response.json();
})
.then((responseJson) => {
var shouldClose = false
if (responseJson.success) {
var newauth = [];
for (let authkey in responseJson.data) {
@@ -1757,13 +1758,18 @@ const AngularWorkflow = (defaultprops) => {
for (let authkey in tmpAuth) {
var item = tmpAuth[authkey];
//console.log("Got auth: ", item);
const newfields = {};
for (let filterkey in item.fields) {
newfields[item.fields[filterkey].key] = item.fields[filterkey].value;
}
item.fields = newfields;
if (item.app.name === selectedApp.name) {
const appname = selectedApp.name.toLowerCase().replace(" ", "_", -1)
const itemname = item.app.name.toLowerCase().replace(" ", "_", -1)
if (itemname === appname) {
authenticationOptions.push(item);
// Always becoming the last one
@@ -1772,14 +1778,19 @@ const AngularWorkflow = (defaultprops) => {
selectedAction.selectedAuthentication = item;
for (let actionkey in workflow.actions) {
if (workflow.actions[actionkey].app_name === selectedApp.name) {
const actionAppname = workflow.actions[actionkey].app_name.toLowerCase().replace(" ", "_", -1)
if (actionAppname === appname) {
workflow.actions[actionkey].selectedAuthentication = item;
workflow.actions[actionkey].authentication_id = item.id;
appUpdates = true;
}
}
}
}
} else {
//console.log("Not newer: ", item.edited, " vs ", latest)
}
} else {
//console.log("Appname is wrong: ", appname, " vs ", itemname)
}
}
selectedAction.authentication = authenticationOptions;
@@ -1799,18 +1810,28 @@ const AngularWorkflow = (defaultprops) => {
setWorkflow(workflow);
saveWorkflow(workflow);
alert.info("Added and updated authentication!");
shouldClose = true
} else {
console.log("Closing auth modal? FAIL")
alert.error("Failed to find new authentication. See details in Oauth2 popup window where auth was attempted.");
shouldClose = false
}
} else {
alert.info("No authentication to update");
}
}
} else {
shouldClose = true
}
} else {
setAppAuthentication([]);
shouldClose = true
}
// Auto-closing if changes were made
if (closeMenu === true && shouldClose === true) {
setAuthenticationModalOpen(false);
}
})
.catch((error) => {
setAppAuthentication([]);
@@ -3364,7 +3385,7 @@ const AngularWorkflow = (defaultprops) => {
alert.error("Failed to auto-activate the app. Go to /apps and activate it.")
} else {
if (refresh === true) {
alert.success("App activated for your organization! Refresh the page to use the app.")
//alert.success("App activated for your organization! Refresh the page to use the app.")
getApps()
}
}
@@ -14760,7 +14781,7 @@ const AngularWorkflow = (defaultprops) => {
{curapp === null ? null : (
<img
alt={selectedResult.action.app_name}
src={selectedResult === undefined ? theme.palette.defaultImage : selectedResult.action.app_name === "shuffle-subflow" ? triggers[4].large_image : selectedResult.action.app_name === "User Input" ? triggers[5].large_image : selectedResult.action.large_image}
src={selectedResult === undefined ? theme.palette.defaultImage : selectedResult.action.app_name === "shuffle-subflow" ? triggers[4].large_image : selectedResult.action.app_name === "User Input" ? triggers[5].large_image : selectedResult.action.large_image !== undefined && selectedResult.action.large_image !== null && selectedResult.action.large_image !== "" ? selectedResult.action.large_image : curapp.large_image}
style={{
marginRight: 20,
width: imgsize,
+1 -1
View File
@@ -4,7 +4,7 @@ import AppFramework from "../components/AppFramework.jsx";
import { makeStyles, useTheme } from "@material-ui/core/styles";
// nodejs library that concatenates classes
import classNames from "classnames";
import theme from '../theme';
import theme from '../theme.jsx';
import { useNavigate, Link, useParams } from "react-router-dom";
// react plugin used to create charts
+1 -1
View File
@@ -3,7 +3,7 @@ import { useInterval } from "react-powerhooks";
import { makeStyles, useTheme } from "@material-ui/core/styles";
// nodejs library that concatenates classes
import classNames from "classnames";
import theme from '../theme';
import theme from '../theme.jsx';
import { useNavigate, Link, useParams } from "react-router-dom";
// react plugin used to create charts
+1 -1
View File
@@ -4,7 +4,7 @@ import ReactDOM from "react-dom"
import AppFramework from "../components/AppFramework.jsx";
import { useAlert } from "react-alert";
import { Link, useParams } from "react-router-dom";
import theme from '../theme';
import theme from '../theme.jsx';
import {
Button,
+18 -10
View File
@@ -6,7 +6,7 @@ import { useInterval } from "react-powerhooks";
import { makeStyles } from '@material-ui/styles';
import { useNavigate, Link, useParams } from "react-router-dom";
import {isMobile} from "react-device-detect";
import theme from '../theme';
import theme from '../theme.jsx';
import { validateJson, GetIconInfo } from "./Workflows.jsx";
import { green, yellow } from "./AngularWorkflow.jsx";
@@ -39,15 +39,6 @@ const bodyDivStyle = {
position: "relative",
}
const boxStyle = {
color: "white",
paddingLeft: "30px",
paddingRight: "30px",
paddingBottom: "30px",
paddingTop: "30px",
backgroundColor: theme.palette.surfaceColor,
marginBottom: 150,
}
const RunWorkflow = (defaultprops) => {
const { globalUrl, isLoaded, isLoggedIn, setIsLoggedIn, setCookie, register, serverside } = defaultprops;
@@ -65,11 +56,25 @@ const RunWorkflow = (defaultprops) => {
const [apps, setApps] = React.useState([]);
const [buttonClicked, setButtonClicked] = React.useState("");
const boxStyle = {
color: "white",
paddingLeft: "30px",
paddingRight: "30px",
paddingBottom: "30px",
paddingTop: "30px",
backgroundColor: theme.palette.surfaceColor,
marginBottom: 150,
}
const params = useParams();
var props = JSON.parse(JSON.stringify(defaultprops))
props.match = {}
props.match.params = params
const defaultTitle = "Run Workflow"
if (document != undefined && document.title != defaultTitle) {
document.title = defaultTitle
}
const parsedsearch = serverside === true ? "" : window.location.search
if (serverside !== true) {
@@ -513,6 +518,9 @@ const RunWorkflow = (defaultprops) => {
if (responseJson.sync_features === undefined || responseJson.sync_features === null) {
}
if (document != undefined && document.title != defaultTitle) {
document.title = responseJson.name + " - " + defaultTitle
}
setSelectedOrganization(responseJson)
}
})
+1 -1
View File
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from "react";
import theme from '../theme';
import theme from '../theme.jsx';
import {isMobile} from "react-device-detect";
import AppGrid from "../components/AppGrid.jsx"
import WorkflowGrid from "../components/WorkflowGrid.jsx"
+1 -1
View File
@@ -1,7 +1,7 @@
import React, { useState } from "react";
import { Typography, CircularProgress } from "@material-ui/core";
import theme from '../theme';
import theme from '../theme.jsx';
const SetAuthentication = (props) => {
const { globalUrl } = props;
+1 -1
View File
@@ -17,7 +17,7 @@ import {
CardContent,
CardActionArea,
} from '@mui/material';
import theme from '../theme';
import theme from '../theme.jsx';
import { useNavigate, Link } from "react-router-dom";
import Drift from "react-driftjs";
+7 -5
View File
@@ -94,7 +94,7 @@ import { useNavigate, Link } from "react-router-dom";
import { useAlert } from "react-alert";
import ChipInput from "material-ui-chip-input";
import { v4 as uuidv4 } from "uuid";
import theme from "../theme";
import theme from "../theme.jsx";
const inputColor = "#383B40";
const surfaceColor = "#27292D";
@@ -3447,8 +3447,8 @@ const Workflows = (props) => {
</div>
) : null}
{/*userdata.priorities !== undefined && userdata.priorities !== null && userdata.priorities.length > 0 ?
<div style={{width: "100%", border: "1px solid rgba(255,255,255,0.1)", borderRadius: theme.palette.borderRadius, marginTop: 10, marginBottom: 10, padding: 15, textAlign: "center", height: 70, textAlign: "left", backgroundColor: theme.palette.surfaceColor, display: "flex", }}>
{userdata.priorities !== undefined && userdata.priorities !== null && userdata.priorities.length > 0 && userdata.priorities[0].name.includes("CPU") ?
<div style={{border: "1px solid rgba(255,255,255,0.1)", borderRadius: theme.palette.borderRadius, marginTop: 10, marginBottom: 10, padding: 15, textAlign: "center", height: 70, textAlign: "left", backgroundColor: theme.palette.surfaceColor, display: "flex", }}>
<div style={{flex: 2, overflow: "hidden",}}>
<Typography variant="body1" >
{userdata.priorities[0].name}
@@ -3459,14 +3459,16 @@ const Workflows = (props) => {
</div>
<div style={{flex: 1, display: "flex", marginLeft: 30, }}>
<Button style={{height: 50, borderRadius: 25, marginTop: 8, width: 200, }} variant="contained" color="secondary" onClick={() => {navigate(userdata.priorities[0].url)}}>
Continue
explore
</Button>
{/*
<Button style={{borderRadius: 25, width: 200, height: 50, marginTop: 8, }} variant="text" color="secondary">
Ignore
</Button>
*/}
</div>
</div>
: null*/}
: null}
<div style={{marginTop: 15, }}>
{view === "grid" ? (
+1 -1
View File
@@ -9,7 +9,7 @@ require (
github.com/mackerelio/go-osstat v0.2.3
github.com/satori/go.uuid v1.2.0
github.com/shirou/gopsutil v3.21.11+incompatible
github.com/shuffle/shuffle-shared v0.4.14
github.com/shuffle/shuffle-shared v0.4.17
)
require (
+2
View File
@@ -202,6 +202,8 @@ github.com/shuffle/shuffle-shared v0.4.11 h1:qTYQ/kGzKbbMGMrKL2OLoabIpQABdtMurmk
github.com/shuffle/shuffle-shared v0.4.11/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/shuffle/shuffle-shared v0.4.14 h1:jDhvGRdnwDDfsJaNdaww8LlXmjDAlVTHarcO4F+9vKs=
github.com/shuffle/shuffle-shared v0.4.14/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/shuffle/shuffle-shared v0.4.17 h1:56ll366bdmIJu/7GFqNC2XTjjl0SGBf430PSq+EB6Ro=
github.com/shuffle/shuffle-shared v0.4.17/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+8
View File
@@ -935,6 +935,13 @@ func main() {
}
}
// Handle Cleanup
// var cleanupEnv = strings.ToLower(os.Getenv("CLEANUP"))
// SHUFFLE_CONTAINER_AUTO_CLEANUP=false
if strings.ToLower(os.Getenv("SHUFFLE_CONTAINER_AUTO_CLEANUP")) == "true" {
cleanupEnv = "true"
}
workerTimeout := 600
if workerTimeoutEnv != "" {
tmpInt, err := strconv.Atoi(workerTimeoutEnv)
@@ -1173,6 +1180,7 @@ func main() {
if shuffle.ArrayContains(executionIds, execution.ExecutionId) {
log.Printf("[INFO] Execution already handled: %s", execution.ExecutionId)
toBeRemoved.Data = append(toBeRemoved.Data, execution)
continue
}
+1 -1
View File
@@ -11,7 +11,7 @@ require (
github.com/gorilla/mux v1.8.0
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/satori/go.uuid v1.2.0
github.com/shuffle/shuffle-shared v0.4.14
github.com/shuffle/shuffle-shared v0.4.17
)
require (
+2
View File
@@ -220,6 +220,8 @@ github.com/shuffle/shuffle-shared v0.4.2 h1:GzDAOHN4YMMLzRmmToyO/KSYDziRuEuxLhea
github.com/shuffle/shuffle-shared v0.4.2/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/shuffle/shuffle-shared v0.4.9 h1:mGCaLcSbrsQCy26pJXPlZAtitEzEEwqotGNjnsvOM/U=
github.com/shuffle/shuffle-shared v0.4.9/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/shuffle/shuffle-shared v0.4.17 h1:56ll366bdmIJu/7GFqNC2XTjjl0SGBf430PSq+EB6Ro=
github.com/shuffle/shuffle-shared v0.4.17/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=