Added ubuntu SDK wrapper
This commit is contained in:
@@ -59,6 +59,7 @@ SHUFFLE_BASE_IMAGE_TAG_SUFFIX="-0.8.80"
|
|||||||
SHUFFLE_CONTAINER_AUTO_CLEANUP=false
|
SHUFFLE_CONTAINER_AUTO_CLEANUP=false
|
||||||
SHUFFLE_ELASTIC=true
|
SHUFFLE_ELASTIC=true
|
||||||
SHUFFLE_LOGS_DISABLED=false
|
SHUFFLE_LOGS_DISABLED=false
|
||||||
|
SHUFFLE_CHAT_DISABLED=false
|
||||||
|
|
||||||
# DATABASE CONFIGURATIONS
|
# DATABASE CONFIGURATIONS
|
||||||
DATASTORE_EMULATOR_HOST=shuffle-database:8000
|
DATASTORE_EMULATOR_HOST=shuffle-database:8000
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
FROM ubuntu as base
|
||||||
|
|
||||||
|
FROM base as builder
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get dist-upgrade -y
|
||||||
|
RUN apt install build-essential libffi-dev musl-dev openssl python3 python3-pip -y
|
||||||
|
|
||||||
|
RUN mkdir /install
|
||||||
|
WORKDIR /install
|
||||||
|
|
||||||
|
COPY requirements.txt /requirements.txt
|
||||||
|
RUN pip install --prefix="/install" -r /requirements.txt
|
||||||
|
|
||||||
|
FROM base
|
||||||
|
|
||||||
|
COPY --from=builder /install /usr/local
|
||||||
|
COPY __init__.py /app/walkoff_app_sdk/__init__.py
|
||||||
|
COPY app_base.py /app/walkoff_app_sdk/app_base.py
|
||||||
@@ -2494,7 +2494,7 @@ class AppBase:
|
|||||||
|
|
||||||
# FIXME: Check if the previous node has a result or not
|
# FIXME: Check if the previous node has a result or not
|
||||||
|
|
||||||
self.logger.info("[DEBUG] Relevant conditions: %s" % branch["conditions"])
|
#self.logger.info("[DEBUG] Relevant conditions: %s" % branch["conditions"])
|
||||||
successful_conditions = []
|
successful_conditions = []
|
||||||
failed_conditions = []
|
failed_conditions = []
|
||||||
successful_conditions = 0
|
successful_conditions = 0
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
### DEFAULT
|
### DEFAULT
|
||||||
NAME=shuffle-app_sdk
|
NAME=shuffle-app_sdk
|
||||||
VERSION=0.9.67
|
VERSION=0.9.69
|
||||||
|
|
||||||
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
|
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
|
||||||
docker build . -f Dockerfile -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION -t ghcr.io/frikky/$NAME:nightly
|
docker build . -f Dockerfile -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION -t ghcr.io/frikky/$NAME:nightly
|
||||||
@@ -16,6 +15,16 @@ docker push ghcr.io/frikky/$NAME:latest
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### UBUNTU
|
||||||
|
NAME=shuffle-app_sdk_ubuntu
|
||||||
|
docker build . -f Dockerfile_ubuntu -t frikky/shuffle:app_sdk_ubuntu -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION
|
||||||
|
docker push frikky/shuffle:app_sdk_ubuntu
|
||||||
|
docker push ghcr.io/frikky/$NAME:$VERSION
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### KALI ###
|
#### KALI ###
|
||||||
#NAME=shuffle-app_sdk_kali
|
#NAME=shuffle-app_sdk_kali
|
||||||
#docker build . -f Dockerfile_kali -t frikky/shuffle:app_sdk_kali -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION
|
#docker build . -f Dockerfile_kali -t frikky/shuffle:app_sdk_kali -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ func buildImageMemory(fs billy.Filesystem, tags []string, dockerfileFolder strin
|
|||||||
|
|
||||||
//log.Printf("RESPONSE: %#v", imageBuildResponse)
|
//log.Printf("RESPONSE: %#v", imageBuildResponse)
|
||||||
//log.Printf("Response: %#v", imageBuildResponse.Body)
|
//log.Printf("Response: %#v", imageBuildResponse.Body)
|
||||||
log.Printf("[DEBUG] IMAGERESPONSE: %#v", imageBuildResponse.Body)
|
//log.Printf("[DEBUG] IMAGERESPONSE: %#v", imageBuildResponse.Body)
|
||||||
|
|
||||||
if imageBuildResponse.Body != nil {
|
if imageBuildResponse.Body != nil {
|
||||||
defer imageBuildResponse.Body.Close()
|
defer imageBuildResponse.Body.Close()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module main
|
|||||||
|
|
||||||
go 1.16
|
go 1.16
|
||||||
|
|
||||||
//replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared
|
replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared
|
||||||
|
|
||||||
//replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi
|
//replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi
|
||||||
//replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch
|
//replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch
|
||||||
@@ -24,7 +24,7 @@ require (
|
|||||||
github.com/h2non/filetype v1.1.3
|
github.com/h2non/filetype v1.1.3
|
||||||
github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect
|
github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect
|
||||||
github.com/satori/go.uuid v1.2.0
|
github.com/satori/go.uuid v1.2.0
|
||||||
github.com/shuffle/shuffle-shared v0.2.28
|
github.com/shuffle/shuffle-shared v0.2.29
|
||||||
go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
|
go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
|
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
|
||||||
google.golang.org/api v0.65.0
|
google.golang.org/api v0.65.0
|
||||||
|
|||||||
@@ -1029,6 +1029,10 @@ func handleInfo(resp http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if os.Getenv("SHUFFLE_CHAT_DISABLED") == "true" {
|
||||||
|
chatDisabled = true
|
||||||
|
}
|
||||||
|
|
||||||
tutorialsFinished := []string{}
|
tutorialsFinished := []string{}
|
||||||
returnValue := shuffle.HandleInfo{
|
returnValue := shuffle.HandleInfo{
|
||||||
Success: true,
|
Success: true,
|
||||||
@@ -1044,8 +1048,9 @@ func handleInfo(resp http.ResponseWriter, request *http.Request) {
|
|||||||
Expiration: expiration.Unix(),
|
Expiration: expiration.Unix(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
EthInfo: userInfo.EthInfo,
|
EthInfo: userInfo.EthInfo,
|
||||||
Tutorials: tutorialsFinished,
|
Tutorials: tutorialsFinished,
|
||||||
|
ChatDisabled: chatDisabled,
|
||||||
}
|
}
|
||||||
|
|
||||||
returnData, err := json.Marshal(returnValue)
|
returnData, err := json.Marshal(returnValue)
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ func handleGetWorkflowqueueConfirm(resp http.ResponseWriter, request *http.Reque
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Add authentication?
|
// FIXME: Add authentication?
|
||||||
|
// Cloud has auth.
|
||||||
id := request.Header.Get("Org-Id")
|
id := request.Header.Get("Org-Id")
|
||||||
if len(id) == 0 {
|
if len(id) == 0 {
|
||||||
log.Printf("[ERROR] No Org-Id header set - confirm")
|
log.Printf("[ERROR] No Org-Id header set - confirm")
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- backend
|
- backend
|
||||||
backend:
|
backend:
|
||||||
#build: ./backend
|
build: ./backend
|
||||||
image: ghcr.io/frikky/shuffle-backend:nightly
|
image: ghcr.io/frikky/shuffle-backend:nightly
|
||||||
container_name: shuffle-backend
|
container_name: shuffle-backend
|
||||||
hostname: ${BACKEND_HOSTNAME}
|
hostname: ${BACKEND_HOSTNAME}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import { useAlert, positions, Provider } from "react-alert";
|
|||||||
import { isMobile } from "react-device-detect";
|
import { isMobile } from "react-device-detect";
|
||||||
|
|
||||||
import detectEthereumProvider from "@metamask/detect-provider";
|
import detectEthereumProvider from "@metamask/detect-provider";
|
||||||
|
import Drift from "react-driftjs";
|
||||||
|
|
||||||
// Production - backend proxy forwarding in nginx
|
// Production - backend proxy forwarding in nginx
|
||||||
var globalUrl = window.location.origin;
|
var globalUrl = window.location.origin;
|
||||||
@@ -275,6 +276,10 @@ const App = (message, props) => {
|
|||||||
position: positions.BOTTOM_LEFT,
|
position: positions.BOTTOM_LEFT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleFirstInteraction = (event) => {
|
||||||
|
console.log("First interaction: ", event)
|
||||||
|
}
|
||||||
|
|
||||||
const includedData =
|
const includedData =
|
||||||
window.location.pathname === "/home" ||
|
window.location.pathname === "/home" ||
|
||||||
window.location.pathname === "/features" ? (
|
window.location.pathname === "/features" ? (
|
||||||
@@ -299,6 +304,20 @@ const App = (message, props) => {
|
|||||||
getUserNotifications={getUserNotifications}
|
getUserNotifications={getUserNotifications}
|
||||||
setCurpath={setCurpath}
|
setCurpath={setCurpath}
|
||||||
/>
|
/>
|
||||||
|
{!isLoaded ? null :
|
||||||
|
<Drift
|
||||||
|
appId="zfk9i7w3yizf"
|
||||||
|
attributes={{
|
||||||
|
name: userdata.username === undefined || userdata.username === null ? "OSS user" : `${userdata.username} - OSS`,
|
||||||
|
}}
|
||||||
|
eventHandlers={[
|
||||||
|
{
|
||||||
|
event: "conversation:firstInteraction",
|
||||||
|
function: handleFirstInteraction
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
}
|
||||||
<Header
|
<Header
|
||||||
notifications={notifications}
|
notifications={notifications}
|
||||||
setNotifications={setNotifications}
|
setNotifications={setNotifications}
|
||||||
|
|||||||
@@ -453,7 +453,7 @@ const Header = (props) => {
|
|||||||
handleClose();
|
handleClose();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Link to="/docs/about" style={hrefStyle}>
|
<Link to="/docs" style={hrefStyle}>
|
||||||
<HelpOutlineIcon style={{marginRight: 5 }}/> About
|
<HelpOutlineIcon style={{marginRight: 5 }}/> About
|
||||||
</Link>
|
</Link>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
@@ -508,7 +508,7 @@ const Header = (props) => {
|
|||||||
<div style={{ display: "flex" }}>
|
<div style={{ display: "flex" }}>
|
||||||
<List style={{ display: "flex", flexDirect: "row" }} component="nav">
|
<List style={{ display: "flex", flexDirect: "row" }} component="nav">
|
||||||
<ListItem style={{ textAlign: "center", marginLeft: "0px" }}>
|
<ListItem style={{ textAlign: "center", marginLeft: "0px" }}>
|
||||||
<Link to="/docs/about" style={hrefStyle}>
|
<Link to="/docs" style={hrefStyle}>
|
||||||
<div
|
<div
|
||||||
onMouseOver={handleSoarHover}
|
onMouseOver={handleSoarHover}
|
||||||
onMouseOut={handleSoarHoverOut}
|
onMouseOut={handleSoarHoverOut}
|
||||||
@@ -585,7 +585,7 @@ const Header = (props) => {
|
|||||||
</ListItem>
|
</ListItem>
|
||||||
*/}
|
*/}
|
||||||
<ListItem style={{ textAlign: "center" }}>
|
<ListItem style={{ textAlign: "center" }}>
|
||||||
<Link to="/docs/about" style={hrefStyle}>
|
<Link to="/docs" style={hrefStyle}>
|
||||||
<div
|
<div
|
||||||
onMouseOver={handleDocsHover}
|
onMouseOver={handleDocsHover}
|
||||||
onMouseOut={handleDocsHoverOut}
|
onMouseOut={handleDocsHoverOut}
|
||||||
@@ -678,7 +678,6 @@ const Header = (props) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const imagesize = 22
|
const imagesize = 22
|
||||||
console.log("Org: ", data)
|
|
||||||
|
|
||||||
//if (data.creator_org !== undefined && data.creator_org !== null && data.creator_org.length > 0 && data.fixed !== true) {
|
//if (data.creator_org !== undefined && data.creator_org !== null && data.creator_org.length > 0 && data.fixed !== true) {
|
||||||
var skipOrg = false
|
var skipOrg = false
|
||||||
@@ -773,7 +772,7 @@ const Header = (props) => {
|
|||||||
</Link>
|
</Link>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
<ListItem style={{ textAlign: "center" }}>
|
<ListItem style={{ textAlign: "center" }}>
|
||||||
<Link to="/docs/about" style={hrefStyle}>
|
<Link to="/docs" style={hrefStyle}>
|
||||||
<div
|
<div
|
||||||
onMouseOver={handleSoarHover}
|
onMouseOver={handleSoarHover}
|
||||||
onMouseOut={handleSoarHoverOut}
|
onMouseOut={handleSoarHoverOut}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import {
|
|||||||
Drawer,
|
Drawer,
|
||||||
Button,
|
Button,
|
||||||
Paper,
|
Paper,
|
||||||
Grid,
|
|
||||||
Tabs,
|
Tabs,
|
||||||
InputAdornment,
|
InputAdornment,
|
||||||
Tab,
|
Tab,
|
||||||
|
|||||||
@@ -1810,6 +1810,7 @@ const AppCreator = (defaultprops) => {
|
|||||||
queryitem.name.toLowerCase() == "url" ||
|
queryitem.name.toLowerCase() == "url" ||
|
||||||
queryitem.name.toLowerCase() == "body" ||
|
queryitem.name.toLowerCase() == "body" ||
|
||||||
queryitem.name.toLowerCase() == "self" ||
|
queryitem.name.toLowerCase() == "self" ||
|
||||||
|
queryitem.name.toLowerCase() == "query" ||
|
||||||
queryitem.name.toLowerCase() == "ssl_verify" ||
|
queryitem.name.toLowerCase() == "ssl_verify" ||
|
||||||
queryitem.name.toLowerCase() == "queries" ||
|
queryitem.name.toLowerCase() == "queries" ||
|
||||||
queryitem.name.toLowerCase() == "headers" ||
|
queryitem.name.toLowerCase() == "headers" ||
|
||||||
|
|||||||
@@ -1,365 +0,0 @@
|
|||||||
import React, { useState } from "react";
|
|
||||||
import { BrowserView, MobileView } from "react-device-detect";
|
|
||||||
|
|
||||||
import Paper from "@material-ui/core/Paper";
|
|
||||||
import Button from "@material-ui/core/Button";
|
|
||||||
|
|
||||||
import TextField from "@material-ui/core/TextField";
|
|
||||||
|
|
||||||
import { useTheme } from "@material-ui/core/styles";
|
|
||||||
|
|
||||||
const bodyDivStyle = {
|
|
||||||
margin: "auto",
|
|
||||||
textAlign: "center",
|
|
||||||
width: "900px",
|
|
||||||
};
|
|
||||||
|
|
||||||
// Should be different if logged in :|
|
|
||||||
const Contact = (props) => {
|
|
||||||
const { globalUrl, isLoaded } = props;
|
|
||||||
|
|
||||||
const theme = useTheme();
|
|
||||||
|
|
||||||
const boxStyle = {
|
|
||||||
flex: "1",
|
|
||||||
marginLeft: "10px",
|
|
||||||
marginRight: "10px",
|
|
||||||
paddingLeft: "30px",
|
|
||||||
paddingRight: "30px",
|
|
||||||
paddingBottom: "30px",
|
|
||||||
paddingTop: "30px",
|
|
||||||
backgroundColor: theme.palette.surfaceColor,
|
|
||||||
display: "flex",
|
|
||||||
flexDirection: "column",
|
|
||||||
};
|
|
||||||
|
|
||||||
const bodyTextStyle = {
|
|
||||||
color: "#ffffff",
|
|
||||||
};
|
|
||||||
|
|
||||||
const [firstname, setFirstname] = useState("");
|
|
||||||
const [lastname, setLastname] = useState("");
|
|
||||||
const [title, setTitle] = useState("");
|
|
||||||
const [companyname, setCompanyname] = useState("");
|
|
||||||
const [email, setEmail] = useState("");
|
|
||||||
const [phone, setPhone] = useState("");
|
|
||||||
const [message, setMessage] = useState("");
|
|
||||||
|
|
||||||
const [formMessage, setFormMessage] = useState("");
|
|
||||||
|
|
||||||
const submitContact = () => {
|
|
||||||
const data = {
|
|
||||||
firstname: firstname,
|
|
||||||
lastname: lastname,
|
|
||||||
title: title,
|
|
||||||
companyname: companyname,
|
|
||||||
email: email,
|
|
||||||
phone: phone,
|
|
||||||
message: message,
|
|
||||||
};
|
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
fetch(globalUrl + "/api/v1/contact", {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
},
|
|
||||||
body: JSON.stringify(data),
|
|
||||||
})
|
|
||||||
.then((response) => response.json())
|
|
||||||
.then((response) => {
|
|
||||||
if (response.success === true) {
|
|
||||||
setFormMessage(response.message);
|
|
||||||
} else {
|
|
||||||
setFormMessage(
|
|
||||||
"Something went wrong. Please contact frikky@shuffler.io."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
console.log(response);
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
console.log(error);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// Random names for type & autoComplete. Didn't research :^)
|
|
||||||
const landingpageDataBrowser = (
|
|
||||||
<div>
|
|
||||||
<div style={bodyTextStyle}>
|
|
||||||
<h3 style={{ color: "#f85a3e" }}>Contact us</h3>
|
|
||||||
<h2>Lets talk!</h2>
|
|
||||||
</div>
|
|
||||||
<div style={{ display: "flex" }}>
|
|
||||||
<Paper style={boxStyle}>
|
|
||||||
<h2>Contact Details</h2>
|
|
||||||
<div style={{ flex: "1", display: "flex", flexDirection: "row" }}>
|
|
||||||
<TextField
|
|
||||||
required
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginRight: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="First Name"
|
|
||||||
type="firstname"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="firstname"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setFirstname(e.target.value)}
|
|
||||||
/>
|
|
||||||
<TextField
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginLeft: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="Last Name"
|
|
||||||
type="lastname"
|
|
||||||
id="standard"
|
|
||||||
autoComplete="lastname"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setLastname(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: "1", display: "flex", flexDirection: "row" }}>
|
|
||||||
<TextField
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginRight: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="Job Title"
|
|
||||||
type="jobtitle"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="jobtitle"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setTitle(e.target.value)}
|
|
||||||
/>
|
|
||||||
<TextField
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginLeft: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
type="companyname"
|
|
||||||
placeholder="Company Name"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="companyname"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setCompanyname(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: "1", display: "flex", flexDirection: "row" }}>
|
|
||||||
<TextField
|
|
||||||
required
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginRight: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="Email"
|
|
||||||
type="email"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="email"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setEmail(e.target.value)}
|
|
||||||
/>
|
|
||||||
<TextField
|
|
||||||
style={{
|
|
||||||
flex: "1",
|
|
||||||
marginLeft: "15px",
|
|
||||||
backgroundColor: theme.palette.inputColor,
|
|
||||||
}}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
type="phone"
|
|
||||||
placeholder="Phone number"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="phone"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setPhone(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: 1 }}>
|
|
||||||
<h2>Message</h2>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: 4 }}>
|
|
||||||
<TextField
|
|
||||||
multiline
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
style={{ flex: "1", backgroundColor: theme.palette.inputColor }}
|
|
||||||
rows="6"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="What can we help you with?"
|
|
||||||
id="filled-multiline-static"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setMessage(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<Button
|
|
||||||
disabled={email.length <= 0 || message.length <= 0}
|
|
||||||
style={{ width: "100%", height: "60px", marginTop: "10px" }}
|
|
||||||
variant="contained"
|
|
||||||
color="primary"
|
|
||||||
onClick={submitContact}
|
|
||||||
>
|
|
||||||
Submit
|
|
||||||
</Button>
|
|
||||||
<h3>{formMessage}</h3>
|
|
||||||
</Paper>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
|
|
||||||
const landingpageDataMobile = (
|
|
||||||
<div style={{ paddingBottom: "50px" }}>
|
|
||||||
<div style={{ color: "white", textAlign: "center" }}>
|
|
||||||
<h3 style={{ color: "#f85a3e" }}>Contact us</h3>
|
|
||||||
<h2>Lets talk!</h2>
|
|
||||||
</div>
|
|
||||||
<div style={{ display: "flex" }}>
|
|
||||||
<Paper style={boxStyle}>
|
|
||||||
<h2>Contact Details</h2>
|
|
||||||
<div style={{ flex: "1", display: "flex", flexDirection: "row" }}>
|
|
||||||
<TextField
|
|
||||||
required
|
|
||||||
style={{ flex: "1", backgroundColor: theme.palette.inputColor }}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="Name"
|
|
||||||
type="firstname"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="firstname"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setFirstname(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: "1", display: "flex", flexDirection: "row" }}>
|
|
||||||
<TextField
|
|
||||||
required
|
|
||||||
style={{ flex: "1", backgroundColor: theme.palette.inputColor }}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="Email"
|
|
||||||
type="email"
|
|
||||||
id="standard-required"
|
|
||||||
autoComplete="email"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setEmail(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: 1 }}>
|
|
||||||
<h2>Message</h2>
|
|
||||||
</div>
|
|
||||||
<div style={{ flex: 4 }}>
|
|
||||||
<TextField
|
|
||||||
multiline
|
|
||||||
style={{ flex: "1", backgroundColor: theme.palette.inputColor }}
|
|
||||||
InputProps={{
|
|
||||||
style: {
|
|
||||||
color: "white",
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
color="primary"
|
|
||||||
rows="6"
|
|
||||||
fullWidth={true}
|
|
||||||
placeholder="What can we help you with?"
|
|
||||||
id="filled-multiline-static"
|
|
||||||
margin="normal"
|
|
||||||
variant="outlined"
|
|
||||||
onChange={(e) => setMessage(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<Button
|
|
||||||
disabled={email.length <= 0 || message.length <= 0}
|
|
||||||
style={{ width: "100%", height: "60px", marginTop: "10px" }}
|
|
||||||
variant="contained"
|
|
||||||
color="primary"
|
|
||||||
onClick={submitContact}
|
|
||||||
>
|
|
||||||
Submit
|
|
||||||
</Button>
|
|
||||||
<h3>{formMessage}</h3>
|
|
||||||
</Paper>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
|
|
||||||
const loadedCheck = isLoaded ? (
|
|
||||||
<div>
|
|
||||||
<BrowserView>
|
|
||||||
<div style={bodyDivStyle}>{landingpageDataBrowser}</div>
|
|
||||||
</BrowserView>
|
|
||||||
<MobileView>{landingpageDataMobile}</MobileView>
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
<div></div>
|
|
||||||
);
|
|
||||||
|
|
||||||
return <div>{loadedCheck}</div>;
|
|
||||||
};
|
|
||||||
export default Contact;
|
|
||||||
+143
-7
@@ -6,6 +6,9 @@ import { BrowserView, MobileView } from "react-device-detect";
|
|||||||
import { useParams, useNavigate, Link } from "react-router-dom";
|
import { useParams, useNavigate, Link } from "react-router-dom";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
Grid,
|
||||||
|
TextField,
|
||||||
|
IconButton,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
Divider,
|
Divider,
|
||||||
Button,
|
Button,
|
||||||
@@ -15,7 +18,11 @@ import {
|
|||||||
Paper,
|
Paper,
|
||||||
List,
|
List,
|
||||||
} from "@material-ui/core";
|
} from "@material-ui/core";
|
||||||
import { Link as LinkIcon, Edit as EditIcon } from "@material-ui/icons";
|
|
||||||
|
import {
|
||||||
|
Link as LinkIcon,
|
||||||
|
Edit as EditIcon,
|
||||||
|
} from "@material-ui/icons";
|
||||||
|
|
||||||
const Body = {
|
const Body = {
|
||||||
maxWidth: 1000,
|
maxWidth: 1000,
|
||||||
@@ -50,12 +57,13 @@ const Docs = (defaultprops) => {
|
|||||||
var props = JSON.parse(JSON.stringify(defaultprops))
|
var props = JSON.parse(JSON.stringify(defaultprops))
|
||||||
props.match = {}
|
props.match = {}
|
||||||
props.match.params = params
|
props.match.params = params
|
||||||
|
console.log("Props: ", props.match.params)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (params["key"] === undefined) {
|
//if (params["key"] === undefined) {
|
||||||
navigate("/docs/about")
|
// navigate("/docs/about")
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
}, [])
|
}, [])
|
||||||
//console.log("PARAMS: ", params)
|
//console.log("PARAMS: ", params)
|
||||||
|
|
||||||
@@ -229,8 +237,12 @@ const Docs = (defaultprops) => {
|
|||||||
// navigate("/docs/about")
|
// navigate("/docs/about")
|
||||||
// return null
|
// return null
|
||||||
//}
|
//}
|
||||||
|
//
|
||||||
|
if (props.match.params.key === undefined) {
|
||||||
|
|
||||||
fetchDocs(props.match.params.key)
|
} else {
|
||||||
|
fetchDocs(props.match.params.key)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -404,7 +416,6 @@ const Docs = (defaultprops) => {
|
|||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href={selectedMeta.link}
|
href={selectedMeta.link}
|
||||||
target="_blank"
|
|
||||||
style={{ textDecoration: "none", color: "#f85a3e" }}
|
style={{ textDecoration: "none", color: "#f85a3e" }}
|
||||||
>
|
>
|
||||||
<Button style={{}} variant="outlined">
|
<Button style={{}} variant="outlined">
|
||||||
@@ -506,6 +517,59 @@ const Docs = (defaultprops) => {
|
|||||||
// );
|
// );
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
const CustomButton = (props) => {
|
||||||
|
const {title, icon, link} = props
|
||||||
|
|
||||||
|
const [hover, setHover] = useState(false)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<a
|
||||||
|
href={link}
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
style={{ textDecoration: "none", color: "inherit", flex: 1, margin: 10, }}
|
||||||
|
>
|
||||||
|
<div style={{cursor: hover ? "pointer" : "default", borderRadius: theme.palette.borderRadius, flex: 1, border: "1px solid rgba(255,255,255,0.3)", backgroundColor: hover ? theme.palette.surfaceColor : theme.palette.inputColor, padding: 25, }} onMouseOver={() => {
|
||||||
|
setHover(true)
|
||||||
|
}}
|
||||||
|
onMouseOut={() => {
|
||||||
|
setHover(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{icon}
|
||||||
|
<Typography variant="body1" style={{}} >
|
||||||
|
{title}
|
||||||
|
</Typography>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const DocumentationButton = (props) => {
|
||||||
|
const {item, link} = props
|
||||||
|
|
||||||
|
const [hover, setHover] = useState(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Link to={link} >
|
||||||
|
<div style={{width: "100%", height: 80, cursor: hover ? "pointer" : "default", borderRadius: theme.palette.borderRadius, border: "1px solid rgba(255,255,255,0.3)", backgroundColor: hover ? theme.palette.surfaceColor : theme.palette.inputColor, }}
|
||||||
|
onMouseOver={() => {
|
||||||
|
setHover(true)
|
||||||
|
}}
|
||||||
|
onMouseOut={() => {
|
||||||
|
setHover(false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Typography variant="body1" style={{}} >
|
||||||
|
{item}
|
||||||
|
</Typography>
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
const postDataBrowser =
|
const postDataBrowser =
|
||||||
list === undefined || list === null ? null : (
|
list === undefined || list === null ? null : (
|
||||||
<div style={Body}>
|
<div style={Body}>
|
||||||
@@ -576,6 +640,77 @@ const Docs = (defaultprops) => {
|
|||||||
</List>
|
</List>
|
||||||
</Paper>
|
</Paper>
|
||||||
</div>
|
</div>
|
||||||
|
{props.match.params.key === undefined ?
|
||||||
|
<div style={{
|
||||||
|
color: "rgba(255, 255, 255, 0.65)",
|
||||||
|
flex: "1",
|
||||||
|
maxWidth: mobile ? "100%" : 750,
|
||||||
|
overflow: "hidden",
|
||||||
|
paddingBottom: 100,
|
||||||
|
marginLeft: mobile ? 0 : 50,
|
||||||
|
marginTop: 50,
|
||||||
|
textAlign: "center",
|
||||||
|
maxWidth: 500,
|
||||||
|
}}>
|
||||||
|
<Typography variant="h4" style={{textAlign: "center",}}>
|
||||||
|
Documentation
|
||||||
|
</Typography>
|
||||||
|
<div style={{display: "flex", marginTop: 25, }}>
|
||||||
|
<CustomButton title="Create Support Ticket" icon=<img src="" style={{height: 35, width: 35, border: "1px solid rgba(255,255,255,0.3)", borderRadius: theme.palette.borderRadius, }} /> link="http://172.17.14.113" />
|
||||||
|
<CustomButton title="Ask the community" icon=<img src="" style={{height: 35, width: 35, border: "1px solid rgba(255,255,255,0.3)", borderRadius: theme.palette.borderRadius, }} /> link="https://discord.gg/B2CBzUm" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Grid container spacing={2} style={{marginTop: 50, }}>
|
||||||
|
{list.map((data, index) => {
|
||||||
|
const item = data.name;
|
||||||
|
if (item === undefined) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const path = "/docs/" + item;
|
||||||
|
const newname =
|
||||||
|
item.charAt(0).toUpperCase() +
|
||||||
|
item.substring(1).split("_").join(" ").split("-").join(" ");
|
||||||
|
|
||||||
|
const itemMatching = props.match.params.key === undefined ? false :
|
||||||
|
props.match.params.key.toLowerCase() === item.toLowerCase();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid item xs={4}>
|
||||||
|
<DocumentationButton key={index} item={newname} />
|
||||||
|
</Grid>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
{/*
|
||||||
|
<TextField
|
||||||
|
required
|
||||||
|
style={{
|
||||||
|
flex: "1",
|
||||||
|
backgroundColor: theme.palette.inputColor,
|
||||||
|
height: 50,
|
||||||
|
}}
|
||||||
|
InputProps={{
|
||||||
|
style:{
|
||||||
|
color: "white",
|
||||||
|
height: 50,
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
placeholder={"Search Knowledgebase"}
|
||||||
|
color="primary"
|
||||||
|
fullWidth={true}
|
||||||
|
type="firstname"
|
||||||
|
id={"Searchfield"}
|
||||||
|
margin="normal"
|
||||||
|
variant="outlined"
|
||||||
|
onChange={(event) => {
|
||||||
|
console.log("Change: ", event.target.value)
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
*/}
|
||||||
|
</div>
|
||||||
|
:
|
||||||
<div id="markdown_wrapper_outer" style={markdownStyle}>
|
<div id="markdown_wrapper_outer" style={markdownStyle}>
|
||||||
<ReactMarkdown
|
<ReactMarkdown
|
||||||
id="markdown_wrapper"
|
id="markdown_wrapper"
|
||||||
@@ -589,6 +724,7 @@ const Docs = (defaultprops) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
NAME=shuffle-orborus
|
NAME=shuffle-orborus
|
||||||
VERSION=0.9.67
|
VERSION=0.9.69
|
||||||
|
|
||||||
echo "Running docker build with $NAME:$VERSION"
|
echo "Running docker build with $NAME:$VERSION"
|
||||||
#docker rmi frikky/shuffle:$NAME --force
|
#docker rmi frikky/shuffle:$NAME --force
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ func init() {
|
|||||||
|
|
||||||
dockercli, err = dockerclient.NewEnvClient()
|
dockercli, err = dockerclient.NewEnvClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("Unable to create docker client: %s", err))
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
getThisContainerId()
|
getThisContainerId()
|
||||||
@@ -203,7 +203,7 @@ func deployServiceWorkers(image string) {
|
|||||||
if swarmConfig == "run" || swarmConfig == "swarm" {
|
if swarmConfig == "run" || swarmConfig == "swarm" {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
// Looks for and cleans up all existing items in swarm we can't re-use (Shuffle only)
|
// Looks for and cleans up all existing items in swarm we can't re-use (Shuffle only)
|
||||||
cleanupExistingNodes(ctx)
|
|
||||||
// frikky@debian:~/git/shuffle/functions/onprem/worker$ docker service create --replicas 5 --name shuffle-workers --env SHUFFLE_SWARM_CONFIG=run --publish published=33333,target=33333 ghcr.io/frikky/shuffle-worker:nightly
|
// frikky@debian:~/git/shuffle/functions/onprem/worker$ docker service create --replicas 5 --name shuffle-workers --env SHUFFLE_SWARM_CONFIG=run --publish published=33333,target=33333 ghcr.io/frikky/shuffle-worker:nightly
|
||||||
networkName := "shuffle_swarm_executions"
|
networkName := "shuffle_swarm_executions"
|
||||||
if len(swarmNetworkName) > 0 {
|
if len(swarmNetworkName) > 0 {
|
||||||
@@ -495,7 +495,9 @@ func deployWorker(image string, identifier string, env []string, executionReques
|
|||||||
// FIXME: Should we handle replies properly?
|
// FIXME: Should we handle replies properly?
|
||||||
// In certain cases, a workflow may e.g. be aborted already. If it's aborted, that returns
|
// In certain cases, a workflow may e.g. be aborted already. If it's aborted, that returns
|
||||||
// a 401 from the worker, which returns an error here
|
// a 401 from the worker, which returns an error here
|
||||||
go sendWorkerRequest(executionRequest)
|
//go sendWorkerRequest(executionRequest)
|
||||||
|
sendWorkerRequest(executionRequest)
|
||||||
|
|
||||||
//err := sendWorkerRequest(executionRequest)
|
//err := sendWorkerRequest(executionRequest)
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
// log.Printf("[ERROR] Failed worker request for %s: %s", executionRequest.ExecutionId, err)
|
// log.Printf("[ERROR] Failed worker request for %s: %s", executionRequest.ExecutionId, err)
|
||||||
@@ -859,10 +861,15 @@ func main() {
|
|||||||
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
||||||
if swarmConfig == "run" || swarmConfig == "swarm" {
|
if swarmConfig == "run" || swarmConfig == "swarm" {
|
||||||
checkSwarmService(ctx)
|
checkSwarmService(ctx)
|
||||||
|
|
||||||
|
log.Printf("[DEBUG] Cleaning up containers from previous run")
|
||||||
|
cleanupExistingNodes(ctx)
|
||||||
|
time.Sleep(time.Duration(5) * time.Second)
|
||||||
|
|
||||||
log.Printf("[DEBUG] Deploying worker image %s to swarm", workerImage)
|
log.Printf("[DEBUG] Deploying worker image %s to swarm", workerImage)
|
||||||
deployServiceWorkers(workerImage)
|
deployServiceWorkers(workerImage)
|
||||||
log.Printf("[DEBUG] Waiting 30 seconds to ensure workers are deployed. Run: \"docker service ls\" for more info")
|
log.Printf("[DEBUG] Waiting 45 seconds to ensure workers are deployed. Run: \"docker service ls\" for more info")
|
||||||
time.Sleep(time.Duration(30) * time.Second)
|
time.Sleep(time.Duration(45) * time.Second)
|
||||||
|
|
||||||
//deployServiceWorkers(workerImage)
|
//deployServiceWorkers(workerImage)
|
||||||
}
|
}
|
||||||
@@ -900,7 +907,7 @@ func main() {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Failed making request builder during init: %s", err)
|
log.Printf("[ERROR] Failed making request builder during init: %s", err)
|
||||||
os.Exit(3)
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
zombiecounter := 0
|
zombiecounter := 0
|
||||||
@@ -1336,6 +1343,7 @@ func sendWorkerRequest(workflowExecution shuffle.ExecutionRequest) error {
|
|||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Failed creating worker request: %s", err)
|
log.Printf("[ERROR] Failed creating worker request: %s", err)
|
||||||
|
|
||||||
if strings.Contains(fmt.Sprintf("%s", err), "connection refused") || strings.Contains(fmt.Sprintf("%s", err), "EOF") {
|
if strings.Contains(fmt.Sprintf("%s", err), "connection refused") || strings.Contains(fmt.Sprintf("%s", err), "EOF") {
|
||||||
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
||||||
deployServiceWorkers(workerImage)
|
deployServiceWorkers(workerImage)
|
||||||
@@ -1349,7 +1357,7 @@ func sendWorkerRequest(workflowExecution shuffle.ExecutionRequest) error {
|
|||||||
|
|
||||||
newresp, err := client.Do(req)
|
newresp, err := client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERROR] Error running worker request: %s", err)
|
log.Printf("[ERROR] Error running worker request (1): %s", err)
|
||||||
if strings.Contains(fmt.Sprintf("%s", err), "connection refused") || strings.Contains(fmt.Sprintf("%s", err), "EOF") {
|
if strings.Contains(fmt.Sprintf("%s", err), "connection refused") || strings.Contains(fmt.Sprintf("%s", err), "EOF") {
|
||||||
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
||||||
deployServiceWorkers(workerImage)
|
deployServiceWorkers(workerImage)
|
||||||
@@ -1368,7 +1376,7 @@ func sendWorkerRequest(workflowExecution shuffle.ExecutionRequest) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if newresp.StatusCode != 200 {
|
if newresp.StatusCode != 200 {
|
||||||
log.Printf("[ERROR] Error running worker request - status code is %d, not 200. Body: %s", newresp.StatusCode, string(body))
|
log.Printf("[ERROR] Error running worker request (2) - status code is %d, not 200. Body: %s", newresp.StatusCode, string(body))
|
||||||
|
|
||||||
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
workerImage := fmt.Sprintf("%s/%s/shuffle-worker:%s", baseimageregistry, baseimagename, workerVersion)
|
||||||
deployServiceWorkers(workerImage)
|
deployServiceWorkers(workerImage)
|
||||||
|
|||||||
Reference in New Issue
Block a user