18874: Add 'services/workbench2/' from commit 'f6f88d9ca9cdeeeebfadcfe999789bfb9f69e5c6'
[arvados.git] / services / workbench2 / src / models / process.ts
diff --git a/services/workbench2/src/models/process.ts b/services/workbench2/src/models/process.ts
new file mode 100644 (file)
index 0000000..cb1bfe8
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import { ContainerRequestResource } from "./container-request";
+import { MountType, MountKind } from 'models/mount-types';
+import { WorkflowResource, parseWorkflowDefinition } from 'models/workflow';
+import { WorkflowInputsData } from './workflow';
+
+export type ProcessResource = ContainerRequestResource;
+
+export const MOUNT_PATH_CWL_WORKFLOW = '/var/lib/cwl/workflow.json';
+export const MOUNT_PATH_CWL_INPUT = '/var/lib/cwl/cwl.input.json';
+
+export const createWorkflowMounts = (workflow: WorkflowResource, inputs: WorkflowInputsData): { [path: string]: MountType } => {
+    return {
+        '/var/spool/cwl': {
+            kind: MountKind.COLLECTION,
+            writable: true,
+        },
+        'stdout': {
+            kind: MountKind.MOUNTED_FILE,
+            path: '/var/spool/cwl/cwl.output.json',
+        },
+        '/var/lib/cwl/workflow.json': {
+            kind: MountKind.JSON,
+            content: parseWorkflowDefinition(workflow)
+        },
+        '/var/lib/cwl/cwl.input.json': {
+            kind: MountKind.JSON,
+            content: inputs,
+        }
+    };
+};