rightsize 0.1.2 → 0.3.0
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/README.md +36 -4
- package/dist/backend-docker/backend.d.ts +76 -1
- package/dist/backend-docker/backend.d.ts.map +1 -1
- package/dist/backend-docker/backend.js +156 -13
- package/dist/backend-docker/backend.js.map +1 -1
- package/dist/backend-docker/cli.d.ts +25 -0
- package/dist/backend-docker/cli.d.ts.map +1 -0
- package/dist/backend-docker/cli.js +64 -0
- package/dist/backend-docker/cli.js.map +1 -0
- package/dist/backend-docker/labels.d.ts +27 -5
- package/dist/backend-docker/labels.d.ts.map +1 -1
- package/dist/backend-docker/labels.js +33 -5
- package/dist/backend-docker/labels.js.map +1 -1
- package/dist/backend-msb/backend.d.ts +89 -6
- package/dist/backend-msb/backend.d.ts.map +1 -1
- package/dist/backend-msb/backend.js +179 -14
- package/dist/backend-msb/backend.js.map +1 -1
- package/dist/backend-msb/commands.d.ts +10 -0
- package/dist/backend-msb/commands.d.ts.map +1 -1
- package/dist/backend-msb/commands.js +29 -1
- package/dist/backend-msb/commands.js.map +1 -1
- package/dist/backend-msb/provider.d.ts.map +1 -1
- package/dist/backend-msb/provider.js +7 -11
- package/dist/backend-msb/provider.js.map +1 -1
- package/dist/backend-msb/provisioner.d.ts.map +1 -1
- package/dist/backend-msb/provisioner.js +1 -20
- package/dist/backend-msb/provisioner.js.map +1 -1
- package/dist/backend-msb/snapshot-not-found.d.ts +25 -0
- package/dist/backend-msb/snapshot-not-found.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-not-found.js +27 -0
- package/dist/backend-msb/snapshot-not-found.js.map +1 -0
- package/dist/core/backend.d.ts +124 -0
- package/dist/core/backend.d.ts.map +1 -1
- package/dist/core/backends.d.ts +16 -2
- package/dist/core/backends.d.ts.map +1 -1
- package/dist/core/backends.js +39 -5
- package/dist/core/backends.js.map +1 -1
- package/dist/core/cache-dir.d.ts +17 -0
- package/dist/core/cache-dir.d.ts.map +1 -0
- package/dist/core/cache-dir.js +29 -0
- package/dist/core/cache-dir.js.map +1 -0
- package/dist/core/checkpoint/api.d.ts +80 -0
- package/dist/core/checkpoint/api.d.ts.map +1 -0
- package/dist/core/checkpoint/api.js +138 -0
- package/dist/core/checkpoint/api.js.map +1 -0
- package/dist/core/checkpoint/name.d.ts +12 -0
- package/dist/core/checkpoint/name.d.ts.map +1 -0
- package/dist/core/checkpoint/name.js +17 -0
- package/dist/core/checkpoint/name.js.map +1 -0
- package/dist/core/checkpoint/ref.d.ts +12 -0
- package/dist/core/checkpoint/ref.d.ts.map +1 -0
- package/dist/core/checkpoint/ref.js +16 -0
- package/dist/core/checkpoint/ref.js.map +1 -0
- package/dist/core/checkpoint/registry.d.ts +107 -0
- package/dist/core/checkpoint/registry.d.ts.map +1 -0
- package/dist/core/checkpoint/registry.js +180 -0
- package/dist/core/checkpoint/registry.js.map +1 -0
- package/dist/core/cleanup.d.ts +19 -4
- package/dist/core/cleanup.d.ts.map +1 -1
- package/dist/core/cleanup.js +14 -27
- package/dist/core/cleanup.js.map +1 -1
- package/dist/core/diagnostics.d.ts +33 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +76 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/errors.d.ts +97 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +129 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/generic-container.d.ts +176 -1
- package/dist/core/generic-container.d.ts.map +1 -1
- package/dist/core/generic-container.js +566 -3
- package/dist/core/generic-container.js.map +1 -1
- package/dist/core/model.d.ts +39 -0
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/network.d.ts.map +1 -1
- package/dist/core/network.js +2 -0
- package/dist/core/network.js.map +1 -1
- package/dist/core/reaper/env.d.ts +14 -0
- package/dist/core/reaper/env.d.ts.map +1 -0
- package/dist/core/reaper/env.js +22 -0
- package/dist/core/reaper/env.js.map +1 -0
- package/dist/core/reaper/init.d.ts +39 -0
- package/dist/core/reaper/init.d.ts.map +1 -0
- package/dist/core/reaper/init.js +140 -0
- package/dist/core/reaper/init.js.map +1 -0
- package/dist/core/reaper/ledger.d.ts +32 -0
- package/dist/core/reaper/ledger.d.ts.map +1 -0
- package/dist/core/reaper/ledger.js +160 -0
- package/dist/core/reaper/ledger.js.map +1 -0
- package/dist/core/reaper/process-liveness.d.ts +39 -0
- package/dist/core/reaper/process-liveness.d.ts.map +1 -0
- package/dist/core/reaper/process-liveness.js +117 -0
- package/dist/core/reaper/process-liveness.js.map +1 -0
- package/dist/core/reaper/run-record.d.ts +48 -0
- package/dist/core/reaper/run-record.d.ts.map +1 -0
- package/dist/core/reaper/run-record.js +58 -0
- package/dist/core/reaper/run-record.js.map +1 -0
- package/dist/core/reaper/sweep.d.ts +23 -0
- package/dist/core/reaper/sweep.d.ts.map +1 -0
- package/dist/core/reaper/sweep.js +76 -0
- package/dist/core/reaper/sweep.js.map +1 -0
- package/dist/core/reaper/watchdog.d.ts +100 -0
- package/dist/core/reaper/watchdog.d.ts.map +1 -0
- package/dist/core/reaper/watchdog.js +412 -0
- package/dist/core/reaper/watchdog.js.map +1 -0
- package/dist/core/reuse/env.d.ts +12 -0
- package/dist/core/reuse/env.d.ts.map +1 -0
- package/dist/core/reuse/env.js +15 -0
- package/dist/core/reuse/env.js.map +1 -0
- package/dist/core/reuse/hash.d.ts +34 -0
- package/dist/core/reuse/hash.d.ts.map +1 -0
- package/dist/core/reuse/hash.js +52 -0
- package/dist/core/reuse/hash.js.map +1 -0
- package/dist/core/reuse/registry.d.ts +50 -0
- package/dist/core/reuse/registry.d.ts.map +1 -0
- package/dist/core/reuse/registry.js +75 -0
- package/dist/core/reuse/registry.js.map +1 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/keycloak.js +1 -1
- package/dist/modules/mysql.d.ts.map +1 -1
- package/dist/modules/mysql.js +4 -3
- package/dist/modules/mysql.js.map +1 -1
- package/package.json +1 -1
- package/dist/backend-msb/reaper.d.ts +0 -10
- package/dist/backend-msb/reaper.d.ts.map +0 -1
- package/dist/backend-msb/reaper.js +0 -73
- package/dist/backend-msb/reaper.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,CAAC,IAAmB;QACrB,MAAM,IAAI,GAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,uEAAuE;YACvE,oEAAoE;YACpE,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK1E,qBAAa,kBAAmB,YAAW,eAAe;IACxD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,WAAW,IAAI,OAAO;IAQtB,iBAAiB,IAAI,MAAM;IAa3B,MAAM,IAAI,cAAc;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK1E,qBAAa,kBAAmB,YAAW,eAAe;IACxD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,WAAW,IAAI,OAAO;IAQtB,iBAAiB,IAAI,MAAM;IAa3B,MAAM,IAAI,cAAc;CAUzB"}
|
|
@@ -24,17 +24,13 @@ export class MsbBackendProvider {
|
|
|
24
24
|
}
|
|
25
25
|
create() {
|
|
26
26
|
// create() is a synchronous ServiceLoader-style factory, but
|
|
27
|
-
// locating/installing msb is inherently async. The
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// being usable — the next run's sweep gets another chance, and a
|
|
35
|
-
// container that's actually still running is left alone either way.
|
|
36
|
-
});
|
|
37
|
-
return backend;
|
|
27
|
+
// locating/installing msb is inherently async. The backend holds the
|
|
28
|
+
// provisioning promise and awaits it lazily on first use. The
|
|
29
|
+
// liveness-blind per-backend sweep that used to run here has been
|
|
30
|
+
// replaced by the ledger-based sweep in `core/reaper`, triggered once
|
|
31
|
+
// per process from `Backends.active()`'s resolution gate — see
|
|
32
|
+
// `core/reaper/init.ts`.
|
|
33
|
+
return new MsbCliBackend(ensureInstalled());
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
36
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAC7B,iFAAiF;IACxE,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,EAAE,CAAC;IAEvB,WAAW;QACT,sEAAsE;QACtE,oEAAoE;QACpE,0EAA0E;QAC1E,4BAA4B;QAC5B,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACxF,CAAC;IAED,iBAAiB;QACf,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,oBAAoB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,sCAAsC,CAAC;QACpG,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CACL,oFAAoF;gBACpF,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,sEAAsE,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,6DAA6D;QAC7D,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/backend-msb/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAC7B,iFAAiF;IACxE,IAAI,GAAG,cAAc,CAAC;IACtB,QAAQ,GAAG,EAAE,CAAC;IAEvB,WAAW;QACT,sEAAsE;QACtE,oEAAoE;QACpE,0EAA0E;QAC1E,4BAA4B;QAC5B,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACxF,CAAC;IAED,iBAAiB;QACf,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,oBAAoB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,sCAAsC,CAAC;QACpG,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,CACL,oFAAoF;gBACpF,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,sEAAsE,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,6DAA6D;QAC7D,qEAAqE;QACrE,8DAA8D;QAC9D,kEAAkE;QAClE,sEAAsE;QACtE,+DAA+D;QAC/D,yBAAyB;QACzB,OAAO,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisioner.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"provisioner.d.ts","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,WAAW,UAAU,CAAC;AA6QnC,gHAAgH;AAChH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAED,iKAAiK;AACjK,wBAAgB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;AAED,2GAA2G;AAC3G,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -3,9 +3,9 @@ import * as fsp from "node:fs/promises";
|
|
|
3
3
|
import * as http from "node:http";
|
|
4
4
|
import * as https from "node:https";
|
|
5
5
|
import * as path from "node:path";
|
|
6
|
-
import * as os from "node:os";
|
|
7
6
|
import { createHash } from "node:crypto";
|
|
8
7
|
import { ProvisionError } from "../core/errors.js";
|
|
8
|
+
import { cacheDir as defaultCacheDir } from "../core/cache-dir.js";
|
|
9
9
|
import { PlatformInfo } from "./platform.js";
|
|
10
10
|
export const MSB_VERSION = "0.6.6";
|
|
11
11
|
const DEFAULT_BASE = `https://github.com/superradcompany/microsandbox/releases/download/v${MSB_VERSION}`;
|
|
@@ -13,25 +13,6 @@ const CONNECT_READ_TIMEOUT_MS = 300_000;
|
|
|
13
13
|
const STALE_LOCK_AGE_MS = 5 * 60 * 1000;
|
|
14
14
|
const LOCK_POLL_MS = 200;
|
|
15
15
|
const LOCK_WAIT_MAX_MS = 30_000;
|
|
16
|
-
/**
|
|
17
|
-
* `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
|
|
18
|
-
* non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
|
|
19
|
-
* roaming-profile setup can sync, or a Unix-style dotfile under the home
|
|
20
|
-
* dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
|
|
21
|
-
* matching what `os.homedir()` resolves to on a normal Windows install when
|
|
22
|
-
* `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
|
|
23
|
-
*/
|
|
24
|
-
function defaultCacheDir() {
|
|
25
|
-
const override = process.env["RIGHTSIZE_CACHE_DIR"];
|
|
26
|
-
if (override !== undefined) {
|
|
27
|
-
return override;
|
|
28
|
-
}
|
|
29
|
-
if (process.platform === "win32") {
|
|
30
|
-
const localAppData = process.env["LOCALAPPDATA"] ?? path.join(os.homedir(), "AppData", "Local");
|
|
31
|
-
return path.join(localAppData, "rightsize");
|
|
32
|
-
}
|
|
33
|
-
return path.join(os.homedir(), ".cache", "rightsize");
|
|
34
|
-
}
|
|
35
16
|
/**
|
|
36
17
|
* "Is this a usable, already-provisioned msb binary": on macOS/Linux this
|
|
37
18
|
* means POSIX-executable (the release asset ships without the exec bit set,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provisioner.js","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provisioner.js","sourceRoot":"","sources":["../../src/backend-msb/provisioner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True if `output` (an `msb snapshot inspect <ref>` non-zero exit's stderr)
|
|
3
|
+
* names msb's own "this snapshot does not exist" signal, as opposed to some
|
|
4
|
+
* other probe failure. Observed verbatim against the real msb 0.6.6 binary:
|
|
5
|
+
*
|
|
6
|
+
* ```
|
|
7
|
+
* error: snapshot not found: <path>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* Only this exact framing may resolve `hasCheckpoint` to `false` — every
|
|
11
|
+
* other non-zero exit (a corrupted state db, a permission error, a
|
|
12
|
+
* malformed argument, an msb crash) must propagate as a thrown error
|
|
13
|
+
* instead. `Checkpoints.find` reacts to a `false` probe by best-effort
|
|
14
|
+
* deleting the registry entry as stale, so collapsing an unrelated,
|
|
15
|
+
* possibly transient msb failure into `false` here would silently evict a
|
|
16
|
+
* perfectly valid named checkpoint from the registry — exactly the
|
|
17
|
+
* "best-effort false on probe errors" the SPI's own contract forbids.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately a substring match on the stable prefix rather than the full
|
|
20
|
+
* sentence — the trailing path varies per host, and msb has no structured/
|
|
21
|
+
* typed error for this, the same reasoning `isImageCacheCorruption` and
|
|
22
|
+
* `isMsbStateDbError` apply to their own wordings.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isSnapshotNotFoundError(output: string): boolean;
|
|
25
|
+
//# sourceMappingURL=snapshot-not-found.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-not-found.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-not-found.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True if `output` (an `msb snapshot inspect <ref>` non-zero exit's stderr)
|
|
3
|
+
* names msb's own "this snapshot does not exist" signal, as opposed to some
|
|
4
|
+
* other probe failure. Observed verbatim against the real msb 0.6.6 binary:
|
|
5
|
+
*
|
|
6
|
+
* ```
|
|
7
|
+
* error: snapshot not found: <path>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* Only this exact framing may resolve `hasCheckpoint` to `false` — every
|
|
11
|
+
* other non-zero exit (a corrupted state db, a permission error, a
|
|
12
|
+
* malformed argument, an msb crash) must propagate as a thrown error
|
|
13
|
+
* instead. `Checkpoints.find` reacts to a `false` probe by best-effort
|
|
14
|
+
* deleting the registry entry as stale, so collapsing an unrelated,
|
|
15
|
+
* possibly transient msb failure into `false` here would silently evict a
|
|
16
|
+
* perfectly valid named checkpoint from the registry — exactly the
|
|
17
|
+
* "best-effort false on probe errors" the SPI's own contract forbids.
|
|
18
|
+
*
|
|
19
|
+
* Deliberately a substring match on the stable prefix rather than the full
|
|
20
|
+
* sentence — the trailing path varies per host, and msb has no structured/
|
|
21
|
+
* typed error for this, the same reasoning `isImageCacheCorruption` and
|
|
22
|
+
* `isMsbStateDbError` apply to their own wordings.
|
|
23
|
+
*/
|
|
24
|
+
export function isSnapshotNotFoundError(output) {
|
|
25
|
+
return output.includes("snapshot not found");
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=snapshot-not-found.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-not-found.js","sourceRoot":"","sources":["../../src/backend-msb/snapshot-not-found.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/core/backend.d.ts
CHANGED
|
@@ -29,6 +29,56 @@ export interface FollowHandle {
|
|
|
29
29
|
/** Stops delivering further lines. Never flushes a trailing fragment — that only happens on the workload's own natural end. */
|
|
30
30
|
close(): Promise<void>;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* The argv PREFIXES a backend's own CLI uses to stop/remove a sandbox, or
|
|
34
|
+
* remove a network, by NAME — a sandbox/network name is appended by the
|
|
35
|
+
* caller to whichever prefix applies. This is for the reaper watchdog: a
|
|
36
|
+
* detached, out-of-process script spawned to outlive this process's own
|
|
37
|
+
* SIGKILL, which therefore cannot call back into this backend's normal
|
|
38
|
+
* async methods and instead shells out directly. `stop`/`removeNetwork` may
|
|
39
|
+
* be empty arrays where a backend has no separate stop step (docker's
|
|
40
|
+
* `rm -f` does both in one call) or no native network object to remove (msb
|
|
41
|
+
* emulates networks entirely in-guest — there is nothing to tear down).
|
|
42
|
+
*/
|
|
43
|
+
export interface ReaperKillCommand {
|
|
44
|
+
/** Argv prefix for this backend's "stop" step; empty if the backend has none (docker's `rm -f` does both in one call). */
|
|
45
|
+
readonly stop: ReadonlyArray<string>;
|
|
46
|
+
/** Argv prefix for this backend's "remove" step. */
|
|
47
|
+
readonly remove: ReadonlyArray<string>;
|
|
48
|
+
/** Argv prefix for removing a network by id/name; empty if the backend has no native network object (msb emulates networks entirely in-guest). */
|
|
49
|
+
readonly removeNetwork: ReadonlyArray<string>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Capability flags describing what a backend's own execution model can and
|
|
53
|
+
* cannot guarantee — distinct from `supportsNativeNetworks` (a networking
|
|
54
|
+
* detail), this is the seam API-level requirements like
|
|
55
|
+
* `withRequireIsolation()` and `checkpoint()` gate on. A value is set once
|
|
56
|
+
* per backend and never changes at runtime.
|
|
57
|
+
*/
|
|
58
|
+
export interface BackendCapabilities {
|
|
59
|
+
/**
|
|
60
|
+
* `true` when each sandbox runs in its own hardware-virtualized microVM
|
|
61
|
+
* with its own kernel (msb); `false` when sandboxes share the host kernel
|
|
62
|
+
* (docker). `withRequireIsolation()` demands `true`.
|
|
63
|
+
*/
|
|
64
|
+
readonly hardwareIsolated: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* `true` when the backend can checkpoint/restore a sandbox's state
|
|
67
|
+
* (docker: commit-to-image; msb: disk snapshot via `msb snapshot`).
|
|
68
|
+
* `GenericContainer.checkpoint()` demands `true`.
|
|
69
|
+
*/
|
|
70
|
+
readonly checkpoint: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* `true` when a `checkpoint()` call on this backend restarts the
|
|
73
|
+
* sandbox's workload as a side effect of capturing state (msb: the
|
|
74
|
+
* stop/snapshot/reboot cycle boots a fresh microVM) — `false` when the
|
|
75
|
+
* sandbox is undisturbed (docker: commit-to-image never touches the
|
|
76
|
+
* running container). `GenericContainer.checkpoint()` re-runs the
|
|
77
|
+
* container's own wait strategy before returning exactly when this is
|
|
78
|
+
* `true`, so a caller never gets back a false-ready container.
|
|
79
|
+
*/
|
|
80
|
+
readonly checkpointRestartsWorkload: boolean;
|
|
81
|
+
}
|
|
32
82
|
/**
|
|
33
83
|
* The one interface every container backend implements. Host ports arrive
|
|
34
84
|
* in `ContainerSpec.ports` already chosen (see `FreePorts`) — a backend
|
|
@@ -39,6 +89,8 @@ export interface SandboxBackend {
|
|
|
39
89
|
readonly name: string;
|
|
40
90
|
/** `true` for docker (native bridge networks); `false` for msb, which emulates links over exec-stream tunnels instead. */
|
|
41
91
|
readonly supportsNativeNetworks: boolean;
|
|
92
|
+
/** This backend's isolation/checkpoint capability flags — see `BackendCapabilities`. */
|
|
93
|
+
readonly capabilities: BackendCapabilities;
|
|
42
94
|
/** Allocate the backend-native container without starting it. Must not bind ports or run the workload yet. */
|
|
43
95
|
create(spec: ContainerSpec): Promise<SandboxHandle>;
|
|
44
96
|
/** Boot the workload. On a bind conflict, throw (or wrap a cause chain ending in) `PortBindConflictError` so `GenericContainer`'s retry loop can classify it. */
|
|
@@ -47,6 +99,64 @@ export interface SandboxBackend {
|
|
|
47
99
|
stop(handle: SandboxHandle): Promise<void>;
|
|
48
100
|
/** Best-effort removal of the backend-native resource; callers swallow failures during teardown. */
|
|
49
101
|
remove(handle: SandboxHandle): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Captures `handle`'s current state under `ref` —
|
|
104
|
+
* `GenericContainer.checkpoint()`'s backend call, gated on
|
|
105
|
+
* `capabilities.checkpoint` BEFORE this is ever reached, so an
|
|
106
|
+
* unsupported backend never has to implement this for real (it may throw
|
|
107
|
+
* defensively). Docker: commits the running container to image `ref`,
|
|
108
|
+
* undisturbed. Microsandbox: stop the sandbox, `msb snapshot create` a
|
|
109
|
+
* disk snapshot named `ref`, then start the sandbox back up — the
|
|
110
|
+
* workload restarts, which is why `capabilities.checkpointRestartsWorkload`
|
|
111
|
+
* exists. Never called on a backend whose `capabilities.checkpoint` is
|
|
112
|
+
* `false`.
|
|
113
|
+
*/
|
|
114
|
+
createCheckpoint(handle: SandboxHandle, ref: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Best-effort removal of a checkpoint identified by `ref` (docker: `rmi`;
|
|
117
|
+
* microsandbox: `msb snapshot rm`) — "not found" is success, the same
|
|
118
|
+
* contract as `removeByName`. SPI-only: there is no public
|
|
119
|
+
* `GenericContainer` method for this, only documented CLI one-liners for
|
|
120
|
+
* end users; it exists so tests can keep shared CI state clean.
|
|
121
|
+
*/
|
|
122
|
+
removeCheckpoint(ref: string): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Probes whether a checkpoint artifact identified by `ref` still exists —
|
|
125
|
+
* docker: image inspect; microsandbox: `msb snapshot inspect <ref>` exit
|
|
126
|
+
* code. `Checkpoints.find`'s only caller: it never probes an entry
|
|
127
|
+
* recorded under a DIFFERENT backend than the one this is called on, so in
|
|
128
|
+
* practice this is only ever invoked on a backend whose
|
|
129
|
+
* `capabilities.checkpoint` is `true`. A backend that never supports
|
|
130
|
+
* checkpoints at all may implement this by throwing
|
|
131
|
+
* `UnsupportedByBackendError`, the same defensive-throw convention
|
|
132
|
+
* `createCheckpoint` documents for that case. A probe FAILURE (the
|
|
133
|
+
* underlying call itself errors) must propagate — only a confirmed
|
|
134
|
+
* "does not exist" may resolve `false`; best-effort `false` on an error is
|
|
135
|
+
* not allowed.
|
|
136
|
+
*/
|
|
137
|
+
hasCheckpoint(ref: string): Promise<boolean>;
|
|
138
|
+
/**
|
|
139
|
+
* Best-effort stop+remove of a sandbox identified by NAME rather than a
|
|
140
|
+
* `SandboxHandle` — the reaping ledger only ever stores names (it must be
|
|
141
|
+
* legible to a sweep running in a different process, possibly a
|
|
142
|
+
* different rightsize language implementation entirely, that never held
|
|
143
|
+
* a handle for this sandbox). "Not found" is silently fine: sweeps are
|
|
144
|
+
* idempotent and may race another process's sweep for the same name.
|
|
145
|
+
*/
|
|
146
|
+
removeByName(name: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Checks whether a sandbox named `spec.name` is currently running and, if
|
|
149
|
+
* so, returns a handle for it — reuse's adopt path, which never held a
|
|
150
|
+
* handle for a sandbox a possibly-earlier process created. The returned
|
|
151
|
+
* handle's `spec` is `spec` itself, embedded verbatim: this call never
|
|
152
|
+
* re-derives a `ContainerSpec` from backend-native inspection data, it
|
|
153
|
+
* only confirms liveness under the NAME the caller already built a spec
|
|
154
|
+
* for. `undefined` means not running — including "the backend has no
|
|
155
|
+
* record of this name at all."
|
|
156
|
+
*/
|
|
157
|
+
findRunning(spec: ContainerSpec): Promise<SandboxHandle | undefined>;
|
|
158
|
+
/** This backend's reaper watchdog kill-command prefixes — see `ReaperKillCommand`'s own doc. */
|
|
159
|
+
reaperKillCommand(): Promise<ReaperKillCommand>;
|
|
50
160
|
/** Run a one-shot command inside a running container and wait for it to exit. */
|
|
51
161
|
exec(handle: SandboxHandle, cmd: ReadonlyArray<string>): Promise<ExecResult>;
|
|
52
162
|
/** Fetch everything logged so far (bounded tail), for a one-shot read. */
|
|
@@ -64,6 +174,20 @@ export interface SandboxBackend {
|
|
|
64
174
|
removeNetwork(networkId: string): Promise<void>;
|
|
65
175
|
/** Default no-op: docker relies on native networks. Only an emulating backend overrides it. */
|
|
66
176
|
installNetworkLinks(handle: SandboxHandle, links: ReadonlyArray<NetworkLink>): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Copies a host file or directory into the guest at `containerPath` — the
|
|
179
|
+
* TRANSFER step only. `GenericContainer.copyFileToContainer()` owns the
|
|
180
|
+
* running-check, the absolute-path check, and the `mkdir -p` pre-step (via
|
|
181
|
+
* `exec`) before this is ever called; this method does only the copy
|
|
182
|
+
* itself. `cp -r`-style destination naming: copying a directory to an
|
|
183
|
+
* absent destination path produces that path as a copy of the source's
|
|
184
|
+
* CONTENTS, not the source nested one level down — both backends' own
|
|
185
|
+
* copy tools already behave this way. A failure must carry the
|
|
186
|
+
* underlying tool's stderr in a `BackendError`, never a silent success.
|
|
187
|
+
*/
|
|
188
|
+
copyToContainer(handle: SandboxHandle, hostPath: string, containerPath: string): Promise<void>;
|
|
189
|
+
/** The reverse direction of `copyToContainer` — see its own doc for the shared contract (transfer only, `cp -r`-style naming, stderr on failure). */
|
|
190
|
+
copyFromContainer(handle: SandboxHandle, containerPath: string, hostPath: string): Promise<void>;
|
|
67
191
|
/** Best-effort teardown of backend-owned resources (sockets, child processes). */
|
|
68
192
|
close(): Promise<void>;
|
|
69
193
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/core/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,+HAA+H;IAC/H,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0HAA0H;IAC1H,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,8GAA8G;IAC9G,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,iKAAiK;IACjK,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kEAAkE;IAClE,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,oGAAoG;IACpG,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,iFAAiF;IACjF,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,0EAA0E;IAC1E,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3F,yDAAyD;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,mEAAmE;IACnE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,+FAA+F;IAC/F,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,kFAAkF;IAClF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2HAA2H;IAC3H,WAAW,IAAI,OAAO,CAAC;IACvB,8GAA8G;IAC9G,iBAAiB,IAAI,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,MAAM,IAAI,cAAc,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/core/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/core/backends.d.ts
CHANGED
|
@@ -22,7 +22,19 @@ export declare function resolve(providers: readonly BackendProvider[], requested
|
|
|
22
22
|
* cleanup (see `src/core/cleanup.ts`) the first time a backend is created.
|
|
23
23
|
*/
|
|
24
24
|
declare function active(): SandboxBackend;
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Awaits the reaper's one-time-per-process bring-up (run record, sweep,
|
|
27
|
+
* watchdog — see `core/reaper/init.ts`) against whatever `active()` resolves.
|
|
28
|
+
* Colocated with `active()`'s own memoization so the kickoff happens right
|
|
29
|
+
* after resolution succeeds, but kept as a SEPARATE function (rather than
|
|
30
|
+
* folded into `active()` itself) so `active()` stays synchronous — its
|
|
31
|
+
* existing callers, including test code that resolves a backend without
|
|
32
|
+
* ever wanting reaper side effects, are unaffected. `GenericContainer.start()`
|
|
33
|
+
* awaits this before its first `backend.create()` call, for every container
|
|
34
|
+
* that resolves its backend from here (not one pinned via `withBackend()`).
|
|
35
|
+
*/
|
|
36
|
+
declare function reaperReady(): Promise<void>;
|
|
37
|
+
/** Test seam: forces the next `Backends.active()` call to re-resolve, and the next `reaperReady()` call to redo the reaper's bring-up. */
|
|
26
38
|
declare function _resetActiveForTests(): void;
|
|
27
39
|
/** The library's single entry point for obtaining the active `SandboxBackend`. */
|
|
28
40
|
export declare const Backends: {
|
|
@@ -30,7 +42,9 @@ export declare const Backends: {
|
|
|
30
42
|
resolve: typeof resolve;
|
|
31
43
|
/** The memoized, per-process active backend — resolved from whatever's registered plus `RIGHTSIZE_BACKEND`. */
|
|
32
44
|
active: typeof active;
|
|
33
|
-
/**
|
|
45
|
+
/** Awaits the reaper's one-time bring-up against the active backend — see the doc above. */
|
|
46
|
+
reaperReady: typeof reaperReady;
|
|
47
|
+
/** Test seam: forces the next `active()`/`reaperReady()` call to re-resolve/redo bring-up. Never call from library code. */
|
|
34
48
|
_resetActiveForTests: typeof _resetActiveForTests;
|
|
35
49
|
};
|
|
36
50
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AASpE,yHAAyH;AACzH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAE/D;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,eAAe,EAAE,CAE9D;AAMD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CA2B5G;AAKD;;;;GAIG;AACH,iBAAS,MAAM,IAAI,cAAc,CA4DhC;AAID;;;;;;;;;;GAUG;AACH,iBAAS,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpC;AAED,0IAA0I;AAC1I,iBAAS,oBAAoB,IAAI,IAAI,CAKpC;AAED,kFAAkF;AAClF,eAAO,MAAM,QAAQ;IACnB,+EAA+E;;IAE/E,+GAA+G;;IAE/G,4FAA4F;;IAE5F,4HAA4H;;CAE7H,CAAC"}
|
package/dist/core/backends.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ensureReaperInitialized, notifyBackendClosed, _resetReaperForTests } from "./reaper/init.js";
|
|
1
2
|
// The ServiceLoader analog: an explicit process-global registry. Each
|
|
2
3
|
// backend subpath (`rightsize/backend-msb`, `rightsize/backend-docker`)
|
|
3
4
|
// calls registerBackend at import time — the `sideEffects` entry in
|
|
@@ -78,8 +79,8 @@ function active() {
|
|
|
78
79
|
// This is best-effort and NOT the primary safety net: a process that
|
|
79
80
|
// dies via SIGKILL, or exits through the synchronous "exit" path
|
|
80
81
|
// before beforeExit ever fires, is instead covered by the per-
|
|
81
|
-
// container cleanupSync registered in cleanup.ts and by the
|
|
82
|
-
// reaper
|
|
82
|
+
// container cleanupSync registered in cleanup.ts and by the
|
|
83
|
+
// ledger-based reaper (see reaperReady() below and core/reaper/init.ts).
|
|
83
84
|
//
|
|
84
85
|
// "beforeExit" re-fires every time the event loop would otherwise go
|
|
85
86
|
// idle. close() is async — it awaits HTTP/subprocess calls — so
|
|
@@ -95,25 +96,56 @@ function active() {
|
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
closeStarted = true;
|
|
99
|
+
// Run-record cleanup rule (see reaper/init.ts's notifyBackendClosed
|
|
100
|
+
// doc): once close()'s own-run cleanup has settled — success or
|
|
101
|
+
// failure, since close() is itself best-effort and there is no
|
|
102
|
+
// caller left to report a failure to — this run's ledger files are
|
|
103
|
+
// stale and get deleted. notifyBackendClosed is itself best-effort
|
|
104
|
+
// (never rejects in a way that escapes here).
|
|
105
|
+
const afterClose = () => {
|
|
106
|
+
notifyBackendClosed().catch(() => { });
|
|
107
|
+
};
|
|
98
108
|
// Best-effort: a backend whose close() rejects — or, as a defensive
|
|
99
109
|
// fake in a test can do, throws synchronously before ever producing
|
|
100
110
|
// a Promise to attach .catch() to — must not crash the process on
|
|
101
111
|
// its way out. There is no caller left to report the failure to.
|
|
102
112
|
try {
|
|
103
|
-
activeBackend?.close().
|
|
113
|
+
activeBackend?.close().then(afterClose, afterClose);
|
|
104
114
|
}
|
|
105
115
|
catch {
|
|
106
116
|
// Swallowed for the same reason as the .catch() above.
|
|
117
|
+
afterClose();
|
|
107
118
|
}
|
|
108
119
|
});
|
|
109
120
|
}
|
|
110
121
|
}
|
|
111
122
|
return activeBackend;
|
|
112
123
|
}
|
|
113
|
-
|
|
124
|
+
let reaperReadyPromise;
|
|
125
|
+
/**
|
|
126
|
+
* Awaits the reaper's one-time-per-process bring-up (run record, sweep,
|
|
127
|
+
* watchdog — see `core/reaper/init.ts`) against whatever `active()` resolves.
|
|
128
|
+
* Colocated with `active()`'s own memoization so the kickoff happens right
|
|
129
|
+
* after resolution succeeds, but kept as a SEPARATE function (rather than
|
|
130
|
+
* folded into `active()` itself) so `active()` stays synchronous — its
|
|
131
|
+
* existing callers, including test code that resolves a backend without
|
|
132
|
+
* ever wanting reaper side effects, are unaffected. `GenericContainer.start()`
|
|
133
|
+
* awaits this before its first `backend.create()` call, for every container
|
|
134
|
+
* that resolves its backend from here (not one pinned via `withBackend()`).
|
|
135
|
+
*/
|
|
136
|
+
function reaperReady() {
|
|
137
|
+
const backend = active();
|
|
138
|
+
if (reaperReadyPromise === undefined) {
|
|
139
|
+
reaperReadyPromise = ensureReaperInitialized(backend);
|
|
140
|
+
}
|
|
141
|
+
return reaperReadyPromise;
|
|
142
|
+
}
|
|
143
|
+
/** Test seam: forces the next `Backends.active()` call to re-resolve, and the next `reaperReady()` call to redo the reaper's bring-up. */
|
|
114
144
|
function _resetActiveForTests() {
|
|
115
145
|
activeBackend = undefined;
|
|
116
146
|
exitHookInstalled = false;
|
|
147
|
+
reaperReadyPromise = undefined;
|
|
148
|
+
_resetReaperForTests();
|
|
117
149
|
}
|
|
118
150
|
/** The library's single entry point for obtaining the active `SandboxBackend`. */
|
|
119
151
|
export const Backends = {
|
|
@@ -121,7 +153,9 @@ export const Backends = {
|
|
|
121
153
|
resolve,
|
|
122
154
|
/** The memoized, per-process active backend — resolved from whatever's registered plus `RIGHTSIZE_BACKEND`. */
|
|
123
155
|
active,
|
|
124
|
-
/**
|
|
156
|
+
/** Awaits the reaper's one-time bring-up against the active backend — see the doc above. */
|
|
157
|
+
reaperReady,
|
|
158
|
+
/** Test seam: forces the next `active()`/`reaperReady()` call to re-resolve/redo bring-up. Never call from library code. */
|
|
125
159
|
_resetActiveForTests,
|
|
126
160
|
};
|
|
127
161
|
//# sourceMappingURL=backends.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backends.js","sourceRoot":"","sources":["../../src/core/backends.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one rightsize runtime cache directory, shared by every part of the
|
|
3
|
+
* library that needs a place on disk: the msb toolchain provisioner
|
|
4
|
+
* (`<cacheDir>/msb/<version>/...`), the reaping ledger (`<cacheDir>/runs/...`),
|
|
5
|
+
* and the watchdog scripts (`<cacheDir>/reaper/...`). Lives in core rather
|
|
6
|
+
* than the msb provisioner because the ledger needs it even in a
|
|
7
|
+
* docker-only process, which never touches `backend-msb` at all.
|
|
8
|
+
*
|
|
9
|
+
* `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
|
|
10
|
+
* non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
|
|
11
|
+
* roaming-profile setup can sync, or a Unix-style dotfile under the home
|
|
12
|
+
* dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
|
|
13
|
+
* matching what `os.homedir()` resolves to on a normal Windows install when
|
|
14
|
+
* `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
|
|
15
|
+
*/
|
|
16
|
+
export declare function cacheDir(): string;
|
|
17
|
+
//# sourceMappingURL=cache-dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-dir.d.ts","sourceRoot":"","sources":["../../src/core/cache-dir.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAUjC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import * as os from "node:os";
|
|
3
|
+
/**
|
|
4
|
+
* The one rightsize runtime cache directory, shared by every part of the
|
|
5
|
+
* library that needs a place on disk: the msb toolchain provisioner
|
|
6
|
+
* (`<cacheDir>/msb/<version>/...`), the reaping ledger (`<cacheDir>/runs/...`),
|
|
7
|
+
* and the watchdog scripts (`<cacheDir>/reaper/...`). Lives in core rather
|
|
8
|
+
* than the msb provisioner because the ledger needs it even in a
|
|
9
|
+
* docker-only process, which never touches `backend-msb` at all.
|
|
10
|
+
*
|
|
11
|
+
* `%LOCALAPPDATA%` is the Windows-idiomatic location for a machine-local,
|
|
12
|
+
* non-roaming native toolchain cache (as opposed to `%USERPROFILE%`, which a
|
|
13
|
+
* roaming-profile setup can sync, or a Unix-style dotfile under the home
|
|
14
|
+
* dir). Falls back to `%USERPROFILE%\AppData\Local` if the env var is unset,
|
|
15
|
+
* matching what `os.homedir()` resolves to on a normal Windows install when
|
|
16
|
+
* `LOCALAPPDATA` isn't populated (rare, but seen on some minimal/CI images).
|
|
17
|
+
*/
|
|
18
|
+
export function cacheDir() {
|
|
19
|
+
const override = process.env["RIGHTSIZE_CACHE_DIR"];
|
|
20
|
+
if (override !== undefined) {
|
|
21
|
+
return override;
|
|
22
|
+
}
|
|
23
|
+
if (process.platform === "win32") {
|
|
24
|
+
const localAppData = process.env["LOCALAPPDATA"] ?? path.join(os.homedir(), "AppData", "Local");
|
|
25
|
+
return path.join(localAppData, "rightsize");
|
|
26
|
+
}
|
|
27
|
+
return path.join(os.homedir(), ".cache", "rightsize");
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cache-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-dir.js","sourceRoot":"","sources":["../../src/core/cache-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC"}
|