19319: Add cost field to loadContainers select query to prevent clearing cost race...
[arvados.git] / src / store / processes / processes-actions.ts
index 1f672759a085bd339e76b5c659159fec83e46e72..f7822e06ee064929cba111529311d5e5c987f051 100644 (file)
@@ -35,6 +35,10 @@ export const loadProcess = (containerRequestUuid: string) =>
         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 };
@@ -56,6 +60,7 @@ const containerFieldsNoMounts = [
     "auth_uuid",
     "command",
     "container_image",
+    "cost",
     "created_at",
     "cwd",
     "environment",
@@ -135,16 +140,19 @@ export const reRunProcess = (processUuid: string, workflowUuid: string) =>
 
 /*
  * 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) { return undefined; }
     const mountInput = data.mounts?.[MOUNT_PATH_CWL_INPUT]?.content;
     const propsInput = data.properties?.cwl_input;
-    if (!mountInput && !propsInput) { return undefined; }
+    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 []; }
@@ -166,6 +174,7 @@ export const getInputs = (data: any): CommandInputParameter[] => {
 
 /*
  * 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; }