@gen3/core 0.10.49 → 0.10.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +299 -29
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/constants.d.ts +2 -1
- package/dist/dts/features/cohort/cohortSlice.d.ts +16 -1
- package/dist/dts/features/cohort/index.d.ts +2 -2
- package/dist/dts/features/download/downloadStatusApi.d.ts +303 -1
- package/dist/dts/features/download/index.d.ts +2 -2
- package/dist/dts/features/guppy/tests/conversion.unit.test.d.ts +1 -0
- package/dist/dts/features/sower/index.d.ts +2 -0
- package/dist/dts/features/sower/sowerApi.d.ts +845 -0
- package/dist/dts/features/sower/types.d.ts +8 -0
- package/dist/dts/features/user/index.d.ts +1 -1
- package/dist/dts/features/user/types.d.ts +1 -1
- package/dist/dts/features/user/userSliceRTK.d.ts +3 -0
- package/dist/dts/features/workspace/index.d.ts +5 -2
- package/dist/dts/features/workspace/types.d.ts +89 -0
- package/dist/dts/features/workspace/utils.d.ts +3 -0
- package/dist/dts/features/workspace/workspaceApi.d.ts +1523 -0
- package/dist/dts/features/workspace/workspaceSlice.d.ts +14 -0
- package/dist/dts/hooks.d.ts +2 -0
- package/dist/dts/index.d.ts +3 -2
- package/dist/dts/reducers.d.ts +2 -0
- package/dist/dts/store.d.ts +2 -0
- package/dist/dts/types/index.d.ts +5 -0
- package/dist/esm/index.js +273 -29
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +2350 -331
- package/package.json +2 -2
- package/dist/dts/features/workspace/workspacesSlice.d.ts +0 -402
package/dist/cjs/index.js
CHANGED
|
@@ -47,10 +47,11 @@ const GEN3_FENCE_API = process.env.NEXT_PUBLIC_GEN3_FENCE_API || GEN3_API;
|
|
|
47
47
|
const GEN3_AI_SEARCH_API = process.env.NEXT_PUBLIC_GEN3_AI_SEARCH_API || `${GEN3_API}/ai-search`;
|
|
48
48
|
const GEN3_AUTHZ_API = process.env.NEXT_PUBLIC_GEN3_AUTHZ_API || `${GEN3_API}/authz`;
|
|
49
49
|
const GEN3_REDIRECT_URL = process.env.NEXT_PUBLIC_GEN3_REDIRECT_URL || GEN3_API;
|
|
50
|
-
const
|
|
50
|
+
const GEN3_WORKSPACE_API = process.env.NEXT_PUBLIC_GEN3_WORKSPACE_STATUS_API || `${GEN3_API}/lw-workspace`;
|
|
51
51
|
const GEN3_SUBMISSION_API = process.env.NEXT_PUBLIC_GEN3_SUBMISSION_API || `${GEN3_API}/api/v0/submission`;
|
|
52
52
|
const GEN3_WTS_API = process.env.NEXT_PUBLIC_GEN3_WTS_API || `${GEN3_API}/wts`;
|
|
53
53
|
const GEN3_CROSSWALK_API = process.env.NEXT_PUBLIC_GEN3_CROSSWALK_API || `${GEN3_API}/mds`;
|
|
54
|
+
const GEN3_SOWER_API = process.env.NEXT_PUBLIC_GEN3_SOWER_API || `${GEN3_API}/jobs`;
|
|
54
55
|
exports.Accessibility = void 0;
|
|
55
56
|
(function(Accessibility) {
|
|
56
57
|
Accessibility["ACCESSIBLE"] = "accessible";
|
|
@@ -410,7 +411,7 @@ const createUseCoreDataHook = (fetchDataActionCreator, dataSelector)=>{
|
|
|
410
411
|
});
|
|
411
412
|
const isAuthenticated = (loginStatus)=>loginStatus === 'authenticated';
|
|
412
413
|
const isPending = (loginStatus)=>loginStatus === 'pending';
|
|
413
|
-
const initialState$
|
|
414
|
+
const initialState$4 = {
|
|
414
415
|
status: 'uninitialized',
|
|
415
416
|
loginStatus: 'unauthenticated',
|
|
416
417
|
error: undefined
|
|
@@ -419,11 +420,11 @@ const initialState$3 = {
|
|
|
419
420
|
* Wraps a slice on top of fetchUserState async thunk to keep track of
|
|
420
421
|
* query state. authenticated/not-authenticated vs. ejected/fulfilled/pending
|
|
421
422
|
* @returns: status messages wrapped around fetchUserState response dict
|
|
422
|
-
*/ const slice$
|
|
423
|
+
*/ const slice$4 = toolkit.createSlice({
|
|
423
424
|
name: 'fence/user',
|
|
424
|
-
initialState: initialState$
|
|
425
|
+
initialState: initialState$4,
|
|
425
426
|
reducers: {
|
|
426
|
-
resetUserState: ()=>initialState$
|
|
427
|
+
resetUserState: ()=>initialState$4
|
|
427
428
|
},
|
|
428
429
|
extraReducers: (builder)=>{
|
|
429
430
|
builder.addCase(fetchUserState.fulfilled, (_, action)=>{
|
|
@@ -454,8 +455,8 @@ const initialState$3 = {
|
|
|
454
455
|
});
|
|
455
456
|
}
|
|
456
457
|
});
|
|
457
|
-
const userReducer = slice$
|
|
458
|
-
const { resetUserState } = slice$
|
|
458
|
+
const userReducer = slice$4.reducer;
|
|
459
|
+
const { resetUserState } = slice$4.actions;
|
|
459
460
|
const selectUserData = (state)=>{
|
|
460
461
|
return state.user;
|
|
461
462
|
};
|
|
@@ -574,6 +575,9 @@ const isHistogramDataArrayARange = (data)=>{
|
|
|
574
575
|
*/ function isErrorWithMessage(error) {
|
|
575
576
|
return typeof error === 'object' && error != null && 'message' in error && typeof error.message === 'string';
|
|
576
577
|
}
|
|
578
|
+
function isHttpStatusError(error) {
|
|
579
|
+
return typeof error === 'object' && error != null && 'status' in error && typeof error.status === 'number';
|
|
580
|
+
}
|
|
577
581
|
/**
|
|
578
582
|
* Type predicate to narrow an unknown error to an object with a string 'message' property
|
|
579
583
|
*/ function isFetchParseError(error) {
|
|
@@ -590,12 +594,12 @@ const lookupGen3App = (id)=>{
|
|
|
590
594
|
return REGISTRY[id];
|
|
591
595
|
};
|
|
592
596
|
|
|
593
|
-
const initialState$
|
|
597
|
+
const initialState$3 = {
|
|
594
598
|
gen3Apps: {}
|
|
595
599
|
};
|
|
596
|
-
const slice$
|
|
600
|
+
const slice$3 = toolkit.createSlice({
|
|
597
601
|
name: 'gen3Apps',
|
|
598
|
-
initialState: initialState$
|
|
602
|
+
initialState: initialState$3,
|
|
599
603
|
reducers: {
|
|
600
604
|
addGen3AppMetadata: (state, action)=>{
|
|
601
605
|
const { name, requiredEntityTypes } = action.payload;
|
|
@@ -609,24 +613,24 @@ const slice$2 = toolkit.createSlice({
|
|
|
609
613
|
}
|
|
610
614
|
}
|
|
611
615
|
});
|
|
612
|
-
const gen3AppReducer = slice$
|
|
613
|
-
const { addGen3AppMetadata } = slice$
|
|
616
|
+
const gen3AppReducer = slice$3.reducer;
|
|
617
|
+
const { addGen3AppMetadata } = slice$3.actions;
|
|
614
618
|
const selectGen3AppMetadataByName = (state, appName)=>state.gen3Apps.gen3Apps[appName];
|
|
615
619
|
const selectGen3AppByName = (appName)=>lookupGen3App(appName); // TODO: memoize this selector
|
|
616
620
|
|
|
617
|
-
const initialState$
|
|
621
|
+
const initialState$2 = {};
|
|
618
622
|
// TODO: document what this does
|
|
619
|
-
const slice$
|
|
623
|
+
const slice$2 = toolkit.createSlice({
|
|
620
624
|
name: 'drsResolver',
|
|
621
|
-
initialState: initialState$
|
|
625
|
+
initialState: initialState$2,
|
|
622
626
|
reducers: {
|
|
623
627
|
setDRSHostnames: (_state, action)=>{
|
|
624
628
|
return action.payload;
|
|
625
629
|
}
|
|
626
630
|
}
|
|
627
631
|
});
|
|
628
|
-
const drsHostnamesReducer = slice$
|
|
629
|
-
const { setDRSHostnames } = slice$
|
|
632
|
+
const drsHostnamesReducer = slice$2.reducer;
|
|
633
|
+
const { setDRSHostnames } = slice$2.actions;
|
|
630
634
|
|
|
631
635
|
exports.Modals = void 0;
|
|
632
636
|
(function(Modals) {
|
|
@@ -636,13 +640,13 @@ exports.Modals = void 0;
|
|
|
636
640
|
Modals["CreateCredentialsAPIKeyModal"] = "CreateCredentialsAPIKeyModal";
|
|
637
641
|
Modals["GeneralErrorModal"] = "GeneralErrorModal";
|
|
638
642
|
})(exports.Modals || (exports.Modals = {}));
|
|
639
|
-
const initialState = {
|
|
643
|
+
const initialState$1 = {
|
|
640
644
|
currentModal: null
|
|
641
645
|
};
|
|
642
646
|
//Creates a modal slice for tracking showModal and hideModal state.
|
|
643
|
-
const slice = toolkit.createSlice({
|
|
647
|
+
const slice$1 = toolkit.createSlice({
|
|
644
648
|
name: 'modals',
|
|
645
|
-
initialState,
|
|
649
|
+
initialState: initialState$1,
|
|
646
650
|
reducers: {
|
|
647
651
|
showModal: (state, action)=>{
|
|
648
652
|
state.currentModal = action.payload.modal;
|
|
@@ -655,8 +659,8 @@ const slice = toolkit.createSlice({
|
|
|
655
659
|
}
|
|
656
660
|
}
|
|
657
661
|
});
|
|
658
|
-
const modalReducer = slice.reducer;
|
|
659
|
-
const { showModal, hideModal } = slice.actions;
|
|
662
|
+
const modalReducer = slice$1.reducer;
|
|
663
|
+
const { showModal, hideModal } = slice$1.actions;
|
|
660
664
|
const selectCurrentModal = (state)=>state.modals.currentModal;
|
|
661
665
|
const selectCurrentMessage = (state)=>state.modals.message;
|
|
662
666
|
|
|
@@ -701,6 +705,18 @@ const cohortsAdapter = createEntityAdapter<Cohort>({
|
|
|
701
705
|
}
|
|
702
706
|
};
|
|
703
707
|
},
|
|
708
|
+
setCohortFilter: (state, action)=>{
|
|
709
|
+
const { index, filters } = action.payload;
|
|
710
|
+
return {
|
|
711
|
+
cohort: {
|
|
712
|
+
...state.cohort,
|
|
713
|
+
filters: {
|
|
714
|
+
...state.cohort.filters,
|
|
715
|
+
[index]: filters
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
};
|
|
719
|
+
},
|
|
704
720
|
// removes a filter to the cohort filter set at the given index
|
|
705
721
|
removeCohortFilter: (state, action)=>{
|
|
706
722
|
const { index, field } = action.payload;
|
|
@@ -742,7 +758,7 @@ const cohortsAdapter = createEntityAdapter<Cohort>({
|
|
|
742
758
|
}
|
|
743
759
|
});
|
|
744
760
|
// Filter actions: addFilter, removeFilter, updateFilter
|
|
745
|
-
const { updateCohortFilter, removeCohortFilter, clearCohortFilters } = cohortSlice.actions;
|
|
761
|
+
const { updateCohortFilter, setCohortFilter, removeCohortFilter, clearCohortFilters } = cohortSlice.actions;
|
|
746
762
|
const selectCohortFilters = (state)=>state.cohorts.cohort.filters;
|
|
747
763
|
const selectCurrentCohortId = (state)=>state.cohorts.cohort.id;
|
|
748
764
|
const selectCurrentCohort = (state)=>state.cohorts.cohort;
|
|
@@ -770,6 +786,80 @@ const EmptyFilterSet = {
|
|
|
770
786
|
};
|
|
771
787
|
const cohortReducer = cohortSlice.reducer;
|
|
772
788
|
|
|
789
|
+
exports.WorkspaceStatus = void 0;
|
|
790
|
+
(function(WorkspaceStatus) {
|
|
791
|
+
WorkspaceStatus["Launching"] = "Launching";
|
|
792
|
+
WorkspaceStatus["Running"] = "Running";
|
|
793
|
+
WorkspaceStatus["Terminating"] = "Terminating";
|
|
794
|
+
WorkspaceStatus["Stopped"] = "Stopped";
|
|
795
|
+
WorkspaceStatus["NotFound"] = "Not Found";
|
|
796
|
+
WorkspaceStatus["Errored"] = "Errored";
|
|
797
|
+
WorkspaceStatus["StatusError"] = "Status Error";
|
|
798
|
+
})(exports.WorkspaceStatus || (exports.WorkspaceStatus = {}));
|
|
799
|
+
exports.PodConditionType = void 0;
|
|
800
|
+
(function(PodConditionType) {
|
|
801
|
+
PodConditionType["PodScheduled"] = "PodScheduled";
|
|
802
|
+
PodConditionType["Initialized"] = "Initialized";
|
|
803
|
+
PodConditionType["ContainersReady"] = "ContainersReady";
|
|
804
|
+
PodConditionType["PodReadyToStartContainers"] = "PodReadyToStartContainers";
|
|
805
|
+
PodConditionType["ProxyConnected"] = "ProxyConnected";
|
|
806
|
+
PodConditionType["Ready"] = "Ready";
|
|
807
|
+
})(exports.PodConditionType || (exports.PodConditionType = {}));
|
|
808
|
+
exports.PodStatus = void 0;
|
|
809
|
+
(function(PodStatus) {
|
|
810
|
+
PodStatus["True"] = "True";
|
|
811
|
+
PodStatus["False"] = "False";
|
|
812
|
+
PodStatus["Unknown"] = "Unknown";
|
|
813
|
+
})(exports.PodStatus || (exports.PodStatus = {}));
|
|
814
|
+
|
|
815
|
+
const NO_WORKSPACE_ID = 'none';
|
|
816
|
+
const initialState = {
|
|
817
|
+
id: NO_WORKSPACE_ID,
|
|
818
|
+
status: exports.WorkspaceStatus.NotFound,
|
|
819
|
+
requestedStatus: 'NotSet'
|
|
820
|
+
};
|
|
821
|
+
const slice = toolkit.createSlice({
|
|
822
|
+
name: 'ActiveWorkspace',
|
|
823
|
+
initialState,
|
|
824
|
+
reducers: {
|
|
825
|
+
setActiveWorkspaceId: (state, action)=>{
|
|
826
|
+
state = {
|
|
827
|
+
...state,
|
|
828
|
+
id: action.payload.id
|
|
829
|
+
};
|
|
830
|
+
return state;
|
|
831
|
+
},
|
|
832
|
+
clearActiveWorkspaceId: (state)=>{
|
|
833
|
+
return {
|
|
834
|
+
...state,
|
|
835
|
+
id: NO_WORKSPACE_ID
|
|
836
|
+
};
|
|
837
|
+
},
|
|
838
|
+
setActiveWorkspaceStatus: (state, action)=>{
|
|
839
|
+
return {
|
|
840
|
+
...state,
|
|
841
|
+
status: action.payload
|
|
842
|
+
};
|
|
843
|
+
},
|
|
844
|
+
setRequestedWorkspaceStatus: (state, action)=>{
|
|
845
|
+
return {
|
|
846
|
+
...state,
|
|
847
|
+
requestedStatus: action.payload
|
|
848
|
+
};
|
|
849
|
+
},
|
|
850
|
+
setActiveWorkspace: (_state, action)=>{
|
|
851
|
+
return {
|
|
852
|
+
...action.payload
|
|
853
|
+
};
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
});
|
|
857
|
+
const activeWorkspaceReducer = slice.reducer;
|
|
858
|
+
const { setActiveWorkspaceId, clearActiveWorkspaceId, setActiveWorkspaceStatus, setRequestedWorkspaceStatus, setActiveWorkspace } = slice.actions;
|
|
859
|
+
const selectActiveWorkspaceId = (state)=>state.activeWorkspace.id;
|
|
860
|
+
const selectActiveWorkspaceStatus = (state)=>state.activeWorkspace.status;
|
|
861
|
+
const selectRequestedWorkspaceStatus = (state)=>state.activeWorkspace.requestedStatus;
|
|
862
|
+
|
|
773
863
|
/**
|
|
774
864
|
* Creates a base class core API for guppy API calls.
|
|
775
865
|
* @returns: guppy core API with guppyAPIFetch base query
|
|
@@ -826,6 +916,7 @@ const rootReducer = toolkit.combineReducers({
|
|
|
826
916
|
drsHostnames: drsHostnamesReducer,
|
|
827
917
|
modals: modalReducer,
|
|
828
918
|
cohorts: cohortReducer,
|
|
919
|
+
activeWorkspace: activeWorkspaceReducer,
|
|
829
920
|
[guppyApiSliceReducerPath]: guppyApiReducer,
|
|
830
921
|
[userAuthApiReducerPath]: userAuthApiReducer
|
|
831
922
|
});
|
|
@@ -1992,20 +2083,142 @@ const { useDownloadFromGuppyMutation } = downloadRequestApi;
|
|
|
1992
2083
|
// Add more endpoints here
|
|
1993
2084
|
const { useAskQuestionMutation, useGetAISearchStatusQuery, useGetAISearchVersionQuery } = aiSearchApi;
|
|
1994
2085
|
|
|
1995
|
-
const
|
|
2086
|
+
const WorkspaceWithTags = gen3Api.enhanceEndpoints({
|
|
2087
|
+
addTagTypes: [
|
|
2088
|
+
'Workspace',
|
|
2089
|
+
'PayModel'
|
|
2090
|
+
]
|
|
2091
|
+
});
|
|
2092
|
+
const EmptyWorkspaceStatusResponse = {
|
|
2093
|
+
status: exports.WorkspaceStatus.NotFound,
|
|
2094
|
+
conditions: [],
|
|
2095
|
+
containerStates: [],
|
|
2096
|
+
idleTimeLimit: 0,
|
|
2097
|
+
lastActivityTime: 0,
|
|
2098
|
+
workspaceType: ''
|
|
2099
|
+
};
|
|
2100
|
+
const workspacesApi = WorkspaceWithTags.injectEndpoints({
|
|
1996
2101
|
endpoints: (builder)=>({
|
|
1997
2102
|
getWorkspaceOptions: builder.query({
|
|
1998
|
-
query: ()=>`${
|
|
2103
|
+
query: ()=>`${GEN3_WORKSPACE_API}/options`,
|
|
2104
|
+
transformResponse: (response)=>{
|
|
2105
|
+
return response.map((workspace)=>{
|
|
2106
|
+
return {
|
|
2107
|
+
id: workspace.id,
|
|
2108
|
+
name: workspace.name,
|
|
2109
|
+
idleTimeLimit: workspace['idle-time-limit'],
|
|
2110
|
+
memoryLimit: workspace['memory-limit'],
|
|
2111
|
+
cpuLimit: workspace['cpu-limit']
|
|
2112
|
+
};
|
|
2113
|
+
});
|
|
2114
|
+
}
|
|
1999
2115
|
}),
|
|
2000
2116
|
getWorkspacePayModels: builder.query({
|
|
2001
|
-
query: ()=>`${
|
|
2117
|
+
query: ()=>`${GEN3_WORKSPACE_API}/allpaymodels`,
|
|
2118
|
+
providesTags: [
|
|
2119
|
+
'PayModel'
|
|
2120
|
+
],
|
|
2121
|
+
transformResponse: (response)=>{
|
|
2122
|
+
return {
|
|
2123
|
+
currentPayModel: response.current_pay_model,
|
|
2124
|
+
allPayModels: response.all_pay_models,
|
|
2125
|
+
noPayModel: false
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
}),
|
|
2129
|
+
getActivePayModel: builder.query({
|
|
2130
|
+
query: ()=>`${GEN3_WORKSPACE_API}/paymodels`,
|
|
2131
|
+
providesTags: [
|
|
2132
|
+
'PayModel'
|
|
2133
|
+
]
|
|
2134
|
+
}),
|
|
2135
|
+
setCurrentPayModel: builder.mutation({
|
|
2136
|
+
query: (id)=>({
|
|
2137
|
+
url: `${GEN3_WORKSPACE_API}/setpaymodel`,
|
|
2138
|
+
method: 'POST',
|
|
2139
|
+
body: id,
|
|
2140
|
+
invalidatesTags: [
|
|
2141
|
+
'PayModel'
|
|
2142
|
+
]
|
|
2143
|
+
})
|
|
2002
2144
|
}),
|
|
2003
2145
|
getWorkspaceStatus: builder.query({
|
|
2004
|
-
|
|
2146
|
+
queryFn: async (_arg0, queryApi, _extraOptions, fetchWithBQ)=>{
|
|
2147
|
+
const currentWorkspaceStatus = selectActiveWorkspaceStatus(queryApi.getState());
|
|
2148
|
+
const workspaceStatus = await fetchWithBQ(`${GEN3_WORKSPACE_API}/status`);
|
|
2149
|
+
if (workspaceStatus.error) {
|
|
2150
|
+
return workspaceStatus;
|
|
2151
|
+
}
|
|
2152
|
+
// TODO: try to find out IF this is code is required
|
|
2153
|
+
const workspaceStatusData = workspaceStatus.data;
|
|
2154
|
+
if (workspaceStatusData.status === exports.WorkspaceStatus.Running && (currentWorkspaceStatus === 'Not Found' || currentWorkspaceStatus === 'Launching')) {
|
|
2155
|
+
const proxyStatus = await fetchWithBQ(`${GEN3_WORKSPACE_API}/proxy/`);
|
|
2156
|
+
let statusError = undefined;
|
|
2157
|
+
if (isFetchParseError(proxyStatus.error)) {
|
|
2158
|
+
statusError = proxyStatus.error.originalStatus;
|
|
2159
|
+
}
|
|
2160
|
+
if (isHttpStatusError(proxyStatus.error)) {
|
|
2161
|
+
statusError = proxyStatus.error.status;
|
|
2162
|
+
}
|
|
2163
|
+
if (statusError && statusError !== 200) {
|
|
2164
|
+
return {
|
|
2165
|
+
data: {
|
|
2166
|
+
...workspaceStatusData,
|
|
2167
|
+
status: exports.WorkspaceStatus.Launching,
|
|
2168
|
+
conditions: [
|
|
2169
|
+
{
|
|
2170
|
+
type: 'ProxyConnected',
|
|
2171
|
+
status: exports.PodStatus.False
|
|
2172
|
+
}
|
|
2173
|
+
]
|
|
2174
|
+
}
|
|
2175
|
+
};
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
return {
|
|
2179
|
+
data: workspaceStatus.data
|
|
2180
|
+
};
|
|
2181
|
+
},
|
|
2182
|
+
providesTags: [
|
|
2183
|
+
'Workspace'
|
|
2184
|
+
]
|
|
2185
|
+
}),
|
|
2186
|
+
launchWorkspace: builder.mutation({
|
|
2187
|
+
query: (id)=>{
|
|
2188
|
+
return {
|
|
2189
|
+
url: `${GEN3_WORKSPACE_API}/launch?id=${id}`,
|
|
2190
|
+
method: 'POST',
|
|
2191
|
+
invalidatesTags: [
|
|
2192
|
+
'Workspace'
|
|
2193
|
+
],
|
|
2194
|
+
responseHandler: (response)=>response.text()
|
|
2195
|
+
};
|
|
2196
|
+
},
|
|
2197
|
+
transformResponse: async (response)=>{
|
|
2198
|
+
return !!(response && response === 'Success');
|
|
2199
|
+
}
|
|
2200
|
+
}),
|
|
2201
|
+
terminateWorkspace: builder.mutation({
|
|
2202
|
+
query: ()=>({
|
|
2203
|
+
url: `${GEN3_WORKSPACE_API}/terminate`,
|
|
2204
|
+
method: 'POST',
|
|
2205
|
+
invalidatesTags: [
|
|
2206
|
+
'Workspace'
|
|
2207
|
+
],
|
|
2208
|
+
responseHandler: (response)=>response.text()
|
|
2209
|
+
})
|
|
2005
2210
|
})
|
|
2006
2211
|
})
|
|
2007
2212
|
});
|
|
2008
|
-
const { useGetWorkspaceOptionsQuery, useGetWorkspacePayModelsQuery, useGetWorkspaceStatusQuery } = workspacesApi;
|
|
2213
|
+
const { useGetWorkspaceOptionsQuery, useGetWorkspacePayModelsQuery, useGetWorkspaceStatusQuery, useGetActivePayModelQuery, useSetCurrentPayModelMutation, useLaunchWorkspaceMutation, useTerminateWorkspaceMutation } = workspacesApi;
|
|
2214
|
+
const workspaceStatusSelector = workspacesApi.endpoints.getWorkspaceStatus.select();
|
|
2215
|
+
const selectWorkspaceStatusFromService = toolkit.createSelector(workspaceStatusSelector, (status)=>status.data ?? {
|
|
2216
|
+
...EmptyWorkspaceStatusResponse
|
|
2217
|
+
});
|
|
2218
|
+
const selectWorkspaceStatus = toolkit.createSelector(workspaceStatusSelector, (status)=>status?.data?.status ?? exports.WorkspaceStatus.NotFound);
|
|
2219
|
+
|
|
2220
|
+
const isWorkspaceActive = (status)=>status === exports.WorkspaceStatus.Running || status === exports.WorkspaceStatus.Launching || status === exports.WorkspaceStatus.Terminating;
|
|
2221
|
+
const isWorkspaceRunningOrStopping = (status)=>status === exports.WorkspaceStatus.Running || status === exports.WorkspaceStatus.Terminating;
|
|
2009
2222
|
|
|
2010
2223
|
const resourcePathFromProjectID = (projectID)=>{
|
|
2011
2224
|
const split = projectID.split('-');
|
|
@@ -2215,7 +2428,39 @@ const SubmissionGraphqlQuery = `query transactionList {
|
|
|
2215
2428
|
});
|
|
2216
2429
|
const { useGetProjectsQuery, useGetSubmissionGraphQLQuery, useGetProjectsDetailsQuery, useLazyGetProjectsQuery, useLazyGetSubmissionGraphQLQuery, useGetSubmissionsQuery, useGetDictionaryQuery } = submissionApi;
|
|
2217
2430
|
|
|
2431
|
+
/**
|
|
2432
|
+
* Creates a loadingStatusApi for checking the status of a sower data download job
|
|
2433
|
+
* @param getJobList Shows the list of jobs currently running
|
|
2434
|
+
* @see https://petstore.swagger.io/?url=https://raw.githubusercontent.com/uc-cdis/sower/master/openapis/openapi.yaml#/sower/list
|
|
2435
|
+
* @param getDownloadStatus Shows the status of a selected job
|
|
2436
|
+
* @returns: A sower job response dict which returns job information of file downloads
|
|
2437
|
+
*/ const loadingStatusApi = gen3Api.injectEndpoints({
|
|
2438
|
+
endpoints: (builder)=>({
|
|
2439
|
+
getSowerJobList: builder.query({
|
|
2440
|
+
query: ()=>`${GEN3_SOWER_API}/list`
|
|
2441
|
+
}),
|
|
2442
|
+
submitSowerJob: builder.mutation({
|
|
2443
|
+
query: (params)=>({
|
|
2444
|
+
url: `${GEN3_SOWER_API}/dispatch`,
|
|
2445
|
+
method: 'POST',
|
|
2446
|
+
body: params
|
|
2447
|
+
})
|
|
2448
|
+
}),
|
|
2449
|
+
getSowerJobStatus: builder.query({
|
|
2450
|
+
query: (uid)=>`${GEN3_SOWER_API}/status?UID=${uid}`
|
|
2451
|
+
}),
|
|
2452
|
+
getSowerOutput: builder.query({
|
|
2453
|
+
query: (uid)=>`${GEN3_SOWER_API}/output?UID=${uid}`
|
|
2454
|
+
}),
|
|
2455
|
+
getSowerServiceStatus: builder.query({
|
|
2456
|
+
query: ()=>`${GEN3_SOWER_API}/_status`
|
|
2457
|
+
})
|
|
2458
|
+
})
|
|
2459
|
+
});
|
|
2460
|
+
const { useGetSowerJobListQuery, useLazyGetSowerJobListQuery, useSubmitSowerJobMutation, useGetSowerJobStatusQuery, useGetSowerOutputQuery, useGetSowerServiceStatusQuery } = loadingStatusApi;
|
|
2461
|
+
|
|
2218
2462
|
exports.CoreProvider = CoreProvider;
|
|
2463
|
+
exports.EmptyWorkspaceStatusResponse = EmptyWorkspaceStatusResponse;
|
|
2219
2464
|
exports.GEN3_API = GEN3_API;
|
|
2220
2465
|
exports.GEN3_AUTHZ_API = GEN3_AUTHZ_API;
|
|
2221
2466
|
exports.GEN3_COMMONS_NAME = GEN3_COMMONS_NAME;
|
|
@@ -2226,8 +2471,10 @@ exports.GEN3_FENCE_API = GEN3_FENCE_API;
|
|
|
2226
2471
|
exports.GEN3_GUPPY_API = GEN3_GUPPY_API;
|
|
2227
2472
|
exports.GEN3_MDS_API = GEN3_MDS_API;
|
|
2228
2473
|
exports.GEN3_REDIRECT_URL = GEN3_REDIRECT_URL;
|
|
2474
|
+
exports.GEN3_SOWER_API = GEN3_SOWER_API;
|
|
2229
2475
|
exports.GEN3_SUBMISSION_API = GEN3_SUBMISSION_API;
|
|
2230
|
-
exports.
|
|
2476
|
+
exports.GEN3_WORKSPACE_API = GEN3_WORKSPACE_API;
|
|
2477
|
+
exports.clearActiveWorkspaceId = clearActiveWorkspaceId;
|
|
2231
2478
|
exports.clearCohortFilters = clearCohortFilters;
|
|
2232
2479
|
exports.cohortReducer = cohortReducer;
|
|
2233
2480
|
exports.convertFilterSetToGqlFilter = convertFilterSetToGqlFilter;
|
|
@@ -2273,6 +2520,7 @@ exports.isHistogramDataArrayARange = isHistogramDataArrayARange;
|
|
|
2273
2520
|
exports.isHistogramDataArrayAnEnum = isHistogramDataArrayAnEnum;
|
|
2274
2521
|
exports.isHistogramDataCollection = isHistogramDataCollection;
|
|
2275
2522
|
exports.isHistogramRangeData = isHistogramRangeData;
|
|
2523
|
+
exports.isHttpStatusError = isHttpStatusError;
|
|
2276
2524
|
exports.isJSONObject = isJSONObject;
|
|
2277
2525
|
exports.isJSONValue = isJSONValue;
|
|
2278
2526
|
exports.isJSONValueArray = isJSONValueArray;
|
|
@@ -2280,6 +2528,8 @@ exports.isOperationWithField = isOperationWithField;
|
|
|
2280
2528
|
exports.isPending = isPending;
|
|
2281
2529
|
exports.isProgramUrl = isProgramUrl;
|
|
2282
2530
|
exports.isRootUrl = isRootUrl;
|
|
2531
|
+
exports.isWorkspaceActive = isWorkspaceActive;
|
|
2532
|
+
exports.isWorkspaceRunningOrStopping = isWorkspaceRunningOrStopping;
|
|
2283
2533
|
exports.listifyMethodsFromMapping = listifyMethodsFromMapping;
|
|
2284
2534
|
exports.logoutFence = logoutFence;
|
|
2285
2535
|
exports.prependIndexToFieldName = prependIndexToFieldName;
|
|
@@ -2288,6 +2538,8 @@ exports.rawDataQueryStrForEachField = rawDataQueryStrForEachField;
|
|
|
2288
2538
|
exports.removeCohortFilter = removeCohortFilter;
|
|
2289
2539
|
exports.resetUserState = resetUserState;
|
|
2290
2540
|
exports.resourcePathFromProjectID = resourcePathFromProjectID;
|
|
2541
|
+
exports.selectActiveWorkspaceId = selectActiveWorkspaceId;
|
|
2542
|
+
exports.selectActiveWorkspaceStatus = selectActiveWorkspaceStatus;
|
|
2291
2543
|
exports.selectAuthzMappingData = selectAuthzMappingData;
|
|
2292
2544
|
exports.selectCSRFToken = selectCSRFToken;
|
|
2293
2545
|
exports.selectCSRFTokenData = selectCSRFTokenData;
|
|
@@ -2302,12 +2554,20 @@ exports.selectGen3AppMetadataByName = selectGen3AppMetadataByName;
|
|
|
2302
2554
|
exports.selectHeadersWithCSRFToken = selectHeadersWithCSRFToken;
|
|
2303
2555
|
exports.selectIndexFilters = selectIndexFilters;
|
|
2304
2556
|
exports.selectIndexedFilterByName = selectIndexedFilterByName;
|
|
2557
|
+
exports.selectRequestedWorkspaceStatus = selectRequestedWorkspaceStatus;
|
|
2305
2558
|
exports.selectUser = selectUser;
|
|
2306
2559
|
exports.selectUserAuthStatus = selectUserAuthStatus;
|
|
2307
2560
|
exports.selectUserData = selectUserData;
|
|
2308
2561
|
exports.selectUserDetails = selectUserDetails;
|
|
2309
2562
|
exports.selectUserLoginStatus = selectUserLoginStatus;
|
|
2563
|
+
exports.selectWorkspaceStatus = selectWorkspaceStatus;
|
|
2564
|
+
exports.selectWorkspaceStatusFromService = selectWorkspaceStatusFromService;
|
|
2565
|
+
exports.setActiveWorkspace = setActiveWorkspace;
|
|
2566
|
+
exports.setActiveWorkspaceId = setActiveWorkspaceId;
|
|
2567
|
+
exports.setActiveWorkspaceStatus = setActiveWorkspaceStatus;
|
|
2568
|
+
exports.setCohortFilter = setCohortFilter;
|
|
2310
2569
|
exports.setDRSHostnames = setDRSHostnames;
|
|
2570
|
+
exports.setRequestedWorkspaceStatus = setRequestedWorkspaceStatus;
|
|
2311
2571
|
exports.showModal = showModal;
|
|
2312
2572
|
exports.submissionApi = submissionApi;
|
|
2313
2573
|
exports.trimFirstFieldNameToTitle = trimFirstFieldNameToTitle;
|
|
@@ -2323,6 +2583,7 @@ exports.useGeneralGQLQuery = useGeneralGQLQuery;
|
|
|
2323
2583
|
exports.useGetAISearchStatusQuery = useGetAISearchStatusQuery;
|
|
2324
2584
|
exports.useGetAISearchVersionQuery = useGetAISearchVersionQuery;
|
|
2325
2585
|
exports.useGetAccessibleDataQuery = useGetAccessibleDataQuery;
|
|
2586
|
+
exports.useGetActivePayModelQuery = useGetActivePayModelQuery;
|
|
2326
2587
|
exports.useGetAggMDSQuery = useGetAggMDSQuery;
|
|
2327
2588
|
exports.useGetAggsQuery = useGetAggsQuery;
|
|
2328
2589
|
exports.useGetAllFieldsForTypeQuery = useGetAllFieldsForTypeQuery;
|
|
@@ -2345,6 +2606,10 @@ exports.useGetMDSQuery = useGetMDSQuery;
|
|
|
2345
2606
|
exports.useGetProjectsDetailsQuery = useGetProjectsDetailsQuery;
|
|
2346
2607
|
exports.useGetProjectsQuery = useGetProjectsQuery;
|
|
2347
2608
|
exports.useGetRawDataAndTotalCountsQuery = useGetRawDataAndTotalCountsQuery;
|
|
2609
|
+
exports.useGetSowerJobListQuery = useGetSowerJobListQuery;
|
|
2610
|
+
exports.useGetSowerJobStatusQuery = useGetSowerJobStatusQuery;
|
|
2611
|
+
exports.useGetSowerOutputQuery = useGetSowerOutputQuery;
|
|
2612
|
+
exports.useGetSowerServiceStatusQuery = useGetSowerServiceStatusQuery;
|
|
2348
2613
|
exports.useGetStatus = useGetStatus;
|
|
2349
2614
|
exports.useGetSubAggsQuery = useGetSubAggsQuery;
|
|
2350
2615
|
exports.useGetSubmissionGraphQLQuery = useGetSubmissionGraphQLQuery;
|
|
@@ -2356,16 +2621,21 @@ exports.useGetWorkspaceStatusQuery = useGetWorkspaceStatusQuery;
|
|
|
2356
2621
|
exports.useGraphQLQuery = useGraphQLQuery;
|
|
2357
2622
|
exports.useIsExternalConnectedQuery = useIsExternalConnectedQuery;
|
|
2358
2623
|
exports.useIsUserLoggedIn = useIsUserLoggedIn;
|
|
2624
|
+
exports.useLaunchWorkspaceMutation = useLaunchWorkspaceMutation;
|
|
2359
2625
|
exports.useLazyFetchUserDetailsQuery = useLazyFetchUserDetailsQuery;
|
|
2360
2626
|
exports.useLazyGeneralGQLQuery = useLazyGeneralGQLQuery;
|
|
2361
2627
|
exports.useLazyGetAggsQuery = useLazyGetAggsQuery;
|
|
2362
2628
|
exports.useLazyGetCrosswalkDataQuery = useLazyGetCrosswalkDataQuery;
|
|
2363
2629
|
exports.useLazyGetExternalLoginsQuery = useLazyGetExternalLoginsQuery;
|
|
2364
2630
|
exports.useLazyGetProjectsQuery = useLazyGetProjectsQuery;
|
|
2631
|
+
exports.useLazyGetSowerJobListQuery = useLazyGetSowerJobListQuery;
|
|
2365
2632
|
exports.useLazyGetSubmissionGraphQLQuery = useLazyGetSubmissionGraphQLQuery;
|
|
2366
2633
|
exports.useLazyIsExternalConnectedQuery = useLazyIsExternalConnectedQuery;
|
|
2367
2634
|
exports.usePrevious = usePrevious;
|
|
2368
2635
|
exports.useRemoveCredentialMutation = useRemoveCredentialMutation;
|
|
2636
|
+
exports.useSetCurrentPayModelMutation = useSetCurrentPayModelMutation;
|
|
2637
|
+
exports.useSubmitSowerJobMutation = useSubmitSowerJobMutation;
|
|
2638
|
+
exports.useTerminateWorkspaceMutation = useTerminateWorkspaceMutation;
|
|
2369
2639
|
exports.useUser = useUser;
|
|
2370
2640
|
exports.useUserAuth = useUserAuth;
|
|
2371
2641
|
exports.userHasCreateOrUpdateOnAnyProject = userHasCreateOrUpdateOnAnyProject;
|