if (containerRequest.containerUuid) {
const container = await services.containerService.get(containerRequest.containerUuid);
dispatch<any>(updateResources([container]));
+ if (container.runtimeUserUuid) {
+ const runtimeUser = await services.userService.get(container.runtimeUserUuid);
+ dispatch<any>(updateResources([runtimeUser]));
+ }
return { containerRequest, container };
}
return { containerRequest };
"auth_uuid",
"command",
"container_image",
+ "cost",
"created_at",
"cwd",
"environment",
}
};
+/*
+ * Fetches raw inputs from containerRequest mounts with fallback to properties
+ * Returns undefined if containerRequest not loaded
+ * Returns [] if inputs not found in mounts or props
+ */
export const getRawInputs = (data: any): CommandInputParameter[] | undefined => {
- if (!data || !data.mounts || !data.mounts[MOUNT_PATH_CWL_INPUT]) { return undefined; }
- return (data.mounts[MOUNT_PATH_CWL_INPUT].content);
+ if (!data) { return undefined; }
+ const mountInput = data.mounts?.[MOUNT_PATH_CWL_INPUT]?.content;
+ const propsInput = data.properties?.cwl_input;
+ if (!mountInput && !propsInput) { return []; }
+ return (mountInput || propsInput);
}
export const getInputs = (data: any): CommandInputParameter[] => {
+ // Definitions from mounts are needed so we return early if missing
if (!data || !data.mounts || !data.mounts[MOUNT_PATH_CWL_WORKFLOW]) { return []; }
+ const content = getRawInputs(data) as any;
+ if (!content) { return []; }
+
const inputs = getWorkflowInputs(data.mounts[MOUNT_PATH_CWL_WORKFLOW].content);
return inputs ? inputs.map(
(it: any) => (
type: it.type,
id: it.id,
label: it.label,
- default: data.mounts[MOUNT_PATH_CWL_INPUT].content[it.id],
- value: data.mounts[MOUNT_PATH_CWL_INPUT].content[it.id.split('/').pop()] || [],
+ default: content[it.id],
+ value: content[it.id.split('/').pop()] || [],
doc: it.doc
}
)
) : [];
};
+/*
+ * Fetches raw outputs from containerRequest properties
+ * Assumes containerRequest is loaded
+ */
+export const getRawOutputs = (data: any): CommandInputParameter[] | undefined => {
+ if (!data || !data.properties || !data.properties.cwl_output) { return undefined; }
+ return (data.properties.cwl_output);
+}
+
export type InputCollectionMount = {
path: string;
pdh: string;