[ARVADOS-WORKBENCH2] updated: 1.2.0-188-g3bf4820

Git user git at public.curoverse.com
Wed Aug 29 08:18:23 EDT 2018


Summary of changes:
 .../details-attribute/details-attribute.tsx        |  2 +-
 src/store/processes/process.ts                     | 26 +++++++++++
 src/store/processes/processes-actions.ts           | 52 ++++++++++++++++++++++
 .../details-panel/process-details.tsx              |  2 +-
 4 files changed, 80 insertions(+), 2 deletions(-)
 create mode 100644 src/store/processes/process.ts
 create mode 100644 src/store/processes/processes-actions.ts

       via  3bf48201c92fcb9827d134a96671f02035f544a6 (commit)
       via  4221f6e12bfbbf56ab8848e9c6c1b6b9eacbec64 (commit)
      from  78969103183f03a23557aa0b4d1739a0ff12dcb2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 3bf48201c92fcb9827d134a96671f02035f544a6
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date:   Wed Aug 29 14:06:30 2018 +0200

    Fix process type issues
    
    Feature #14099
    
    Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>

diff --git a/src/components/details-attribute/details-attribute.tsx b/src/components/details-attribute/details-attribute.tsx
index 32ab167..7177885 100644
--- a/src/components/details-attribute/details-attribute.tsx
+++ b/src/components/details-attribute/details-attribute.tsx
@@ -40,7 +40,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 interface DetailsAttributeDataProps {
     label: string;
     classLabel?: string;
-    value?: string | number;
+    value?: React.ReactNode;
     classValue?: string;
     lowercaseValue?: boolean;
     link?: string;
diff --git a/src/views-components/details-panel/process-details.tsx b/src/views-components/details-panel/process-details.tsx
index cec01b9..d9ddfad 100644
--- a/src/views-components/details-panel/process-details.tsx
+++ b/src/views-components/details-panel/process-details.tsx
@@ -34,7 +34,7 @@ export class ProcessDetails extends DetailsData<ProcessResource> {
             {/* Links but we dont have view */}
             <DetailsAttribute label='Outputs' link={this.item.outputPath} value={this.item.outputPath} />
             <DetailsAttribute label='UUID' link={this.item.uuid} value={this.item.uuid} />
-            <DetailsAttribute label='Container UUID' link={this.item.containerUuid} value={this.item.containerUuid} />
+            <DetailsAttribute label='Container UUID' link={this.item.containerUuid || ''} value={this.item.containerUuid} />
 
             <DetailsAttribute label='Priority' value={this.item.priority} />
             <DetailsAttribute label='Runtime Constraints' value={this.item.runtimeConstraints} />

commit 4221f6e12bfbbf56ab8848e9c6c1b6b9eacbec64
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date:   Wed Aug 29 14:06:15 2018 +0200

    Create store for processes
    
    Feature #14099
    
    Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>

diff --git a/src/store/processes/process.ts b/src/store/processes/process.ts
new file mode 100644
index 0000000..17ad695
--- /dev/null
+++ b/src/store/processes/process.ts
@@ -0,0 +1,26 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import { ContainerRequestResource } from '../../models/container-request';
+import { ContainerResource } from '../../models/container';
+import { ResourcesState, getResource } from '~/store/resources/resources';
+
+export interface Process {
+    containerRequest: ContainerRequestResource;
+    container?: ContainerResource;
+}
+
+export const getProcess = (uuid: string) => (resources: ResourcesState): Process | undefined => {
+    const containerRequest = getResource<ContainerRequestResource>(uuid)(resources);
+    if (containerRequest) {
+        if (containerRequest.containerUuid) {
+            const container = getResource<ContainerResource>(containerRequest.containerUuid)(resources);
+            if (container) {
+                return { containerRequest, container };
+            }
+        }
+        return { containerRequest };
+    }
+    return;
+};
diff --git a/src/store/processes/processes-actions.ts b/src/store/processes/processes-actions.ts
new file mode 100644
index 0000000..d667517
--- /dev/null
+++ b/src/store/processes/processes-actions.ts
@@ -0,0 +1,52 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import { Dispatch } from "redux";
+import { RootState } from '~/store/store';
+import { ServiceRepository } from '~/services/services';
+import { updateResources } from '~/store/resources/resources-actions';
+import { FilterBuilder } from '~/common/api/filter-builder';
+import { ContainerRequestResource } from '../../models/container-request';
+
+export const loadProcess = (uuid: string) =>
+    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        const containerRequest = await services.containerRequestService.get(uuid);
+        dispatch<any>(updateResources([containerRequest]));
+        if (containerRequest.containerUuid) {
+            const container = await services.containerService.get(containerRequest.containerUuid);
+            dispatch<any>(updateResources([container]));
+        }
+    };
+
+export const loadSubprocesses = (uuid: string) =>
+    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        const containerRequests = await dispatch<any>(loadContainerRequests(
+            new FilterBuilder().addEqual('requestingContainerUuid', uuid).getFilters()
+        )) as ContainerRequestResource[];
+
+        const containerUuids: string[] = containerRequests.reduce((uuids, { containerUuid }) =>
+            containerUuid
+                ? [...uuids, containerUuid]
+                : uuids, []);
+
+        if (containerUuids.length > 0) {
+            await dispatch<any>(loadContainers(
+                new FilterBuilder().addIn('uuid', containerUuids).getFilters()
+            ));
+        }
+    };
+
+export const loadContainerRequests = (filters: string) =>
+    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        const { items } = await services.containerRequestService.list({ filters });
+        dispatch<any>(updateResources(items));
+        return items;
+    };
+
+export const loadContainers = (filters: string) =>
+    async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        const { items } = await services.containerService.list({ filters });
+        dispatch<any>(updateResources(items));
+        return items;
+    };

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list