Skip to content

Commit

Permalink
AJ-1527, AJ-1528 remove wds-specific tdr and use startimportjob inste…
Browse files Browse the repository at this point in the history
…ad (#4578)
  • Loading branch information
calypsomatic authored Jan 8, 2024
1 parent be17f04 commit 7a4ddda
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 65 deletions.
13 changes: 5 additions & 8 deletions src/import-data/ImportData.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ const setup = async (opts: SetupOptions) => {
},
WorkspaceData: {
startImportJob,
importTdr,
},
Workspaces: {
workspace: getWorkspaceApi,
Expand Down Expand Up @@ -366,17 +365,15 @@ describe('ImportData', () => {
...commonSnapshotExportQueryParams,
snapshotId: azureSnapshotFixture.id,
};
const { importJob, importTdr, wdsProxyUrl } = await setup({ queryParams });
const { importJob, startImportJob, wdsProxyUrl } = await setup({ queryParams });

// Act
await importIntoExistingWorkspace(user, defaultAzureWorkspace.workspace.name);

// Assert
expect(importTdr).toHaveBeenCalledWith(
wdsProxyUrl,
defaultAzureWorkspace.workspace.workspaceId,
new URL(queryParams.tdrmanifest)
);
expect(startImportJob).toHaveBeenCalledWith(wdsProxyUrl, defaultAzureWorkspace.workspace.workspaceId, {
url: queryParams.tdrmanifest,
type: 'TDRMANIFEST',
});
expect(importJob).not.toHaveBeenCalled();
});
});
Expand Down
22 changes: 16 additions & 6 deletions src/import-data/ImportData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Fragment, ReactNode, useState } from 'react';
import { div, h, h2 } from 'react-hyperscript-helpers';
import { spinnerOverlay } from 'src/components/common';
import { Ajax } from 'src/libs/ajax';
import { resolveWdsUrl, WdsDataTableProvider } from 'src/libs/ajax/data-table-providers/WdsDataTableProvider';
import { resolveWdsUrl } from 'src/libs/ajax/data-table-providers/WdsDataTableProvider';
import colors from 'src/libs/colors';
import { withErrorReporting } from 'src/libs/error';
import Events, { extractWorkspaceDetails } from 'src/libs/events';
Expand Down Expand Up @@ -75,7 +75,7 @@ export const ImportData = (props: ImportDataProps): ReactNode => {
jobId,
wdsProxyUrl: wdsUrl,
};
asyncImportJobStore.update((previousJobs) => [...previousJobs, newJob]);
asyncImportJobStore.update(Utils.append(newJob));
notifyDataImportProgress(jobId);
} else {
const { namespace, name } = workspace;
Expand All @@ -86,7 +86,7 @@ export const ImportData = (props: ImportDataProps): ReactNode => {
targetWorkspace: { namespace, name },
jobId,
};
asyncImportJobStore.update((previousJobs) => [...previousJobs, newJob]);
asyncImportJobStore.update(Utils.append(newJob));
notifyDataImportProgress(jobId);
}
};
Expand All @@ -107,10 +107,20 @@ export const ImportData = (props: ImportDataProps): ReactNode => {
if (workspace.cloudPlatform === 'Azure') {
// find wds for this workspace
const wdsUrl = await Ajax().Apps.listAppsV2(workspace.workspaceId).then(resolveWdsUrl);
const wdsDataTableProvider = new WdsDataTableProvider(workspace.workspaceId, wdsUrl);
const { namespace, name } = workspace;

// call import snapshot
await wdsDataTableProvider.importTdr(workspace.workspaceId, importRequest.manifestUrl);
// call import API
const { jobId } = await Ajax().WorkspaceData.startImportJob(wdsUrl, workspace.workspaceId, {
url: importRequest.manifestUrl.toString(),
type: 'TDRMANIFEST',
});
const newJob: AzureAsyncImportJob = {
targetWorkspace: { namespace, name },
jobId,
wdsProxyUrl: wdsUrl,
};
asyncImportJobStore.update(Utils.append(newJob));
notifyDataImportProgress(jobId);
} else {
const { namespace, name } = workspace;
const { jobId } = await Ajax()
Expand Down
7 changes: 0 additions & 7 deletions src/libs/ajax/WorkspaceDataService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,6 @@ export const WorkspaceData = (signal) => ({
);
return await res.json();
},
importTdr: async (root: string, instanceId: string, manifestURL: URL): Promise<Response> => {
const res = await fetchWDS(root)(
`${instanceId}/import/v1`,
_.mergeAll([authOpts(), { method: 'POST' }, jsonBody({ type: 'TDRMANIFEST', url: manifestURL })])
);
return res;
},
queryRecords: async (root: string, instanceId: string, wdsType: string): Promise<any> => {
const searchPayload = { limit: 100 };
const res = await fetchWDS(root)(
Expand Down
25 changes: 0 additions & 25 deletions src/libs/ajax/data-table-providers/WdsDataTableProvider.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,14 +163,6 @@ describe('WdsDataTableProvider', () => {
return Promise.resolve({ message: 'Upload Succeeded', recordsModified: 1 });
};

const importTdrMockImpl: WorkspaceDataContract['importTdr'] = (
_root: string,
_workspaceId: string,
_manifestUrl: URL
) => {
return Promise.resolve(new Response('', { status: 202 }));
};

const listAppsV2MockImpl = (_workspaceId: string): Promise<ListAppItem[]> => {
return Promise.resolve(testProxyUrlResponse);
};
Expand All @@ -179,15 +171,13 @@ describe('WdsDataTableProvider', () => {
let deleteTable: jest.MockedFunction<WorkspaceDataContract['deleteTable']>;
let downloadTsv: jest.MockedFunction<WorkspaceDataContract['downloadTsv']>;
let uploadTsv: jest.MockedFunction<WorkspaceDataContract['uploadTsv']>;
let importTdr: jest.MockedFunction<WorkspaceDataContract['importTdr']>;
let listAppsV2: jest.MockedFunction<AppsContract['listAppsV2']>;

beforeEach(() => {
getRecords = jest.fn().mockImplementation(getRecordsMockImpl);
deleteTable = jest.fn().mockImplementation(deleteTableMockImpl);
downloadTsv = jest.fn().mockImplementation(downloadTsvMockImpl);
uploadTsv = jest.fn().mockImplementation(uploadTsvMockImpl);
importTdr = jest.fn().mockImplementation(importTdrMockImpl);
listAppsV2 = jest.fn().mockImplementation(listAppsV2MockImpl);

asMockedFn(Ajax).mockImplementation(
Expand All @@ -198,7 +188,6 @@ describe('WdsDataTableProvider', () => {
deleteTable,
downloadTsv,
uploadTsv,
importTdr,
} as Partial<WorkspaceDataContract>,
Apps: { listAppsV2 } as Partial<AppsContract>,
} as Partial<AjaxContract> as AjaxContract)
Expand Down Expand Up @@ -666,20 +655,6 @@ describe('WdsDataTableProvider', () => {
});
});
});

describe('importTdr', () => {
it('imports a snapshot from tdr', () => {
// ====== Arrange
const provider = new TestableWdsProvider(uuid, testProxyUrl);
// ====== Act
return provider.importTdr(uuid, 'manifest.url&snapshotId=anyUuid&other=parameters').then(() => {
// ====== Assert
expect(importTdr.mock.calls.length).toBe(1);
expect(importTdr).toHaveBeenCalledWith(testProxyUrl, uuid, 'manifest.url&snapshotId=anyUuid&other=parameters');
// expect(actual.status).toBe(202);
});
});
});
});

describe('transformMetadata', () => {
Expand Down
19 changes: 0 additions & 19 deletions src/libs/ajax/data-table-providers/WdsDataTableProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ import {
UploadParameters,
} from 'src/libs/ajax/data-table-providers/DataTableProvider';
import { LeoAppStatus, ListAppItem } from 'src/libs/ajax/leonardo/models/app-models';
import { withErrorReporting } from 'src/libs/error';
import { notify } from 'src/libs/notifications';
import { notificationStore } from 'src/libs/state';
import * as Utils from 'src/libs/utils';
import { notifyDataImportProgress } from 'src/workspace-data/import-jobs';
Expand Down Expand Up @@ -304,21 +302,4 @@ export class WdsDataTableProvider implements DataTableProvider {
uploadParams.file
);
};

importTdr = withErrorReporting('Error importing')(async (workspaceId: string, manifestURL: URL): Promise<any> => {
if (!this.proxyUrl) return Promise.reject('Proxy Url not loaded');
setTimeout(() => {
if (
notificationStore.get().length === 0 ||
!notificationStore.get().some((notif: { title: string }) => ['Error importing'].includes(notif.title))
) {
notifyDataImportProgress('tdr-import', 'Your data will show up under Tables once import is complete.');
}
}, 1000);
await Ajax().WorkspaceData.importTdr(this.proxyUrl, workspaceId, manifestURL);
notify('success', 'Snapshot successfully imported', {
message: 'Successfully imported snapshot. Please refresh the page to see your changes.',
timeout: 3000,
});
});
}

0 comments on commit 7a4ddda

Please sign in to comment.