import { TextField } from '~/components/text-field/text-field';
import { ExpandIcon } from '~/components/icon/icon';
import * as IntInput from './inputs/int-input';
-import { require } from '~/validators/require';
import { min } from '~/validators/min';
import { optional } from '~/validators/optional';
export const RUNTIME_FIELD = 'runtime';
export const RAM_FIELD = 'ram';
export const VCPUS_FIELD = 'vcpus';
-export const KEEP_CACHE_RAM_FIELD = 'keepCacheRam';
+export const KEEP_CACHE_RAM_FIELD = 'keep_cache_ram';
+export const RUNNER_IMAGE_FIELD = 'acr_container_image';
export interface RunProcessAdvancedFormData {
[OUTPUT_FIELD]?: string;
[RAM_FIELD]: number;
[VCPUS_FIELD]: number;
[KEEP_CACHE_RAM_FIELD]?: number;
+ [RUNNER_IMAGE_FIELD]: string;
}
export const RunProcessAdvancedForm =
reduxForm<RunProcessAdvancedFormData>({
form: RUN_PROCESS_ADVANCED_FORM,
- initialValues: {
- [RAM_FIELD]: 1073741824,
- [VCPUS_FIELD]: 1,
- },
})(() =>
<form>
<ExpansionPanel elevation={0}>
<Field
name={RUNTIME_FIELD}
component={TextField}
- label="Runtime limit (hh)" />
+ helperText="Maximum running time (in seconds) that this container will be allowed to run before being cancelled."
+ label="Runtime limit"
+ parse={IntInput.parse}
+ format={IntInput.format}
+ type='number'
+ validate={runtimeValidation} />
</Grid>
<Grid item xs={12} md={6}>
<Field
parse={IntInput.parse}
format={IntInput.format}
type='number'
- validate={keepCacheRamValdation} />
+ validate={keepCacheRamValidation} />
+ </Grid>
+ <Grid item xs={12} md={6}>
+ <Field
+ name={RUNNER_IMAGE_FIELD}
+ component={TextField}
+ label='Runner'
+ required
+ helperText='The container image with arvados-cwl-runner that will execute this workflow.' />
</Grid>
</Grid>
</ExpansionPanelDetails>
const ramValidation = [min(0)];
const vcpusValidation = [min(1)];
-const keepCacheRamValdation = [optional(min(0))];
+const keepCacheRamValidation = [optional(min(0))];
+const runtimeValidation = [optional(min(1))];