UNPKG

6.2 kBJavaScriptView Raw
1import * as fs from 'fs-extra';
2import * as path from 'path';
3import { getProvider } from './getProvider';
4export const restore = async ({ monitor: monitorIn, environment, options, }) => {
5 const monitor = monitorIn.at('node_data_restore');
6 const { dataPath, tmpPath, readyPath } = environment;
7 try {
8 // tslint:disable-next-line no-bitwise
9 await fs.access(readyPath, fs.constants.R_OK | fs.constants.W_OK);
10 monitor.log({
11 name: 'neo_restore_skip_exists',
12 message: 'Skipping restore beause it already exists',
13 });
14 return;
15 }
16 catch (error) {
17 if (error.code !== 'ENOENT') {
18 monitor.logError({
19 name: 'neo_restore_skip_exists',
20 message: 'Encountered error checking for existing restore.',
21 error,
22 });
23 throw error;
24 }
25 }
26 const provider = getProvider({ environment, options });
27 if (provider === undefined) {
28 monitor.log({
29 name: 'neo_restore_skip_no_provider',
30 message: 'Skipping restore due to no provider',
31 });
32 return;
33 }
34 await monitor.captureSpanLog(async (span) => {
35 await Promise.all([fs.remove(dataPath), fs.remove(tmpPath)]);
36 await Promise.all([fs.ensureDir(tmpPath), fs.ensureDir(path.dirname(readyPath)), fs.ensureDir(dataPath)]);
37 await provider.restore(span);
38 await fs.remove(tmpPath);
39 await fs.writeFile(readyPath, 'ready');
40 }, {
41 name: 'neo_restore_execute',
42 trace: true,
43 });
44};
45
46//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQ2xCLFdBQVcsRUFDWCxPQUFPLEdBS1IsRUFBRSxFQUFFO0lBQ0gsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUNyRCxJQUFJO1FBQ0Ysc0NBQXNDO1FBQ3RDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixPQUFPLEVBQUUsMkNBQTJDO1NBQ3JELENBQUMsQ0FBQztRQUVILE9BQU87S0FDUjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNmLElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLE9BQU8sRUFBRSxrREFBa0Q7Z0JBQzNELEtBQUs7YUFDTixDQUFDLENBQUM7WUFFSCxNQUFNLEtBQUssQ0FBQztTQUNiO0tBQ0Y7SUFFRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RCxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNWLElBQUksRUFBRSw4QkFBOEI7WUFDcEMsT0FBTyxFQUFFLHFDQUFxQztTQUMvQyxDQUFDLENBQUM7UUFFSCxPQUFPO0tBQ1I7SUFFRCxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQzFCLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNiLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQyxFQUNEO1FBQ0UsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLW5vZGUtZGF0YS1iYWNrdXAvc3JjL3Jlc3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb25pdG9yIH0gZnJvbSAnQG5lby1vbmUvbW9uaXRvcic7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZ2V0UHJvdmlkZXIgfSBmcm9tICcuL2dldFByb3ZpZGVyJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCByZXN0b3JlID0gYXN5bmMgKHtcbiAgbW9uaXRvcjogbW9uaXRvckluLFxuICBlbnZpcm9ubWVudCxcbiAgb3B0aW9ucyxcbn06IHtcbiAgcmVhZG9ubHkgbW9uaXRvcjogTW9uaXRvcjtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xuICByZWFkb25seSBvcHRpb25zOiBPcHRpb25zO1xufSkgPT4ge1xuICBjb25zdCBtb25pdG9yID0gbW9uaXRvckluLmF0KCdub2RlX2RhdGFfcmVzdG9yZScpO1xuICBjb25zdCB7IGRhdGFQYXRoLCB0bXBQYXRoLCByZWFkeVBhdGggfSA9IGVudmlyb25tZW50O1xuICB0cnkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgYXdhaXQgZnMuYWNjZXNzKHJlYWR5UGF0aCwgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PSyk7XG4gICAgbW9uaXRvci5sb2coe1xuICAgICAgbmFtZTogJ25lb19yZXN0b3JlX3NraXBfZXhpc3RzJyxcbiAgICAgIG1lc3NhZ2U6ICdTa2lwcGluZyByZXN0b3JlIGJlYXVzZSBpdCBhbHJlYWR5IGV4aXN0cycsXG4gICAgfSk7XG5cbiAgICByZXR1cm47XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yLmNvZGUgIT09ICdFTk9FTlQnKSB7XG4gICAgICBtb25pdG9yLmxvZ0Vycm9yKHtcbiAgICAgICAgbmFtZTogJ25lb19yZXN0b3JlX3NraXBfZXhpc3RzJyxcbiAgICAgICAgbWVzc2FnZTogJ0VuY291bnRlcmVkIGVycm9yIGNoZWNraW5nIGZvciBleGlzdGluZyByZXN0b3JlLicsXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHByb3ZpZGVyID0gZ2V0UHJvdmlkZXIoeyBlbnZpcm9ubWVudCwgb3B0aW9ucyB9KTtcbiAgaWYgKHByb3ZpZGVyID09PSB1bmRlZmluZWQpIHtcbiAgICBtb25pdG9yLmxvZyh7XG4gICAgICBuYW1lOiAnbmVvX3Jlc3RvcmVfc2tpcF9ub19wcm92aWRlcicsXG4gICAgICBtZXNzYWdlOiAnU2tpcHBpbmcgcmVzdG9yZSBkdWUgdG8gbm8gcHJvdmlkZXInLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgbW9uaXRvci5jYXB0dXJlU3BhbkxvZzxQcm9taXNlPHZvaWQ+PihcbiAgICBhc3luYyAoc3BhbikgPT4ge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW2ZzLnJlbW92ZShkYXRhUGF0aCksIGZzLnJlbW92ZSh0bXBQYXRoKV0pO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW2ZzLmVuc3VyZURpcih0bXBQYXRoKSwgZnMuZW5zdXJlRGlyKHBhdGguZGlybmFtZShyZWFkeVBhdGgpKSwgZnMuZW5zdXJlRGlyKGRhdGFQYXRoKV0pO1xuICAgICAgYXdhaXQgcHJvdmlkZXIucmVzdG9yZShzcGFuKTtcbiAgICAgIGF3YWl0IGZzLnJlbW92ZSh0bXBQYXRoKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShyZWFkeVBhdGgsICdyZWFkeScpO1xuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ25lb19yZXN0b3JlX2V4ZWN1dGUnLFxuICAgICAgdHJhY2U6IHRydWUsXG4gICAgfSxcbiAgKTtcbn07XG4iXX0=