rightsize 0.7.8 → 0.7.10
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/dist/backend-docker/backend.d.ts +4 -1
- package/dist/backend-docker/backend.d.ts.map +1 -1
- package/dist/backend-docker/backend.js +4 -0
- package/dist/backend-docker/backend.js.map +1 -1
- package/dist/backend-msb/backend.d.ts +618 -68
- package/dist/backend-msb/backend.d.ts.map +1 -1
- package/dist/backend-msb/backend.js +1236 -133
- package/dist/backend-msb/backend.js.map +1 -1
- package/dist/backend-msb/commands.d.ts +160 -16
- package/dist/backend-msb/commands.d.ts.map +1 -1
- package/dist/backend-msb/commands.js +197 -31
- package/dist/backend-msb/commands.js.map +1 -1
- package/dist/backend-msb/provisioner.d.ts +1 -1
- package/dist/backend-msb/provisioner.d.ts.map +1 -1
- package/dist/backend-msb/provisioner.js +1 -1
- package/dist/backend-msb/provisioner.js.map +1 -1
- package/dist/backend-msb/restore-access-denied.d.ts +50 -0
- package/dist/backend-msb/restore-access-denied.d.ts.map +1 -0
- package/dist/backend-msb/restore-access-denied.js +52 -0
- package/dist/backend-msb/restore-access-denied.js.map +1 -0
- package/dist/backend-msb/restore-broker.d.ts +181 -0
- package/dist/backend-msb/restore-broker.d.ts.map +1 -0
- package/dist/backend-msb/restore-broker.js +264 -0
- package/dist/backend-msb/restore-broker.js.map +1 -0
- package/dist/backend-msb/sandbox-already-exists.d.ts +32 -0
- package/dist/backend-msb/sandbox-already-exists.d.ts.map +1 -0
- package/dist/backend-msb/sandbox-already-exists.js +35 -0
- package/dist/backend-msb/sandbox-already-exists.js.map +1 -0
- package/dist/backend-msb/snapshot-create.d.ts +22 -0
- package/dist/backend-msb/snapshot-create.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-create.js +33 -0
- package/dist/backend-msb/snapshot-create.js.map +1 -0
- package/dist/backend-msb/snapshot-import.d.ts +30 -14
- package/dist/backend-msb/snapshot-import.d.ts.map +1 -1
- package/dist/backend-msb/snapshot-import.js +35 -17
- package/dist/backend-msb/snapshot-import.js.map +1 -1
- package/dist/backend-msb/snapshot-rm.d.ts +28 -0
- package/dist/backend-msb/snapshot-rm.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-rm.js +30 -0
- package/dist/backend-msb/snapshot-rm.js.map +1 -0
- package/dist/core/backend.d.ts +53 -22
- package/dist/core/backend.d.ts.map +1 -1
- package/dist/core/checkpoint/api.d.ts +2 -2
- package/dist/core/checkpoint/api.js +2 -2
- package/dist/core/checkpoint/registry.d.ts +34 -0
- package/dist/core/checkpoint/registry.d.ts.map +1 -1
- package/dist/core/checkpoint/registry.js +20 -1
- package/dist/core/checkpoint/registry.js.map +1 -1
- package/dist/core/errors.d.ts +49 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +61 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/generic-container.d.ts +58 -10
- package/dist/core/generic-container.d.ts.map +1 -1
- package/dist/core/generic-container.js +222 -27
- package/dist/core/generic-container.js.map +1 -1
- package/dist/core/model.d.ts +3 -2
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/sandbox-name.d.ts +3 -0
- package/dist/core/sandbox-name.d.ts.map +1 -0
- package/dist/core/sandbox-name.js +19 -0
- package/dist/core/sandbox-name.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/minio.d.ts +5 -3
- package/dist/modules/minio.d.ts.map +1 -1
- package/dist/modules/minio.js +14 -4
- package/dist/modules/minio.js.map +1 -1
- package/package.json +1 -1
- package/dist/backend-msb/snapshot-list.d.ts +0 -43
- package/dist/backend-msb/snapshot-list.d.ts.map +0 -1
- package/dist/backend-msb/snapshot-list.js +0 -53
- package/dist/backend-msb/snapshot-list.js.map +0 -1
|
@@ -12,22 +12,38 @@
|
|
|
12
12
|
* one rather than surfacing it. Deliberately a substring match on the stable
|
|
13
13
|
* prefix, the same reasoning `isSnapshotNotFoundError` applies to its own
|
|
14
14
|
* wording: the trailing path varies per host and msb has no structured/typed
|
|
15
|
-
* error for this.
|
|
15
|
+
* error for this. Not re-verified against 0.7.1 specifically (the rename to
|
|
16
|
+
* `save`/`load` did not touch this message in any captured output), so this
|
|
17
|
+
* stays a defensive fallback rather than the primary success path.
|
|
16
18
|
*/
|
|
17
19
|
export declare function isSnapshotAlreadyExistsError(stderr: string): boolean;
|
|
18
20
|
/**
|
|
19
|
-
* Extracts the
|
|
20
|
-
* invocation's output
|
|
21
|
-
*
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* `
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* rather than
|
|
21
|
+
* Extracts the loaded artifact's absolute path from one `msb snapshot load`
|
|
22
|
+
* invocation's output — the EFFECTIVE ref `importCheckpoint` hands back.
|
|
23
|
+
* EMPIRICALLY VERIFIED against a real msb 0.7.1 binary: a successful load
|
|
24
|
+
* prints a `group msb-<hex>: head snap_<digest> (Initialized)` line, then a
|
|
25
|
+
* digest line, then the loaded artifact's absolute path as the LAST line —
|
|
26
|
+
* `<destDir>/<generated-group>/snap_<digest>`, where `<destDir>` is whatever
|
|
27
|
+
* `--dest` was given (see `MsbCommands.snapshotImport`). The same defensive
|
|
28
|
+
* pattern `parseSnapshotCreateArtifactPath` uses for `snapshot create`'s own
|
|
29
|
+
* trailing-path output: trims the whole output, keeps only non-empty lines,
|
|
30
|
+
* takes the LAST one, and requires it to be an absolute path — anything else
|
|
31
|
+
* (empty output, a relative-looking last line, msb's own preceding "group"/
|
|
32
|
+
* digest lines mistaken for the answer) resolves `undefined` rather than
|
|
33
|
+
* guessing, so the caller fails loudly with the raw output quoted verbatim
|
|
34
|
+
* instead of minting a checkpoint ref from a misread line. This replaces the
|
|
35
|
+
* pre-0.7.1 approach of parsing out just the digest-dir BASENAME and then
|
|
36
|
+
* confirming it via a separate `msb snapshot list` call — 0.7.1's `load`
|
|
37
|
+
* already prints the full, directly-usable ref, so that second call is gone.
|
|
38
|
+
*
|
|
39
|
+
* The already-exists failure path (see `isSnapshotAlreadyExistsError`) has a
|
|
40
|
+
* different last-line shape than a success's: msb's own message prefixes
|
|
41
|
+
* the path with prose on the SAME line (`error: snapshot already exists:
|
|
42
|
+
* <path>`), captured verbatim from the real 0.6.8 binary and not
|
|
43
|
+
* re-verified against 0.7.1 — so a whole-line match never fires for it.
|
|
44
|
+
* When the whole line isn't itself an absolute path, this falls back to the
|
|
45
|
+
* line's trailing whitespace-delimited token and requires THAT to be
|
|
46
|
+
* absolute instead, rather than guessing a ref out of prose.
|
|
31
47
|
*/
|
|
32
|
-
export declare function
|
|
48
|
+
export declare function parseImportedArtifactPath(output: string): string | undefined;
|
|
33
49
|
//# sourceMappingURL=snapshot-import.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-import.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-import.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"snapshot-import.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-import.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc5E"}
|
|
@@ -13,26 +13,42 @@ import * as path from "node:path";
|
|
|
13
13
|
* one rather than surfacing it. Deliberately a substring match on the stable
|
|
14
14
|
* prefix, the same reasoning `isSnapshotNotFoundError` applies to its own
|
|
15
15
|
* wording: the trailing path varies per host and msb has no structured/typed
|
|
16
|
-
* error for this.
|
|
16
|
+
* error for this. Not re-verified against 0.7.1 specifically (the rename to
|
|
17
|
+
* `save`/`load` did not touch this message in any captured output), so this
|
|
18
|
+
* stays a defensive fallback rather than the primary success path.
|
|
17
19
|
*/
|
|
18
20
|
export function isSnapshotAlreadyExistsError(stderr) {
|
|
19
21
|
return stderr.includes("snapshot already exists");
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
|
-
* Extracts the
|
|
23
|
-
* invocation's output
|
|
24
|
-
*
|
|
25
|
-
* `
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* `
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* rather than
|
|
24
|
+
* Extracts the loaded artifact's absolute path from one `msb snapshot load`
|
|
25
|
+
* invocation's output — the EFFECTIVE ref `importCheckpoint` hands back.
|
|
26
|
+
* EMPIRICALLY VERIFIED against a real msb 0.7.1 binary: a successful load
|
|
27
|
+
* prints a `group msb-<hex>: head snap_<digest> (Initialized)` line, then a
|
|
28
|
+
* digest line, then the loaded artifact's absolute path as the LAST line —
|
|
29
|
+
* `<destDir>/<generated-group>/snap_<digest>`, where `<destDir>` is whatever
|
|
30
|
+
* `--dest` was given (see `MsbCommands.snapshotImport`). The same defensive
|
|
31
|
+
* pattern `parseSnapshotCreateArtifactPath` uses for `snapshot create`'s own
|
|
32
|
+
* trailing-path output: trims the whole output, keeps only non-empty lines,
|
|
33
|
+
* takes the LAST one, and requires it to be an absolute path — anything else
|
|
34
|
+
* (empty output, a relative-looking last line, msb's own preceding "group"/
|
|
35
|
+
* digest lines mistaken for the answer) resolves `undefined` rather than
|
|
36
|
+
* guessing, so the caller fails loudly with the raw output quoted verbatim
|
|
37
|
+
* instead of minting a checkpoint ref from a misread line. This replaces the
|
|
38
|
+
* pre-0.7.1 approach of parsing out just the digest-dir BASENAME and then
|
|
39
|
+
* confirming it via a separate `msb snapshot list` call — 0.7.1's `load`
|
|
40
|
+
* already prints the full, directly-usable ref, so that second call is gone.
|
|
41
|
+
*
|
|
42
|
+
* The already-exists failure path (see `isSnapshotAlreadyExistsError`) has a
|
|
43
|
+
* different last-line shape than a success's: msb's own message prefixes
|
|
44
|
+
* the path with prose on the SAME line (`error: snapshot already exists:
|
|
45
|
+
* <path>`), captured verbatim from the real 0.6.8 binary and not
|
|
46
|
+
* re-verified against 0.7.1 — so a whole-line match never fires for it.
|
|
47
|
+
* When the whole line isn't itself an absolute path, this falls back to the
|
|
48
|
+
* line's trailing whitespace-delimited token and requires THAT to be
|
|
49
|
+
* absolute instead, rather than guessing a ref out of prose.
|
|
34
50
|
*/
|
|
35
|
-
export function
|
|
51
|
+
export function parseImportedArtifactPath(output) {
|
|
36
52
|
const lines = output
|
|
37
53
|
.split("\n")
|
|
38
54
|
.map((line) => line.trim())
|
|
@@ -41,8 +57,10 @@ export function parseImportedDigestDirName(output) {
|
|
|
41
57
|
if (lastLine === undefined) {
|
|
42
58
|
return undefined;
|
|
43
59
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
if (path.isAbsolute(lastLine)) {
|
|
61
|
+
return lastLine;
|
|
62
|
+
}
|
|
63
|
+
const trailingToken = /(\S+)\s*$/.exec(lastLine)?.[1];
|
|
64
|
+
return trailingToken !== undefined && path.isAbsolute(trailingToken) ? trailingToken : undefined;
|
|
47
65
|
}
|
|
48
66
|
//# sourceMappingURL=snapshot-import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-import.js","sourceRoot":"","sources":["../../src/backend-msb/snapshot-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"snapshot-import.js","sourceRoot":"","sources":["../../src/backend-msb/snapshot-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,OAAO,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True if `stderr` (an `msb snapshot rm <artifact-path> -f` non-zero exit)
|
|
3
|
+
* names msb's own "this snapshot is the current head of other snapshots
|
|
4
|
+
* from the same source sandbox" refusal, as opposed to a genuine "not
|
|
5
|
+
* found" (which `removeCheckpoint` treats as success, the same best-effort
|
|
6
|
+
* contract `removeByName` has) or some other, unrelated failure.
|
|
7
|
+
* EMPIRICALLY VERIFIED against a real msb 0.7.1 binary:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* error: invalid config: cannot remove current head snap_<digest>; first
|
|
11
|
+
* select another snapshot with 'msb snapshot head src:<snapshot>'
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Removing a non-head member, or a group's ONLY member, succeeds — this
|
|
15
|
+
* refusal is specifically "older siblings from the same source sandbox
|
|
16
|
+
* still exist and this is still the newest of them." `removeCheckpoint`
|
|
17
|
+
* propagates this one verbatim instead of swallowing it alongside an
|
|
18
|
+
* ordinary "not found": the caller has an actionable remedy (`msb snapshot
|
|
19
|
+
* head ...`, named in msb's own message), and this library deliberately
|
|
20
|
+
* does not attempt automatic head rotation on the caller's behalf — see the
|
|
21
|
+
* checkpoints guide's cleanup section for the documented limitation.
|
|
22
|
+
* Deliberately a substring match on the stable "cannot remove current head"
|
|
23
|
+
* phrase, the same reasoning `isSnapshotNotFoundError` applies to its own
|
|
24
|
+
* wording — the snapshot id and the exact command hint vary per occurrence,
|
|
25
|
+
* and msb has no structured/typed error for this.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isSnapshotHeadRemovalRefused(stderr: string): boolean;
|
|
28
|
+
//# sourceMappingURL=snapshot-rm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-rm.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-rm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True if `stderr` (an `msb snapshot rm <artifact-path> -f` non-zero exit)
|
|
3
|
+
* names msb's own "this snapshot is the current head of other snapshots
|
|
4
|
+
* from the same source sandbox" refusal, as opposed to a genuine "not
|
|
5
|
+
* found" (which `removeCheckpoint` treats as success, the same best-effort
|
|
6
|
+
* contract `removeByName` has) or some other, unrelated failure.
|
|
7
|
+
* EMPIRICALLY VERIFIED against a real msb 0.7.1 binary:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* error: invalid config: cannot remove current head snap_<digest>; first
|
|
11
|
+
* select another snapshot with 'msb snapshot head src:<snapshot>'
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Removing a non-head member, or a group's ONLY member, succeeds — this
|
|
15
|
+
* refusal is specifically "older siblings from the same source sandbox
|
|
16
|
+
* still exist and this is still the newest of them." `removeCheckpoint`
|
|
17
|
+
* propagates this one verbatim instead of swallowing it alongside an
|
|
18
|
+
* ordinary "not found": the caller has an actionable remedy (`msb snapshot
|
|
19
|
+
* head ...`, named in msb's own message), and this library deliberately
|
|
20
|
+
* does not attempt automatic head rotation on the caller's behalf — see the
|
|
21
|
+
* checkpoints guide's cleanup section for the documented limitation.
|
|
22
|
+
* Deliberately a substring match on the stable "cannot remove current head"
|
|
23
|
+
* phrase, the same reasoning `isSnapshotNotFoundError` applies to its own
|
|
24
|
+
* wording — the snapshot id and the exact command hint vary per occurrence,
|
|
25
|
+
* and msb has no structured/typed error for this.
|
|
26
|
+
*/
|
|
27
|
+
export function isSnapshotHeadRemovalRefused(stderr) {
|
|
28
|
+
return stderr.includes("cannot remove current head");
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=snapshot-rm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-rm.js","sourceRoot":"","sources":["../../src/backend-msb/snapshot-rm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,OAAO,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/core/backend.d.ts
CHANGED
|
@@ -100,19 +100,49 @@ export interface SandboxBackend {
|
|
|
100
100
|
/** Best-effort removal of the backend-native resource; callers swallow failures during teardown. */
|
|
101
101
|
remove(handle: SandboxHandle): Promise<void>;
|
|
102
102
|
/**
|
|
103
|
-
* Captures `handle`'s current state
|
|
104
|
-
* `GenericContainer.checkpoint()`'s backend call, gated on
|
|
103
|
+
* Captures `handle`'s current state and returns the EFFECTIVE ref to use
|
|
104
|
+
* from here on — `GenericContainer.checkpoint()`'s backend call, gated on
|
|
105
105
|
* `capabilities.checkpoint` BEFORE this is ever reached, so an
|
|
106
106
|
* unsupported backend never has to implement this for real (it may throw
|
|
107
|
-
* defensively).
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* `
|
|
113
|
-
*
|
|
107
|
+
* defensively). `ref` is the WORKING ref the caller asks this to
|
|
108
|
+
* checkpoint under; the returned value is not necessarily `ref` itself —
|
|
109
|
+
* the same asymmetry `importCheckpoint` already has, for the same reason.
|
|
110
|
+
* Docker: commits the running container to image `ref`, undisturbed, and
|
|
111
|
+
* returns `ref` unchanged (docker's tag round-trips exactly). Microsandbox:
|
|
112
|
+
* stop the sandbox, `msb snapshot create` a disk snapshot (via `--dest-dir`,
|
|
113
|
+
* not msb's own default snapshot store), then start the sandbox back up —
|
|
114
|
+
* the workload restarts, which is why `capabilities.checkpointRestartsWorkload`
|
|
115
|
+
* exists. Since msb 0.7.1, `snapshot create`'s own artifact placement is
|
|
116
|
+
* content-addressed and `ref` never determines it (see `MsbCliBackend`'s
|
|
117
|
+
* own doc), so the microsandbox backend parses the real artifact path back
|
|
118
|
+
* out of that command's stdout and returns THAT as the effective ref — the
|
|
119
|
+
* caller (`GenericContainer.checkpoint()`) stores whatever this returns in
|
|
120
|
+
* the named-checkpoint registry and on the `Checkpoint` it hands back,
|
|
121
|
+
* never `ref` itself. Never called on a backend whose
|
|
122
|
+
* `capabilities.checkpoint` is `false`.
|
|
114
123
|
*/
|
|
115
|
-
createCheckpoint(handle: SandboxHandle, ref: string): Promise<
|
|
124
|
+
createCheckpoint(handle: SandboxHandle, ref: string): Promise<string>;
|
|
125
|
+
/**
|
|
126
|
+
* OPTIONAL: the workload argv this backend captured from `handle`'s guest
|
|
127
|
+
* during its MOST RECENT `createCheckpoint` call, when that call's source
|
|
128
|
+
* container had no explicit `spec.command` — `undefined` when nothing was
|
|
129
|
+
* captured (an explicit command needed no capture, the capture attempt
|
|
130
|
+
* itself failed, or this backend never captures at all). `createCheckpoint`
|
|
131
|
+
* itself never surfaces this — it stays `Promise<string>`, unchanged — so
|
|
132
|
+
* `GenericContainer.checkpoint()` calls this SEPARATELY, right after
|
|
133
|
+
* `createCheckpoint` returns, to fold the result into a NAMED checkpoint's
|
|
134
|
+
* registry entry (`CheckpointRegistryEntry.capturedCommand`) and into the
|
|
135
|
+
* `Checkpoint.spec.command` it hands back, so a later restore — registry-
|
|
136
|
+
* mediated or not — has the fully-resolved workload argv without a second
|
|
137
|
+
* capture attempt against a sandbox that (on msb) no longer even runs the
|
|
138
|
+
* old one. A backend that never captures (docker: restoring a checkpoint
|
|
139
|
+
* is an ordinary boot from the committed image, whose own baked
|
|
140
|
+
* ENTRYPOINT/CMD already reproduces the workload with no capture needed)
|
|
141
|
+
* simply omits this method — every existing implementation keeps compiling
|
|
142
|
+
* and behaving unchanged. See `MsbCliBackend.createCheckpoint`'s own doc
|
|
143
|
+
* for when and how the microsandbox backend actually captures one.
|
|
144
|
+
*/
|
|
145
|
+
capturedWorkloadCommand?(handle: SandboxHandle): ReadonlyArray<string> | undefined;
|
|
116
146
|
/**
|
|
117
147
|
* Best-effort removal of a checkpoint identified by `ref` (docker: `rmi`;
|
|
118
148
|
* microsandbox: `msb snapshot rm`) — "not found" is success, the same
|
|
@@ -155,18 +185,19 @@ export interface SandboxBackend {
|
|
|
155
185
|
* Materializes an exported archive's backend payload from `srcFile` and
|
|
156
186
|
* returns the EFFECTIVE ref to use from here on — not necessarily `ref`
|
|
157
187
|
* itself. docker preserves the original tag on `docker load`, so its
|
|
158
|
-
* effective ref IS `ref`; microsandbox's `snapshot load
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* treated as success. `ref` is
|
|
165
|
-
* `checkpoint.json`), passed through
|
|
166
|
-
* new ref to derive. Only ever called
|
|
167
|
-
* validated the archive's
|
|
168
|
-
* against the active backend;
|
|
169
|
-
*
|
|
188
|
+
* effective ref IS `ref`; microsandbox's `snapshot load --dest
|
|
189
|
+
* <checkpointsDir>` writes under a path msb itself generates (never the
|
|
190
|
+
* caller's `ref`, never a name the caller can choose), which this backend
|
|
191
|
+
* parses straight out of `load`'s own printed output — no separate
|
|
192
|
+
* confirmation call needed, since 0.7.1 already prints the full, directly
|
|
193
|
+
* usable path (see `MsbCliBackend.importCheckpoint`). An already-exists
|
|
194
|
+
* failure for a content-addressed archive is treated as success. `ref` is
|
|
195
|
+
* the archive's own recorded ref (from `checkpoint.json`), passed through
|
|
196
|
+
* for backends (docker) that have no new ref to derive. Only ever called
|
|
197
|
+
* once the generic layer has already validated the archive's
|
|
198
|
+
* `checkpoint.json` (version, name, backend) against the active backend;
|
|
199
|
+
* any failure other than "already imported" surfaces the underlying
|
|
200
|
+
* tool's stderr in a `BackendError`.
|
|
170
201
|
*/
|
|
171
202
|
importCheckpoint(srcFile: string, ref: string): Promise<string>;
|
|
172
203
|
/**
|
|
@@ -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;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC,0HAA0H;IAC1H,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,kJAAkJ;IAClJ,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;CAC9C;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,wFAAwF;IACxF,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,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
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/core/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,8 +91,8 @@ export declare function exportTo(cp: Checkpoint, destPath: string): Promise<void
|
|
|
91
91
|
* either way, before any backend call or registry write), then hands the
|
|
92
92
|
* extracted `artifact` to `SandboxBackend.importCheckpoint`, which
|
|
93
93
|
* materializes it and returns the EFFECTIVE ref (docker: the same `ref` the
|
|
94
|
-
* archive recorded; microsandbox: the
|
|
95
|
-
* assigned it — never necessarily the archive's own `ref`).
|
|
94
|
+
* archive recorded; microsandbox: the loaded artifact's own path `snapshot
|
|
95
|
+
* load` actually assigned it — never necessarily the archive's own `ref`).
|
|
96
96
|
*
|
|
97
97
|
* A NAMED archive (`name` non-null) gets replace semantics matching
|
|
98
98
|
* `checkpoint(name)`: if a registry entry already exists for that name under
|
|
@@ -189,8 +189,8 @@ export async function exportTo(cp, destPath) {
|
|
|
189
189
|
* either way, before any backend call or registry write), then hands the
|
|
190
190
|
* extracted `artifact` to `SandboxBackend.importCheckpoint`, which
|
|
191
191
|
* materializes it and returns the EFFECTIVE ref (docker: the same `ref` the
|
|
192
|
-
* archive recorded; microsandbox: the
|
|
193
|
-
* assigned it — never necessarily the archive's own `ref`).
|
|
192
|
+
* archive recorded; microsandbox: the loaded artifact's own path `snapshot
|
|
193
|
+
* load` actually assigned it — never necessarily the archive's own `ref`).
|
|
194
194
|
*
|
|
195
195
|
* A NAMED archive (`name` non-null) gets replace semantics matching
|
|
196
196
|
* `checkpoint(name)`: if a registry entry already exists for that name under
|
|
@@ -30,6 +30,28 @@ export interface CheckpointRegistryEntry {
|
|
|
30
30
|
readonly backend: string;
|
|
31
31
|
readonly createdIso: string;
|
|
32
32
|
readonly spec: CheckpointRegistrySpec;
|
|
33
|
+
/**
|
|
34
|
+
* The workload argv `GenericContainer.checkpoint()` captured from the
|
|
35
|
+
* guest at checkpoint time (via `SandboxBackend.capturedWorkloadCommand`),
|
|
36
|
+
* for a source container whose own `spec.command` was `undefined` — the
|
|
37
|
+
* image's default entrypoint was running, so there is no explicit command
|
|
38
|
+
* to fall back on at restore time. msb-only in practice today: `msb
|
|
39
|
+
* restore` boots a restored sandbox with only its guest agent inside and
|
|
40
|
+
* never re-runs a captured workload on its own (EMPIRICALLY VERIFIED
|
|
41
|
+
* against msb 0.7.1 — see `MsbCliBackend.bootRestoreOnce`'s own doc), so
|
|
42
|
+
* this library restarts it itself, using this field as the argv source
|
|
43
|
+
* when the checkpoint carries no explicit `spec.command`.
|
|
44
|
+
*
|
|
45
|
+
* ADDITIVE and OPTIONAL — deliberately NOT part of the pinned, cross-
|
|
46
|
+
* language `CheckpointRegistrySpec` shape `spec` above carries: absent on
|
|
47
|
+
* every entry written before this field existed, and on any entry whose
|
|
48
|
+
* source container already had an explicit `spec.command` (nothing to
|
|
49
|
+
* capture). Reading an old entry without it is not an error — only
|
|
50
|
+
* restoring FROM one, when the entry also has no explicit `spec.command`,
|
|
51
|
+
* throws `CheckpointWorkloadCommandMissingError` rather than booting a
|
|
52
|
+
* workload-less sandbox silently (see `fromCheckpointRegistryEntry` below).
|
|
53
|
+
*/
|
|
54
|
+
readonly capturedCommand?: ReadonlyArray<string>;
|
|
33
55
|
}
|
|
34
56
|
/** `<cacheDir>/checkpoints` — the directory every named checkpoint's registry file lives under. */
|
|
35
57
|
export declare function checkpointsDir(cacheDir: string): string;
|
|
@@ -106,6 +128,18 @@ export declare function toCheckpointRegistrySpec(spec: ContainerSpec): Checkpoin
|
|
|
106
128
|
* pointing at itself. `diskLimitMb`/`tmpfsRootMb`/`networkDisabled` are
|
|
107
129
|
* placeholders too — the registry's pinned `CheckpointRegistrySpec` shape
|
|
108
130
|
* doesn't carry them, same as it never carried `keepAlive`.
|
|
131
|
+
*
|
|
132
|
+
* `command` resolves with `entry.capturedCommand` as its fallback: when the
|
|
133
|
+
* source container had an explicit command, `entry.spec.command` already
|
|
134
|
+
* carries it and `capturedCommand` (never set for that case) never enters
|
|
135
|
+
* into it; when it did not, this substitutes whatever guest cmdline
|
|
136
|
+
* `checkpoint()` captured, so the restored `ContainerSpec`'s `command` is
|
|
137
|
+
* already the fully-resolved workload argv a restore-side backend (msb)
|
|
138
|
+
* needs to revive it, with no separate lookup needed at restore time. When
|
|
139
|
+
* NEITHER is present (an entry written before capture existed, or one whose
|
|
140
|
+
* capture attempt itself failed), `command` stays `undefined` exactly as
|
|
141
|
+
* before, and it is the restoring backend's own job to refuse rather than
|
|
142
|
+
* boot that sandbox silently idle (see `MsbCliBackend.bootRestoreOnce`).
|
|
109
143
|
*/
|
|
110
144
|
export declare function fromCheckpointRegistryEntry(entry: CheckpointRegistryEntry): ContainerSpec;
|
|
111
145
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/checkpoint/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mLAAmL;IACnL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/checkpoint/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mLAAmL;IACnL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED,wKAAwK;AACxK,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CA8BxF;AAyBD,sLAAsL;AACtL,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAkBlH;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjI;AAED,4FAA4F;AAC5F,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhG;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ7E;AAOD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,sBAAsB,CAWpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,uBAAuB,GAAG,aAAa,CAkBzF"}
|
|
@@ -56,6 +56,13 @@ function isCheckpointRegistryEntry(value) {
|
|
|
56
56
|
typeof rec["createdIso"] !== "string") {
|
|
57
57
|
return false;
|
|
58
58
|
}
|
|
59
|
+
// Additive and optional (see CheckpointRegistryEntry's own doc): an entry
|
|
60
|
+
// written before this field existed simply omits the key, which is fine —
|
|
61
|
+
// only a PRESENT-but-malformed value (not an array of strings) is corrupt.
|
|
62
|
+
const capturedCommand = rec["capturedCommand"];
|
|
63
|
+
if (capturedCommand !== undefined && !(Array.isArray(capturedCommand) && capturedCommand.every((c) => typeof c === "string"))) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
59
66
|
return isCheckpointRegistrySpec(rec["spec"]);
|
|
60
67
|
}
|
|
61
68
|
/**
|
|
@@ -163,13 +170,25 @@ export function toCheckpointRegistrySpec(spec) {
|
|
|
163
170
|
* pointing at itself. `diskLimitMb`/`tmpfsRootMb`/`networkDisabled` are
|
|
164
171
|
* placeholders too — the registry's pinned `CheckpointRegistrySpec` shape
|
|
165
172
|
* doesn't carry them, same as it never carried `keepAlive`.
|
|
173
|
+
*
|
|
174
|
+
* `command` resolves with `entry.capturedCommand` as its fallback: when the
|
|
175
|
+
* source container had an explicit command, `entry.spec.command` already
|
|
176
|
+
* carries it and `capturedCommand` (never set for that case) never enters
|
|
177
|
+
* into it; when it did not, this substitutes whatever guest cmdline
|
|
178
|
+
* `checkpoint()` captured, so the restored `ContainerSpec`'s `command` is
|
|
179
|
+
* already the fully-resolved workload argv a restore-side backend (msb)
|
|
180
|
+
* needs to revive it, with no separate lookup needed at restore time. When
|
|
181
|
+
* NEITHER is present (an entry written before capture existed, or one whose
|
|
182
|
+
* capture attempt itself failed), `command` stays `undefined` exactly as
|
|
183
|
+
* before, and it is the restoring backend's own job to refuse rather than
|
|
184
|
+
* boot that sandbox silently idle (see `MsbCliBackend.bootRestoreOnce`).
|
|
166
185
|
*/
|
|
167
186
|
export function fromCheckpointRegistryEntry(entry) {
|
|
168
187
|
return {
|
|
169
188
|
name: entry.name,
|
|
170
189
|
image: entry.ref,
|
|
171
190
|
env: envRecordToPairs(entry.spec.env),
|
|
172
|
-
command: entry.spec.command ?? undefined,
|
|
191
|
+
command: entry.spec.command ?? entry.capturedCommand ?? undefined,
|
|
173
192
|
ports: entry.spec.exposedPorts.map((guestPort) => ({ hostPort: 0, guestPort })),
|
|
174
193
|
mounts: [],
|
|
175
194
|
networkId: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/checkpoint/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/checkpoint/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/errors.d.ts
CHANGED
|
@@ -119,6 +119,34 @@ export declare class CheckpointBackendMismatchError extends Error {
|
|
|
119
119
|
export declare class ReuseFromCheckpointError extends Error {
|
|
120
120
|
constructor();
|
|
121
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Thrown at `start()` when a container built via `GenericContainer.fromCheckpoint()`
|
|
124
|
+
* carries an env that no longer matches the checkpoint's own captured env —
|
|
125
|
+
* an extra `withEnv()` call, or one overriding a key the checkpoint already
|
|
126
|
+
* set — and the active backend has no way to apply that at restore time.
|
|
127
|
+
*
|
|
128
|
+
* msb is the one backend this affects: 0.7.1 replaced `run --from-snapshot`
|
|
129
|
+
* with a dedicated `msb restore` command that has no `-e`/`--env` flag at
|
|
130
|
+
* all (a disk-only restore replays the sandbox's own captured
|
|
131
|
+
* configuration). Before 0.7.1, an overridden or extended env silently
|
|
132
|
+
* reached the restored guest via `run -e`; since there is now no msb
|
|
133
|
+
* invocation this library could emit that would honor it, silently dropping
|
|
134
|
+
* it would let the workload boot with env the caller never asked for and
|
|
135
|
+
* without env it did ask for — a correctness bug, not a graceful
|
|
136
|
+
* degradation — so this throws instead, before any backend call. Restoring
|
|
137
|
+
* with the checkpoint's own env completely unchanged never hits this: only
|
|
138
|
+
* a call that actually changes what would be sent does. docker is
|
|
139
|
+
* unaffected — restoring there is an ordinary `docker create`/`run` against
|
|
140
|
+
* the committed image with a fresh env array, so this is never thrown when
|
|
141
|
+
* the active backend is `"docker"`.
|
|
142
|
+
*/
|
|
143
|
+
export declare class CheckpointRestoreEnvOverrideError extends Error {
|
|
144
|
+
/** The active backend's name — always `"microsandbox"` today, the one backend this affects. */
|
|
145
|
+
readonly backend: string;
|
|
146
|
+
constructor(
|
|
147
|
+
/** The active backend's name — always `"microsandbox"` today, the one backend this affects. */
|
|
148
|
+
backend: string);
|
|
149
|
+
}
|
|
122
150
|
/**
|
|
123
151
|
* Thrown by `copyFileToContainer`/`copyContentToContainer`/
|
|
124
152
|
* `copyFileFromContainer` when `containerPath` is not absolute — both
|
|
@@ -251,4 +279,25 @@ export declare class NetworkDisabledConflictError extends Error {
|
|
|
251
279
|
export declare class TmpfsRootCheckpointError extends Error {
|
|
252
280
|
constructor();
|
|
253
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Thrown restoring a microsandbox checkpoint whose source container had no
|
|
284
|
+
* explicit command (the image's own default entrypoint was running) and
|
|
285
|
+
* whose registry entry carries no captured workload cmdline either —
|
|
286
|
+
* `msb restore` boots a restored sandbox with only its guest agent inside
|
|
287
|
+
* and never re-runs anything on its own (EMPIRICALLY VERIFIED against msb
|
|
288
|
+
* 0.7.1 — see `MsbCliBackend.bootRestoreOnce`'s own doc), so without EITHER
|
|
289
|
+
* source this library has no workload argv left to revive. Thrown instead of
|
|
290
|
+
* silently booting the sandbox idle — the checkpoint either predates
|
|
291
|
+
* workload-cmdline capture, or its capture attempt failed at checkpoint time
|
|
292
|
+
* (see `CheckpointRegistryEntry.capturedCommand`'s own doc on why a capture
|
|
293
|
+
* failure never fails the checkpoint that created it, only a later restore
|
|
294
|
+
* of it). Only ever thrown by the microsandbox backend.
|
|
295
|
+
*/
|
|
296
|
+
export declare class CheckpointWorkloadCommandMissingError extends Error {
|
|
297
|
+
/** The checkpoint ref being restored. */
|
|
298
|
+
readonly ref: string;
|
|
299
|
+
constructor(
|
|
300
|
+
/** The checkpoint ref being restored. */
|
|
301
|
+
ref: string);
|
|
302
|
+
}
|
|
254
303
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
|