Skip to content
Snippets Groups Projects

130 inc batch async

Merged Gareth Hughes requested to merge 130_IncBatchAsync into master
Compare and Show latest version
1 file
+ 35
21
Compare changes
  • Side-by-side
  • Inline
//'{"runId": "dirac1",
//"parameters": [{"key": "type", "value": "batch.query"}, {"key": "someparam", "value": "somevalue"}]}'
//{'key': 'someparam', 'value': 'somevalue'}
import axios from "axios";
import React, { useContext, useEffect, useState } from "react";
import { Button, Form, Container } from "react-bootstrap";
@@ -11,7 +7,7 @@ import BatchParametersComponent from "./Batch/BatchParametersComponent";
export default function SubmitJob() {
const { api_host } = useContext(GlobalContext);
const { api_host, accessToken } = useContext(GlobalContext);
const location = useLocation();
const { workflowfile, facility } = location.state;
const [jobData, setJobData] = useState(undefined);
@@ -22,9 +18,10 @@ export default function SubmitJob() {
showFinal: false,
url: ""
});
const [uwsState, setUwsState] = useState([]);
const [uwsState, setUwsState] = useState({});
const [uwsStateRun, setUwsStateRun] = useState([]);
useEffect(() => {
axios
.get(api_host + "batch/worker/load?workflowfile=" + workflowfile)
@@ -42,21 +39,27 @@ export default function SubmitJob() {
const onClickSubmitButton = e => {
e.preventDefault();
console.log(params);
const pars = paramKeys.map((key,value) => {
const typeParam = {};
typeParam['key'] = 'type';
typeParam['value'] = 'batch.query';
const variableParams = paramKeys.map((key,value) => {
return({key: key, value: params[key]})
});
const pars2 = {...pars,...{key: "type", value: "batch.query"}};
console.log(pars2);
const content = {
'runId': 'test',
'parameters': [pars2],
};
console.log(content)
const combinedParams = variableParams.concat(typeParam);
const content = {};
content['runId'] = 'batch';
content['parameters'] = combinedParams
const headers = {
'Content-Type': 'application/json'
//TODO does not work for me loaclly at the moment but needs adding
//"Authorization": `Bearer ${accessToken}`
};
axios.post(api_host + "uws/jobs/", content, { headers })
.then((response) => {
const data = response.data;
@@ -71,7 +74,8 @@ console.log(content)
setState(prev => ({...prev, showRunButton: false, showFinal: false}));
} else {
setState(prev => ({...prev, showRunButton: true}));
}
};
};
const onClickRunButton = e => {
@@ -120,7 +124,7 @@ console.log(content)
return (
<div>
<Container className="ida" fluid>
<Container className="batch" fluid>
<h1>Batch Analysis Submission</h1><br/>
<h4>{jobData.title}</h4><br/>
@@ -141,10 +145,15 @@ console.log(content)
<Button onClick={onClickSubmitButton} className="submit-button">Submit</Button>
: null }
<br/><br/><br/>
{ state.showRunButton ?
JSON.stringify(uwsState)
<>
Job Number: {String(uwsState.url).slice(0,-1).substring(String(uwsState.url).slice(0,-1).lastIndexOf("/")+1,String(uwsState.url).slice(0,-1).length)}
<br/>
Status: {uwsState.phase}
<br/><br/>
Select RUN to submit the job with the above parameters or ABORT to cancel.<br/>
</>
: null }
<br/><br/><br/>
@@ -158,7 +167,12 @@ console.log(content)
<br/><br/><br/>
{ state.showFinal ?
JSON.stringify(uwsStateRun)
<>
Job Number: {String(uwsState.url).slice(0,-1).substring(String(uwsState.url).slice(0,-1).lastIndexOf("/")+1,String(uwsState.url).slice(0,-1).length)}
<br/>
Status: {uwsStateRun.phase}
<br/><br/>
</>
: null }
</Container>
Loading