UNPKG

6.14 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 await fs.access(readyPath, fs.constants.R_OK | fs.constants.W_OK);
9 monitor.log({
10 name: 'neo_restore_skip_exists',
11 message: 'Skipping restore beause it already exists',
12 });
13 return;
14 }
15 catch (error) {
16 if (error.code !== 'ENOENT') {
17 monitor.logError({
18 name: 'neo_restore_skip_exists',
19 message: 'Encountered error checking for existing restore.',
20 error,
21 });
22 throw error;
23 }
24 }
25 const provider = getProvider({ environment, options });
26 if (provider === undefined) {
27 monitor.log({
28 name: 'neo_restore_skip_no_provider',
29 message: 'Skipping restore due to no provider',
30 });
31 return;
32 }
33 await monitor.captureSpanLog(async (span) => {
34 await Promise.all([fs.remove(dataPath), fs.remove(tmpPath)]);
35 await Promise.all([fs.ensureDir(tmpPath), fs.ensureDir(path.dirname(readyPath)), fs.ensureDir(dataPath)]);
36 await provider.restore(span);
37 await fs.remove(tmpPath);
38 await fs.writeFile(readyPath, 'ready');
39 }, {
40 name: 'neo_restore_execute',
41 trace: true,
42 });
43};
44
45//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQ2xCLFdBQVcsRUFDWCxPQUFPLEdBS1IsRUFBRSxFQUFFO0lBQ0gsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUNyRCxJQUFJO1FBRUYsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDVixJQUFJLEVBQUUseUJBQXlCO1lBQy9CLE9BQU8sRUFBRSwyQ0FBMkM7U0FDckQsQ0FBQyxDQUFDO1FBRUgsT0FBTztLQUNSO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ2YsSUFBSSxFQUFFLHlCQUF5QjtnQkFDL0IsT0FBTyxFQUFFLGtEQUFrRDtnQkFDM0QsS0FBSzthQUNOLENBQUMsQ0FBQztZQUVILE1BQU0sS0FBSyxDQUFDO1NBQ2I7S0FDRjtJQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxPQUFPLEVBQUUscUNBQXFDO1NBQy9DLENBQUMsQ0FBQztRQUVILE9BQU87S0FDUjtJQUVELE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FDMUIsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFHLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDLEVBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1kYXRhLWJhY2t1cC9zcmMvcmVzdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbml0b3IgfSBmcm9tICdAbmVvLW9uZS9tb25pdG9yJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBnZXRQcm92aWRlciB9IGZyb20gJy4vZ2V0UHJvdmlkZXInO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IHJlc3RvcmUgPSBhc3luYyAoe1xuICBtb25pdG9yOiBtb25pdG9ySW4sXG4gIGVudmlyb25tZW50LFxuICBvcHRpb25zLFxufToge1xuICByZWFkb25seSBtb25pdG9yOiBNb25pdG9yO1xuICByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IE9wdGlvbnM7XG59KSA9PiB7XG4gIGNvbnN0IG1vbml0b3IgPSBtb25pdG9ySW4uYXQoJ25vZGVfZGF0YV9yZXN0b3JlJyk7XG4gIGNvbnN0IHsgZGF0YVBhdGgsIHRtcFBhdGgsIHJlYWR5UGF0aCB9ID0gZW52aXJvbm1lbnQ7XG4gIHRyeSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBhd2FpdCBmcy5hY2Nlc3MocmVhZHlQYXRoLCBmcy5jb25zdGFudHMuUl9PSyB8IGZzLmNvbnN0YW50cy5XX09LKTtcbiAgICBtb25pdG9yLmxvZyh7XG4gICAgICBuYW1lOiAnbmVvX3Jlc3RvcmVfc2tpcF9leGlzdHMnLFxuICAgICAgbWVzc2FnZTogJ1NraXBwaW5nIHJlc3RvcmUgYmVhdXNlIGl0IGFscmVhZHkgZXhpc3RzJyxcbiAgICB9KTtcblxuICAgIHJldHVybjtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IuY29kZSAhPT0gJ0VOT0VOVCcpIHtcbiAgICAgIG1vbml0b3IubG9nRXJyb3Ioe1xuICAgICAgICBuYW1lOiAnbmVvX3Jlc3RvcmVfc2tpcF9leGlzdHMnLFxuICAgICAgICBtZXNzYWdlOiAnRW5jb3VudGVyZWQgZXJyb3IgY2hlY2tpbmcgZm9yIGV4aXN0aW5nIHJlc3RvcmUuJyxcbiAgICAgICAgZXJyb3IsXG4gICAgICB9KTtcblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcHJvdmlkZXIgPSBnZXRQcm92aWRlcih7IGVudmlyb25tZW50LCBvcHRpb25zIH0pO1xuICBpZiAocHJvdmlkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIG1vbml0b3IubG9nKHtcbiAgICAgIG5hbWU6ICduZW9fcmVzdG9yZV9za2lwX25vX3Byb3ZpZGVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTa2lwcGluZyByZXN0b3JlIGR1ZSB0byBubyBwcm92aWRlcicsXG4gICAgfSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBtb25pdG9yLmNhcHR1cmVTcGFuTG9nPFByb21pc2U8dm9pZD4+KFxuICAgIGFzeW5jIChzcGFuKSA9PiB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbZnMucmVtb3ZlKGRhdGFQYXRoKSwgZnMucmVtb3ZlKHRtcFBhdGgpXSk7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbZnMuZW5zdXJlRGlyKHRtcFBhdGgpLCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKHJlYWR5UGF0aCkpLCBmcy5lbnN1cmVEaXIoZGF0YVBhdGgpXSk7XG4gICAgICBhd2FpdCBwcm92aWRlci5yZXN0b3JlKHNwYW4pO1xuICAgICAgYXdhaXQgZnMucmVtb3ZlKHRtcFBhdGgpO1xuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHJlYWR5UGF0aCwgJ3JlYWR5Jyk7XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnbmVvX3Jlc3RvcmVfZXhlY3V0ZScsXG4gICAgICB0cmFjZTogdHJ1ZSxcbiAgICB9LFxuICApO1xufTtcbiJdfQ==