mirror of
https://github.com/strapi/strapi.git
synced 2025-09-14 19:19:43 +00:00
Merge pull request #16255 from strapi/fix/tracking-system-transfer
This commit is contained in:
commit
eeed535680
@ -55,6 +55,7 @@ describe('Export', () => {
|
||||
|
||||
// mock utils
|
||||
const mockUtils = {
|
||||
getTransferTelemetryPayload: jest.fn().mockReturnValue({}),
|
||||
loadersFactory: jest.fn().mockReturnValue({ updateLoader: jest.fn() }),
|
||||
formatDiagnostic: jest.fn(),
|
||||
createStrapiInstance() {
|
||||
|
@ -63,6 +63,7 @@ describe('Import', () => {
|
||||
|
||||
// mock utils
|
||||
const mockUtils = {
|
||||
getTransferTelemetryPayload: jest.fn().mockReturnValue({}),
|
||||
loadersFactory: jest.fn().mockReturnValue({ updateLoader: jest.fn() }),
|
||||
formatDiagnostic: jest.fn(),
|
||||
createStrapiInstance: jest.fn().mockReturnValue({
|
||||
|
@ -5,6 +5,7 @@ const { expectExit } = require('./shared/transfer.test.utils');
|
||||
describe('Transfer', () => {
|
||||
// mock utils
|
||||
const mockUtils = {
|
||||
getTransferTelemetryPayload: jest.fn().mockReturnValue({}),
|
||||
loadersFactory: jest.fn().mockReturnValue({ updateLoader: jest.fn() }),
|
||||
formatDiagnostic: jest.fn(),
|
||||
createStrapiInstance() {
|
||||
|
@ -24,6 +24,7 @@ const {
|
||||
loadersFactory,
|
||||
exitMessageText,
|
||||
abortTransfer,
|
||||
getTransferTelemetryPayload,
|
||||
} = require('./utils');
|
||||
const { exitWith } = require('../utils/helpers');
|
||||
/**
|
||||
@ -103,19 +104,10 @@ module.exports = async (opts) => {
|
||||
updateLoader(stage, data);
|
||||
});
|
||||
|
||||
const getTelemetryPayload = (/* payload */) => {
|
||||
return {
|
||||
eventProperties: {
|
||||
source: engine.sourceProvider.name,
|
||||
destination: engine.destinationProvider.name,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
progress.on('transfer::start', async () => {
|
||||
console.log(`Starting export...`);
|
||||
|
||||
await strapi.telemetry.send('didDEITSProcessStart', getTelemetryPayload());
|
||||
await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));
|
||||
});
|
||||
|
||||
let results;
|
||||
@ -134,11 +126,13 @@ module.exports = async (opts) => {
|
||||
throw new TransferEngineTransferError(`Export file not created "${outFile}"`);
|
||||
}
|
||||
} catch {
|
||||
await strapi.telemetry.send('didDEITSProcessFail', getTelemetryPayload());
|
||||
await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));
|
||||
exitWith(1, exitMessageText('export', true));
|
||||
}
|
||||
|
||||
await strapi.telemetry.send('didDEITSProcessFinish', getTelemetryPayload());
|
||||
// Note: we need to await telemetry or else the process ends before it is sent
|
||||
await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));
|
||||
|
||||
try {
|
||||
const table = buildTransferTable(results.engine);
|
||||
console.log(table.toString());
|
||||
|
@ -20,6 +20,7 @@ const {
|
||||
loadersFactory,
|
||||
exitMessageText,
|
||||
abortTransfer,
|
||||
getTransferTelemetryPayload,
|
||||
} = require('./utils');
|
||||
const { exitWith } = require('../utils/helpers');
|
||||
|
||||
@ -122,18 +123,12 @@ module.exports = async (opts) => {
|
||||
updateLoader(stage, data);
|
||||
});
|
||||
|
||||
const getTelemetryPayload = () => {
|
||||
return {
|
||||
eventProperties: {
|
||||
source: engine.sourceProvider.name,
|
||||
destination: engine.destinationProvider.name,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
progress.on('transfer::start', async () => {
|
||||
console.log('Starting import...');
|
||||
await strapiInstance.telemetry.send('didDEITSProcessStart', getTelemetryPayload());
|
||||
await strapiInstance.telemetry.send(
|
||||
'didDEITSProcessStart',
|
||||
getTransferTelemetryPayload(engine)
|
||||
);
|
||||
});
|
||||
|
||||
let results;
|
||||
@ -146,7 +141,7 @@ module.exports = async (opts) => {
|
||||
|
||||
results = await engine.transfer();
|
||||
} catch (e) {
|
||||
await strapiInstance.telemetry.send('didDEITSProcessFail', getTelemetryPayload());
|
||||
await strapiInstance.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));
|
||||
exitWith(1, exitMessageText('import', true));
|
||||
}
|
||||
|
||||
@ -157,7 +152,8 @@ module.exports = async (opts) => {
|
||||
console.error('There was an error displaying the results of the transfer.');
|
||||
}
|
||||
|
||||
await strapiInstance.telemetry.send('didDEITSProcessFinish', getTelemetryPayload());
|
||||
// Note: we need to await telemetry or else the process ends before it is sent
|
||||
await strapiInstance.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));
|
||||
await strapiInstance.destroy();
|
||||
|
||||
exitWith(0, exitMessageText('import'));
|
||||
|
@ -21,6 +21,7 @@ const {
|
||||
loadersFactory,
|
||||
exitMessageText,
|
||||
abortTransfer,
|
||||
getTransferTelemetryPayload,
|
||||
} = require('./utils');
|
||||
const { exitWith } = require('../utils/helpers');
|
||||
|
||||
@ -161,10 +162,14 @@ module.exports = async (opts) => {
|
||||
updateLoader(stage, data).fail();
|
||||
});
|
||||
|
||||
let results;
|
||||
try {
|
||||
progress.on('transfer::start', async () => {
|
||||
console.log(`Starting transfer...`);
|
||||
|
||||
await strapi.telemetry.send('didDEITSProcessStart', getTransferTelemetryPayload(engine));
|
||||
});
|
||||
|
||||
let results;
|
||||
try {
|
||||
// Abort transfer if user interrupts process
|
||||
['SIGTERM', 'SIGINT', 'SIGQUIT'].forEach((signal) => {
|
||||
process.removeAllListeners(signal);
|
||||
@ -173,10 +178,19 @@ module.exports = async (opts) => {
|
||||
|
||||
results = await engine.transfer();
|
||||
} catch (e) {
|
||||
await strapi.telemetry.send('didDEITSProcessFail', getTransferTelemetryPayload(engine));
|
||||
exitWith(1, exitMessageText('transfer', true));
|
||||
}
|
||||
|
||||
const table = buildTransferTable(results.engine);
|
||||
console.log(table.toString());
|
||||
// Note: we need to await telemetry or else the process ends before it is sent
|
||||
await strapi.telemetry.send('didDEITSProcessFinish', getTransferTelemetryPayload(engine));
|
||||
|
||||
try {
|
||||
const table = buildTransferTable(results.engine);
|
||||
console.log(table.toString());
|
||||
} catch (e) {
|
||||
console.error('There was an error displaying the results of the transfer.');
|
||||
}
|
||||
|
||||
exitWith(0, exitMessageText('transfer'));
|
||||
};
|
||||
|
@ -242,10 +242,26 @@ const loadersFactory = (defaultLoaders = {}) => {
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the telemetry data to be sent for a didDEITSProcess* event from an initialized transfer engine object
|
||||
*
|
||||
* @param {import('@strapi/data-transfer/types').ITransferEngine} engine Initialized transfer engine
|
||||
* @returns {object} Telemetry properties object
|
||||
*/
|
||||
const getTransferTelemetryPayload = (engine) => {
|
||||
return {
|
||||
eventProperties: {
|
||||
source: engine?.sourceProvider?.name,
|
||||
destination: engine?.destinationProvider?.name,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
loadersFactory,
|
||||
buildTransferTable,
|
||||
getDefaultExportName,
|
||||
getTransferTelemetryPayload,
|
||||
DEFAULT_IGNORED_CONTENT_TYPES,
|
||||
createStrapiInstance,
|
||||
excludeOption,
|
||||
|
Loading…
x
Reference in New Issue
Block a user