rightsize 0.2.0 → 0.4.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 -26
- package/dist/backend-docker/backend.d.ts +41 -4
- package/dist/backend-docker/backend.d.ts.map +1 -1
- package/dist/backend-docker/backend.js +84 -6
- package/dist/backend-docker/backend.js.map +1 -1
- package/dist/backend-docker/cli.d.ts +29 -0
- package/dist/backend-docker/cli.d.ts.map +1 -0
- package/dist/backend-docker/cli.js +72 -0
- package/dist/backend-docker/cli.js.map +1 -0
- package/dist/backend-msb/backend.d.ts +91 -7
- package/dist/backend-msb/backend.d.ts.map +1 -1
- package/dist/backend-msb/backend.js +185 -11
- package/dist/backend-msb/backend.js.map +1 -1
- package/dist/backend-msb/commands.d.ts +16 -0
- package/dist/backend-msb/commands.d.ts.map +1 -1
- package/dist/backend-msb/commands.js +41 -1
- package/dist/backend-msb/commands.js.map +1 -1
- package/dist/backend-msb/snapshot-import.d.ts +33 -0
- package/dist/backend-msb/snapshot-import.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-import.js +48 -0
- package/dist/backend-msb/snapshot-import.js.map +1 -0
- package/dist/backend-msb/snapshot-list.d.ts +43 -0
- package/dist/backend-msb/snapshot-list.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-list.js +53 -0
- package/dist/backend-msb/snapshot-list.js.map +1 -0
- 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 +86 -6
- package/dist/core/backend.d.ts.map +1 -1
- package/dist/core/checkpoint/api.d.ts +129 -0
- package/dist/core/checkpoint/api.d.ts.map +1 -0
- package/dist/core/checkpoint/api.js +261 -0
- package/dist/core/checkpoint/api.js.map +1 -0
- package/dist/core/checkpoint/archive.d.ts +52 -0
- package/dist/core/checkpoint/archive.d.ts.map +1 -0
- package/dist/core/checkpoint/archive.js +134 -0
- package/dist/core/checkpoint/archive.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 +109 -0
- package/dist/core/checkpoint/registry.d.ts.map +1 -0
- package/dist/core/checkpoint/registry.js +181 -0
- package/dist/core/checkpoint/registry.js.map +1 -0
- package/dist/core/checkpoint/tar-cli.d.ts +45 -0
- package/dist/core/checkpoint/tar-cli.d.ts.map +1 -0
- package/dist/core/checkpoint/tar-cli.js +86 -0
- package/dist/core/checkpoint/tar-cli.js.map +1 -0
- package/dist/core/errors.d.ts +97 -4
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +124 -7
- package/dist/core/errors.js.map +1 -1
- package/dist/core/generic-container.d.ts +87 -18
- package/dist/core/generic-container.d.ts.map +1 -1
- package/dist/core/generic-container.js +171 -22
- package/dist/core/generic-container.js.map +1 -1
- package/dist/core/model.d.ts +25 -8
- package/dist/core/model.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -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
|
@@ -22,7 +22,7 @@ export declare class MsbCliBackend implements SandboxBackend {
|
|
|
22
22
|
/** `"microsandbox"` — matched against `RIGHTSIZE_BACKEND` and used in `dev.rightsize.runId`-style diagnostics. */
|
|
23
23
|
readonly name = "microsandbox";
|
|
24
24
|
readonly supportsNativeNetworks = false;
|
|
25
|
-
/** Each sandbox is its own microVM with its own kernel;
|
|
25
|
+
/** Each sandbox is its own microVM with its own kernel; checkpoint/restore is a disk snapshot, which restarts the workload. */
|
|
26
26
|
readonly capabilities: BackendCapabilities;
|
|
27
27
|
private readonly handles;
|
|
28
28
|
private readonly startedNames;
|
|
@@ -77,13 +77,87 @@ export declare class MsbCliBackend implements SandboxBackend {
|
|
|
77
77
|
stop(handle: SandboxHandle): Promise<void>;
|
|
78
78
|
remove(handle: SandboxHandle): Promise<void>;
|
|
79
79
|
/**
|
|
80
|
-
*
|
|
81
|
-
* `
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
80
|
+
* The stop/snapshot/reboot cycle: `msb stop <name>` (reusing this
|
|
81
|
+
* backend's own `stop()`, which also quiesces the attached child and any
|
|
82
|
+
* network-link tunnels), `msb snapshot create --from <name> <ref>`, then
|
|
83
|
+
* `msb rm <name>` followed by a fresh ATTACHED boot of the SAME name from
|
|
84
|
+
* that snapshot — never `msb start`. Upstream's detached-start path
|
|
85
|
+
* (`Sandbox::start_detached`) passes `CREATE_BREAKAWAY_FROM_JOB` on
|
|
86
|
+
* Windows, which `ERROR_ACCESS_DENIED`s outright whenever the msb CLI runs
|
|
87
|
+
* inside a job object that doesn't grant breakaway rights — a Gradle/
|
|
88
|
+
* cargo/node test runner on a hosted Windows runner, or any process that
|
|
89
|
+
* embeds this library inside its own restrictive job object — and that
|
|
90
|
+
* denial is deterministic, not transient, so no retry shape fixes it.
|
|
91
|
+
* Attached `msb run` (this backend's normal boot, including `--snapshot`
|
|
92
|
+
* boots) never hits it, which is why the reboot reuses `bootOnce` instead
|
|
93
|
+
* of resuming in place: the stopped sandbox's disk state is already IN the
|
|
94
|
+
* snapshot, so `rm`-ing it first and booting a fresh attached sandbox
|
|
95
|
+
* under the same name/ports/env/memory (via a spec identical to
|
|
96
|
+
* `handle.spec` except `checkpointRef` set to the new `ref`) reproduces
|
|
97
|
+
* the exact same observable contract. `bootOnce` swaps `state.attached` to
|
|
98
|
+
* the freshly spawned child itself; nothing about `this.handles`/
|
|
99
|
+
* `startedNames` or the reaping ledger changes, since the name never
|
|
100
|
+
* changed. Its workload restarts from scratch (the VM reboots), which is
|
|
101
|
+
* why `capabilities.checkpointRestartsWorkload` is `true` here and the
|
|
102
|
+
* generic layer re-runs the wait strategy after this returns.
|
|
103
|
+
*
|
|
104
|
+
* If the snapshot step fails, the sandbox is left stopped — no
|
|
105
|
+
* best-effort restart, since that restart would itself be the broken `msb
|
|
106
|
+
* start` call — and the error names the failed step plus the by-hand
|
|
107
|
+
* remedy. If the snapshot step SUCCEEDS but the reboot from it fails, the
|
|
108
|
+
* sandbox has already been removed by the time that's known, so the error
|
|
109
|
+
* instead names the checkpoint ref and points at `fromCheckpoint()` as the
|
|
110
|
+
* recovery path.
|
|
111
|
+
*/
|
|
112
|
+
createCheckpoint(handle: SandboxHandle, ref: string): Promise<void>;
|
|
113
|
+
/** Best-effort `msb snapshot rm <ref>` — "not found" is success, the same contract as `removeByName`. */
|
|
114
|
+
removeCheckpoint(ref: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* `msb snapshot inspect <ref>` — exit 0 means the snapshot exists. A
|
|
117
|
+
* non-zero exit whose stderr carries msb's own "snapshot not found"
|
|
118
|
+
* framing (see `isSnapshotNotFoundError`, confirmed verbatim against the
|
|
119
|
+
* real msb 0.6.6 binary) resolves `false` — a genuine miss. Any OTHER
|
|
120
|
+
* non-zero exit (a corrupted state db, a permission error, a malformed
|
|
121
|
+
* argument, an msb crash) throws `BackendError` carrying the raw stderr
|
|
122
|
+
* instead of collapsing to `false`: `invoke()` itself only rejects on a
|
|
123
|
+
* spawn or timeout failure (never on exit code — see `logs()`'s own doc on
|
|
124
|
+
* that), so without this check a genuine probe failure would silently
|
|
125
|
+
* resolve `false` and let `Checkpoints.find`'s stale-cleanup best-effort
|
|
126
|
+
* delete a perfectly valid registry entry over what may be a transient msb
|
|
127
|
+
* failure — exactly the "no best-effort false on probe errors" the SPI's
|
|
128
|
+
* own contract forbids.
|
|
129
|
+
*/
|
|
130
|
+
hasCheckpoint(ref: string): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* `msb snapshot export <ref> <destFile>` — writes the `.tar.zst` artifact
|
|
133
|
+
* `Checkpoints.exportTo` bundles into its own archive container. Never
|
|
134
|
+
* `--with-image` (see the checkpoints guide's own note on why: its import
|
|
135
|
+
* fails an integrity check in 0.6.6, so archives never bundle the OCI
|
|
136
|
+
* image — the destination machine pulls it on the restored container's
|
|
137
|
+
* first boot).
|
|
85
138
|
*/
|
|
86
|
-
|
|
139
|
+
exportCheckpoint(ref: string, destFile: string): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* `msb snapshot import <archive>`, then resolves the EFFECTIVE ref: msb
|
|
142
|
+
* writes the import under a digest-derived directory name it never lets
|
|
143
|
+
* the caller choose (never the archive's own recorded `ref`), parsed from
|
|
144
|
+
* the printed artifact path's basename (see `parseImportedDigestDirName`).
|
|
145
|
+
* An already-exists failure — msb's own content-addressed dedup — is
|
|
146
|
+
* treated as success, since the artifact is already present under that
|
|
147
|
+
* digest either way; any OTHER import failure surfaces msb's own stderr.
|
|
148
|
+
* The digest-dir basename is then CONFIRMED present via `msb snapshot
|
|
149
|
+
* list --format json` (matching it against each entry's
|
|
150
|
+
* `name`/`artifact_path`) and returned as-is — never the entry's `digest`
|
|
151
|
+
* field. Live-verified against msb 0.6.6: the full `sha256:<64hex>`
|
|
152
|
+
* digest does not resolve as a snapshot ref at all (`msb snapshot inspect
|
|
153
|
+
* sha256:<full>` fails "snapshot not found"); only the digest-dir name
|
|
154
|
+
* resolves for `inspect`/`rm`/`run --snapshot`, so it — not the full
|
|
155
|
+
* digest — is the ref this must hand back for `hasCheckpoint` and every
|
|
156
|
+
* other snapshot-ref call to keep working. `_ref` (the archive's own
|
|
157
|
+
* recorded ref) is unused here — msb's importer never takes one, unlike
|
|
158
|
+
* docker's, where the effective ref really is the ref passed in.
|
|
159
|
+
*/
|
|
160
|
+
importCheckpoint(srcFile: string, _ref: string): Promise<string>;
|
|
87
161
|
private runningSandboxNames;
|
|
88
162
|
exec(handle: SandboxHandle, cmd: ReadonlyArray<string>): Promise<ExecResult>;
|
|
89
163
|
/**
|
|
@@ -166,6 +240,16 @@ export declare class MsbCliBackend implements SandboxBackend {
|
|
|
166
240
|
* `nc`, then install `/etc/hosts` aliases and spawn one tunnel per link.
|
|
167
241
|
*/
|
|
168
242
|
installNetworkLinks(handle: SandboxHandle, links: ReadonlyArray<NetworkLink>): Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* `msb copy -q <hostPath> <name>:<containerPath>` — the transfer only;
|
|
245
|
+
* `GenericContainer.copyFileToContainer()` already confirmed the sandbox
|
|
246
|
+
* is running, validated the absolute path, and ran the guest-side
|
|
247
|
+
* `mkdir -p` before this is ever called. A nonzero exit surfaces the
|
|
248
|
+
* tool's own stderr rather than a silent success.
|
|
249
|
+
*/
|
|
250
|
+
copyToContainer(handle: SandboxHandle, hostPath: string, containerPath: string): Promise<void>;
|
|
251
|
+
/** The reverse direction of `copyToContainer` — see its own doc. */
|
|
252
|
+
copyFromContainer(handle: SandboxHandle, containerPath: string, hostPath: string): Promise<void>;
|
|
169
253
|
close(): Promise<void>;
|
|
170
254
|
/**
|
|
171
255
|
* Synchronous, blocking teardown for the process-exit path, where the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3I,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ import { invoke, CLOSED_STDIN } from "./invoke.js";
|
|
|
7
7
|
import { isPortBindConflictOutput } from "./port-conflict.js";
|
|
8
8
|
import { isImageCacheCorruption } from "./image-cache.js";
|
|
9
9
|
import { isMsbStateDbError } from "./state-db.js";
|
|
10
|
+
import { isSnapshotNotFoundError } from "./snapshot-not-found.js";
|
|
11
|
+
import { isSnapshotAlreadyExistsError, parseImportedDigestDirName } from "./snapshot-import.js";
|
|
12
|
+
import { parseSnapshotList, confirmDigestDirNamePresent } from "./snapshot-list.js";
|
|
10
13
|
import { undeliveredLines } from "./follow-replay.js";
|
|
11
14
|
import { requireNoDuplicateGuestPorts, requireAliasesAreValid, hostsAliasScript } from "./network-links.js";
|
|
12
15
|
import { ExecTunnel } from "./exec-tunnel.js";
|
|
@@ -17,6 +20,14 @@ const EXEC_TIMEOUT_MS = 120_000;
|
|
|
17
20
|
const LOGS_TIMEOUT_MS = 30_000;
|
|
18
21
|
const ATTACHED_PROC_STOP_TIMEOUT_MS = 10_000;
|
|
19
22
|
const TAIL_LINES = 50;
|
|
23
|
+
// Snapshot create/rm and the reboot-from-snapshot step of the checkpoint
|
|
24
|
+
// stop/snapshot/reboot cycle — generous, since a snapshot's size tracks the
|
|
25
|
+
// sandbox's actual disk usage (a tiny alpine's was a few MB, but nothing
|
|
26
|
+
// here bounds a caller's own workload).
|
|
27
|
+
const CHECKPOINT_TIMEOUT_MS = 120_000;
|
|
28
|
+
// `msb copy` of a directory scales with its contents, not a fixed small
|
|
29
|
+
// payload like exec/logs — generous relative to those.
|
|
30
|
+
const COPY_TIMEOUT_MS = 120_000;
|
|
20
31
|
// How long the Windows polling follower's terminal fetch keeps retrying an
|
|
21
32
|
// `msb logs` invocation that itself keeps failing, once the sandbox is
|
|
22
33
|
// already confirmed no longer Running. Never a wait-for-content budget: a
|
|
@@ -167,12 +178,14 @@ export class MsbCliBackend {
|
|
|
167
178
|
/** `"microsandbox"` — matched against `RIGHTSIZE_BACKEND` and used in `dev.rightsize.runId`-style diagnostics. */
|
|
168
179
|
name = "microsandbox";
|
|
169
180
|
supportsNativeNetworks = false;
|
|
170
|
-
/** Each sandbox is its own microVM with its own kernel;
|
|
181
|
+
/** Each sandbox is its own microVM with its own kernel; checkpoint/restore is a disk snapshot, which restarts the workload. */
|
|
171
182
|
capabilities = {
|
|
172
183
|
/** Each sandbox is a microVM with its own kernel. */
|
|
173
184
|
hardwareIsolated: true,
|
|
174
|
-
/**
|
|
175
|
-
checkpoint:
|
|
185
|
+
/** Disk-snapshot checkpoint/restore via `msb snapshot`. */
|
|
186
|
+
checkpoint: true,
|
|
187
|
+
/** The stop/snapshot/reboot cycle reboots the microVM — the workload restarts. */
|
|
188
|
+
checkpointRestartsWorkload: true,
|
|
176
189
|
};
|
|
177
190
|
handles = new Map();
|
|
178
191
|
startedNames = new Set();
|
|
@@ -403,15 +416,154 @@ export class MsbCliBackend {
|
|
|
403
416
|
this.handles.delete(handle.id);
|
|
404
417
|
}
|
|
405
418
|
/**
|
|
406
|
-
*
|
|
407
|
-
* `
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
419
|
+
* The stop/snapshot/reboot cycle: `msb stop <name>` (reusing this
|
|
420
|
+
* backend's own `stop()`, which also quiesces the attached child and any
|
|
421
|
+
* network-link tunnels), `msb snapshot create --from <name> <ref>`, then
|
|
422
|
+
* `msb rm <name>` followed by a fresh ATTACHED boot of the SAME name from
|
|
423
|
+
* that snapshot — never `msb start`. Upstream's detached-start path
|
|
424
|
+
* (`Sandbox::start_detached`) passes `CREATE_BREAKAWAY_FROM_JOB` on
|
|
425
|
+
* Windows, which `ERROR_ACCESS_DENIED`s outright whenever the msb CLI runs
|
|
426
|
+
* inside a job object that doesn't grant breakaway rights — a Gradle/
|
|
427
|
+
* cargo/node test runner on a hosted Windows runner, or any process that
|
|
428
|
+
* embeds this library inside its own restrictive job object — and that
|
|
429
|
+
* denial is deterministic, not transient, so no retry shape fixes it.
|
|
430
|
+
* Attached `msb run` (this backend's normal boot, including `--snapshot`
|
|
431
|
+
* boots) never hits it, which is why the reboot reuses `bootOnce` instead
|
|
432
|
+
* of resuming in place: the stopped sandbox's disk state is already IN the
|
|
433
|
+
* snapshot, so `rm`-ing it first and booting a fresh attached sandbox
|
|
434
|
+
* under the same name/ports/env/memory (via a spec identical to
|
|
435
|
+
* `handle.spec` except `checkpointRef` set to the new `ref`) reproduces
|
|
436
|
+
* the exact same observable contract. `bootOnce` swaps `state.attached` to
|
|
437
|
+
* the freshly spawned child itself; nothing about `this.handles`/
|
|
438
|
+
* `startedNames` or the reaping ledger changes, since the name never
|
|
439
|
+
* changed. Its workload restarts from scratch (the VM reboots), which is
|
|
440
|
+
* why `capabilities.checkpointRestartsWorkload` is `true` here and the
|
|
441
|
+
* generic layer re-runs the wait strategy after this returns.
|
|
442
|
+
*
|
|
443
|
+
* If the snapshot step fails, the sandbox is left stopped — no
|
|
444
|
+
* best-effort restart, since that restart would itself be the broken `msb
|
|
445
|
+
* start` call — and the error names the failed step plus the by-hand
|
|
446
|
+
* remedy. If the snapshot step SUCCEEDS but the reboot from it fails, the
|
|
447
|
+
* sandbox has already been removed by the time that's known, so the error
|
|
448
|
+
* instead names the checkpoint ref and points at `fromCheckpoint()` as the
|
|
449
|
+
* recovery path.
|
|
450
|
+
*/
|
|
451
|
+
async createCheckpoint(handle, ref) {
|
|
452
|
+
const msbPath = await this.msbPath();
|
|
453
|
+
await this.stop(handle);
|
|
454
|
+
const snap = await invoke(msbPath, MsbCommands.snapshotCreate(handle.id, ref), CHECKPOINT_TIMEOUT_MS);
|
|
455
|
+
if (snap.exitCode !== 0) {
|
|
456
|
+
throw new BackendError(`msb snapshot create --from ${handle.id} ${ref} failed (exit ${snap.exitCode}): ${snap.stderr.trim()} — ` +
|
|
457
|
+
`the sandbox is left stopped; run 'msb start ${handle.id}' by hand to bring it back up.`);
|
|
458
|
+
}
|
|
459
|
+
await invoke(msbPath, MsbCommands.rm(handle.id), STOP_TIMEOUT_MS).catch(() => { });
|
|
460
|
+
const state = this.handles.get(handle.id);
|
|
461
|
+
if (state === undefined) {
|
|
462
|
+
throw new BackendError(`no handle state for sandbox '${handle.id}' — create() was never called for it`);
|
|
463
|
+
}
|
|
464
|
+
const rebootHandle = { id: handle.id, spec: { ...handle.spec, checkpointRef: ref } };
|
|
465
|
+
try {
|
|
466
|
+
await this.bootOnce(msbPath, rebootHandle, state);
|
|
467
|
+
}
|
|
468
|
+
catch (err) {
|
|
469
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
470
|
+
throw new BackendError(`sandbox '${handle.id}' was removed after a successful checkpoint snapshot, but booting a fresh ` +
|
|
471
|
+
`sandbox back up from that snapshot failed: ${detail} — the sandbox's disk state is preserved in ` +
|
|
472
|
+
`checkpoint '${ref}', restorable via GenericContainer.fromCheckpoint().`);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
/** Best-effort `msb snapshot rm <ref>` — "not found" is success, the same contract as `removeByName`. */
|
|
476
|
+
async removeCheckpoint(ref) {
|
|
477
|
+
const msbPath = await this.msbPath();
|
|
478
|
+
await invoke(msbPath, MsbCommands.snapshotRemove(ref), CHECKPOINT_TIMEOUT_MS).catch(() => { });
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* `msb snapshot inspect <ref>` — exit 0 means the snapshot exists. A
|
|
482
|
+
* non-zero exit whose stderr carries msb's own "snapshot not found"
|
|
483
|
+
* framing (see `isSnapshotNotFoundError`, confirmed verbatim against the
|
|
484
|
+
* real msb 0.6.6 binary) resolves `false` — a genuine miss. Any OTHER
|
|
485
|
+
* non-zero exit (a corrupted state db, a permission error, a malformed
|
|
486
|
+
* argument, an msb crash) throws `BackendError` carrying the raw stderr
|
|
487
|
+
* instead of collapsing to `false`: `invoke()` itself only rejects on a
|
|
488
|
+
* spawn or timeout failure (never on exit code — see `logs()`'s own doc on
|
|
489
|
+
* that), so without this check a genuine probe failure would silently
|
|
490
|
+
* resolve `false` and let `Checkpoints.find`'s stale-cleanup best-effort
|
|
491
|
+
* delete a perfectly valid registry entry over what may be a transient msb
|
|
492
|
+
* failure — exactly the "no best-effort false on probe errors" the SPI's
|
|
493
|
+
* own contract forbids.
|
|
494
|
+
*/
|
|
495
|
+
async hasCheckpoint(ref) {
|
|
496
|
+
const msbPath = await this.msbPath();
|
|
497
|
+
const result = await invoke(msbPath, MsbCommands.snapshotInspect(ref), CHECKPOINT_TIMEOUT_MS);
|
|
498
|
+
if (result.exitCode === 0) {
|
|
499
|
+
return true;
|
|
500
|
+
}
|
|
501
|
+
if (isSnapshotNotFoundError(result.stderr)) {
|
|
502
|
+
return false;
|
|
503
|
+
}
|
|
504
|
+
throw new BackendError(`msb snapshot inspect ${ref} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* `msb snapshot export <ref> <destFile>` — writes the `.tar.zst` artifact
|
|
508
|
+
* `Checkpoints.exportTo` bundles into its own archive container. Never
|
|
509
|
+
* `--with-image` (see the checkpoints guide's own note on why: its import
|
|
510
|
+
* fails an integrity check in 0.6.6, so archives never bundle the OCI
|
|
511
|
+
* image — the destination machine pulls it on the restored container's
|
|
512
|
+
* first boot).
|
|
411
513
|
*/
|
|
412
|
-
async
|
|
413
|
-
|
|
414
|
-
|
|
514
|
+
async exportCheckpoint(ref, destFile) {
|
|
515
|
+
const msbPath = await this.msbPath();
|
|
516
|
+
const result = await invoke(msbPath, MsbCommands.snapshotExport(ref, destFile), CHECKPOINT_TIMEOUT_MS);
|
|
517
|
+
if (result.exitCode !== 0) {
|
|
518
|
+
throw new BackendError(`msb snapshot export ${ref} ${destFile} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* `msb snapshot import <archive>`, then resolves the EFFECTIVE ref: msb
|
|
523
|
+
* writes the import under a digest-derived directory name it never lets
|
|
524
|
+
* the caller choose (never the archive's own recorded `ref`), parsed from
|
|
525
|
+
* the printed artifact path's basename (see `parseImportedDigestDirName`).
|
|
526
|
+
* An already-exists failure — msb's own content-addressed dedup — is
|
|
527
|
+
* treated as success, since the artifact is already present under that
|
|
528
|
+
* digest either way; any OTHER import failure surfaces msb's own stderr.
|
|
529
|
+
* The digest-dir basename is then CONFIRMED present via `msb snapshot
|
|
530
|
+
* list --format json` (matching it against each entry's
|
|
531
|
+
* `name`/`artifact_path`) and returned as-is — never the entry's `digest`
|
|
532
|
+
* field. Live-verified against msb 0.6.6: the full `sha256:<64hex>`
|
|
533
|
+
* digest does not resolve as a snapshot ref at all (`msb snapshot inspect
|
|
534
|
+
* sha256:<full>` fails "snapshot not found"); only the digest-dir name
|
|
535
|
+
* resolves for `inspect`/`rm`/`run --snapshot`, so it — not the full
|
|
536
|
+
* digest — is the ref this must hand back for `hasCheckpoint` and every
|
|
537
|
+
* other snapshot-ref call to keep working. `_ref` (the archive's own
|
|
538
|
+
* recorded ref) is unused here — msb's importer never takes one, unlike
|
|
539
|
+
* docker's, where the effective ref really is the ref passed in.
|
|
540
|
+
*/
|
|
541
|
+
async importCheckpoint(srcFile, _ref) {
|
|
542
|
+
const msbPath = await this.msbPath();
|
|
543
|
+
const imported = await invoke(msbPath, MsbCommands.snapshotImport(srcFile), CHECKPOINT_TIMEOUT_MS);
|
|
544
|
+
let digestDirName;
|
|
545
|
+
if (imported.exitCode === 0) {
|
|
546
|
+
digestDirName = parseImportedDigestDirName(imported.stdout);
|
|
547
|
+
}
|
|
548
|
+
else if (isSnapshotAlreadyExistsError(imported.stderr)) {
|
|
549
|
+
digestDirName = parseImportedDigestDirName(imported.stderr);
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
throw new BackendError(`msb snapshot import ${srcFile} failed (exit ${imported.exitCode}): ${imported.stderr.trim()}`);
|
|
553
|
+
}
|
|
554
|
+
if (digestDirName === undefined) {
|
|
555
|
+
throw new BackendError(`msb snapshot import ${srcFile} did not print a recognizable artifact path — output:\n` +
|
|
556
|
+
`${imported.stdout}${imported.stderr}`);
|
|
557
|
+
}
|
|
558
|
+
const list = await invoke(msbPath, MsbCommands.snapshotList(), CHECKPOINT_TIMEOUT_MS);
|
|
559
|
+
if (list.exitCode !== 0) {
|
|
560
|
+
throw new BackendError(`msb snapshot list failed (exit ${list.exitCode}): ${list.stderr.trim()}`);
|
|
561
|
+
}
|
|
562
|
+
const confirmedRef = confirmDigestDirNamePresent(parseSnapshotList(list.stdout), digestDirName);
|
|
563
|
+
if (confirmedRef === undefined) {
|
|
564
|
+
throw new BackendError(`imported snapshot '${digestDirName}' from ${srcFile} did not appear in 'msb snapshot list' — could not confirm the import`);
|
|
565
|
+
}
|
|
566
|
+
return confirmedRef;
|
|
415
567
|
}
|
|
416
568
|
async runningSandboxNames(msbPath) {
|
|
417
569
|
const result = await invoke(msbPath, MsbCommands.ls(), LOGS_TIMEOUT_MS);
|
|
@@ -678,6 +830,28 @@ export class MsbCliBackend {
|
|
|
678
830
|
}
|
|
679
831
|
}
|
|
680
832
|
}
|
|
833
|
+
/**
|
|
834
|
+
* `msb copy -q <hostPath> <name>:<containerPath>` — the transfer only;
|
|
835
|
+
* `GenericContainer.copyFileToContainer()` already confirmed the sandbox
|
|
836
|
+
* is running, validated the absolute path, and ran the guest-side
|
|
837
|
+
* `mkdir -p` before this is ever called. A nonzero exit surfaces the
|
|
838
|
+
* tool's own stderr rather than a silent success.
|
|
839
|
+
*/
|
|
840
|
+
async copyToContainer(handle, hostPath, containerPath) {
|
|
841
|
+
const msbPath = await this.msbPath();
|
|
842
|
+
const result = await invoke(msbPath, MsbCommands.copyIn(hostPath, handle.id, containerPath), COPY_TIMEOUT_MS);
|
|
843
|
+
if (result.exitCode !== 0) {
|
|
844
|
+
throw new BackendError(`msb copy into ${handle.id}:${containerPath} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
/** The reverse direction of `copyToContainer` — see its own doc. */
|
|
848
|
+
async copyFromContainer(handle, containerPath, hostPath) {
|
|
849
|
+
const msbPath = await this.msbPath();
|
|
850
|
+
const result = await invoke(msbPath, MsbCommands.copyOut(handle.id, containerPath, hostPath), COPY_TIMEOUT_MS);
|
|
851
|
+
if (result.exitCode !== 0) {
|
|
852
|
+
throw new BackendError(`msb copy from ${handle.id}:${containerPath} failed (exit ${result.exitCode}): ${result.stderr.trim()}`);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
681
855
|
// This process's own-run cleanup sweep. `startedNames` never contains a
|
|
682
856
|
// keepAlive sandbox's name (bootOnce skips adding it), so this loop leaves
|
|
683
857
|
// reuse sandboxes running by construction — no keepAlive check needed here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/backend-msb/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,22 @@ import type { ContainerSpec } from "../core/model.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const MsbCommands: {
|
|
10
10
|
run(spec: ContainerSpec): string[];
|
|
11
|
+
/** `msb snapshot create --from <sandbox> <name>` — requires `sandbox` STOPPED; writes a sparse disk snapshot under `~/.microsandbox/snapshots/<name>`. */
|
|
12
|
+
snapshotCreate(sandbox: string, name: string): string[];
|
|
13
|
+
/** `msb snapshot rm <name>` — best-effort per `removeCheckpoint`'s own contract; "not found" is fine. */
|
|
14
|
+
snapshotRemove(name: string): string[];
|
|
15
|
+
/** `msb snapshot inspect <name>` — exit 0 means the snapshot exists, non-zero means it doesn't; `hasCheckpoint`'s backend call. */
|
|
16
|
+
snapshotInspect(name: string): string[];
|
|
17
|
+
/** `msb snapshot export <ref> <dest>` — writes a `.tar.zst` artifact archive; deliberately never `--with-image` (its import fails an integrity check in 0.6.6, see the checkpoints guide). `exportCheckpoint`'s backend call. */
|
|
18
|
+
snapshotExport(ref: string, dest: string): string[];
|
|
19
|
+
/** `msb snapshot import <archive>` — unpacks into a digest-derived directory under `~/.microsandbox/snapshots/`, never the original name; `importCheckpoint`'s backend call. */
|
|
20
|
+
snapshotImport(archive: string): string[];
|
|
21
|
+
/** `msb snapshot list --format json` — full `digest`/`name`/`artifact_path`/`image_ref` entries, used to CONFIRM an imported snapshot's digest-dir basename is present (the basename itself, not the `digest` field, is the effective ref — the full digest does not resolve as a snapshot ref). */
|
|
22
|
+
snapshotList(): string[];
|
|
23
|
+
/** `msb copy -q <hostPath> <name>:<containerPath>` — host-to-guest transfer, `cp -r`-style destination naming for a directory source. */
|
|
24
|
+
copyIn(hostPath: string, name: string, containerPath: string): string[];
|
|
25
|
+
/** `msb copy -q <name>:<containerPath> <hostPath>` — the reverse direction of `copyIn`. */
|
|
26
|
+
copyOut(name: string, containerPath: string, hostPath: string): string[];
|
|
11
27
|
exec(name: string, cmd: readonly string[]): string[];
|
|
12
28
|
execStream(name: string, cmd: readonly string[]): string[];
|
|
13
29
|
logs(name: string): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;cACZ,aAAa,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/backend-msb/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;cACZ,aAAa,GAAG,MAAM,EAAE;IAgClC,0JAA0J;4BAClI,MAAM,QAAQ,MAAM,GAAG,MAAM,EAAE;IAIvD,yGAAyG;yBACpF,MAAM,GAAG,MAAM,EAAE;IAItC,mIAAmI;0BAC7G,MAAM,GAAG,MAAM,EAAE;IAIvC,iOAAiO;wBAC7M,MAAM,QAAQ,MAAM,GAAG,MAAM,EAAE;IAInD,gLAAgL;4BACxJ,MAAM,GAAG,MAAM,EAAE;IAIzC,oSAAoS;oBACpR,MAAM,EAAE;IAIxB,yIAAyI;qBACxH,MAAM,QAAQ,MAAM,iBAAiB,MAAM,GAAG,MAAM,EAAE;IAIvE,2FAA2F;kBAC7E,MAAM,iBAAiB,MAAM,YAAY,MAAM,GAAG,MAAM,EAAE;eAI7D,MAAM,OAAO,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;qBAInC,MAAM,OAAO,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE;eAI/C,MAAM,GAAG,MAAM,EAAE;qBAIX,MAAM,GAAG,MAAM,EAAE;eAIvB,MAAM,GAAG,MAAM,EAAE;aAInB,MAAM,GAAG,MAAM,EAAE;UAIpB,MAAM,EAAE;IAKd;;;;;;;OAOG;2BACoB,MAAM,GAAG,MAAM,EAAE;CAGzC,CAAC"}
|
|
@@ -23,13 +23,53 @@ export const MsbCommands = {
|
|
|
23
23
|
for (const mount of spec.mounts) {
|
|
24
24
|
argv.push("--mount-file", `${mount.hostPath}:${mount.guestPath}`);
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
if (spec.checkpointRef !== undefined) {
|
|
27
|
+
// `--snapshot` is mutually exclusive with the IMAGE positional arg —
|
|
28
|
+
// the snapshot itself pins the image (see MsbCliBackend's own doc on
|
|
29
|
+
// fromCheckpoint/checkpointRef).
|
|
30
|
+
argv.push("--snapshot", spec.checkpointRef);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
argv.push(spec.image);
|
|
34
|
+
}
|
|
27
35
|
if (spec.command !== undefined) {
|
|
28
36
|
// undefined => the image's own ENTRYPOINT/CMD runs unmodified.
|
|
29
37
|
argv.push("--", ...spec.command);
|
|
30
38
|
}
|
|
31
39
|
return argv;
|
|
32
40
|
},
|
|
41
|
+
/** `msb snapshot create --from <sandbox> <name>` — requires `sandbox` STOPPED; writes a sparse disk snapshot under `~/.microsandbox/snapshots/<name>`. */
|
|
42
|
+
snapshotCreate(sandbox, name) {
|
|
43
|
+
return ["snapshot", "create", "--from", sandbox, name];
|
|
44
|
+
},
|
|
45
|
+
/** `msb snapshot rm <name>` — best-effort per `removeCheckpoint`'s own contract; "not found" is fine. */
|
|
46
|
+
snapshotRemove(name) {
|
|
47
|
+
return ["snapshot", "rm", name];
|
|
48
|
+
},
|
|
49
|
+
/** `msb snapshot inspect <name>` — exit 0 means the snapshot exists, non-zero means it doesn't; `hasCheckpoint`'s backend call. */
|
|
50
|
+
snapshotInspect(name) {
|
|
51
|
+
return ["snapshot", "inspect", name];
|
|
52
|
+
},
|
|
53
|
+
/** `msb snapshot export <ref> <dest>` — writes a `.tar.zst` artifact archive; deliberately never `--with-image` (its import fails an integrity check in 0.6.6, see the checkpoints guide). `exportCheckpoint`'s backend call. */
|
|
54
|
+
snapshotExport(ref, dest) {
|
|
55
|
+
return ["snapshot", "export", ref, dest];
|
|
56
|
+
},
|
|
57
|
+
/** `msb snapshot import <archive>` — unpacks into a digest-derived directory under `~/.microsandbox/snapshots/`, never the original name; `importCheckpoint`'s backend call. */
|
|
58
|
+
snapshotImport(archive) {
|
|
59
|
+
return ["snapshot", "import", archive];
|
|
60
|
+
},
|
|
61
|
+
/** `msb snapshot list --format json` — full `digest`/`name`/`artifact_path`/`image_ref` entries, used to CONFIRM an imported snapshot's digest-dir basename is present (the basename itself, not the `digest` field, is the effective ref — the full digest does not resolve as a snapshot ref). */
|
|
62
|
+
snapshotList() {
|
|
63
|
+
return ["snapshot", "list", "--format", "json"];
|
|
64
|
+
},
|
|
65
|
+
/** `msb copy -q <hostPath> <name>:<containerPath>` — host-to-guest transfer, `cp -r`-style destination naming for a directory source. */
|
|
66
|
+
copyIn(hostPath, name, containerPath) {
|
|
67
|
+
return ["copy", "-q", hostPath, `${name}:${containerPath}`];
|
|
68
|
+
},
|
|
69
|
+
/** `msb copy -q <name>:<containerPath> <hostPath>` — the reverse direction of `copyIn`. */
|
|
70
|
+
copyOut(name, containerPath, hostPath) {
|
|
71
|
+
return ["copy", "-q", `${name}:${containerPath}`, hostPath];
|
|
72
|
+
},
|
|
33
73
|
exec(name, cmd) {
|
|
34
74
|
return ["exec", name, "--", ...cmd];
|
|
35
75
|
},
|
|
@@ -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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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True if `stderr` (an `msb snapshot import` non-zero exit) names msb's own
|
|
3
|
+
* "this digest is already imported" signal, as opposed to some other import
|
|
4
|
+
* failure. Observed verbatim against the real msb 0.6.6 binary:
|
|
5
|
+
*
|
|
6
|
+
* ```
|
|
7
|
+
* error: snapshot already exists: <path>
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* For a content-addressed archive this IS success — the artifact is already
|
|
11
|
+
* present under that digest either way — so `importCheckpoint` treats it as
|
|
12
|
+
* one rather than surfacing it. Deliberately a substring match on the stable
|
|
13
|
+
* prefix, the same reasoning `isSnapshotNotFoundError` applies to its own
|
|
14
|
+
* wording: the trailing path varies per host and msb has no structured/typed
|
|
15
|
+
* error for this.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isSnapshotAlreadyExistsError(stderr: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Extracts the digest-dir basename from one `msb snapshot import`
|
|
20
|
+
* invocation's output. Verified against the real msb 0.6.6 binary: on both a
|
|
21
|
+
* success (the printed stdout line) and an already-exists failure (the
|
|
22
|
+
* `error: snapshot already exists: <path>` stderr line), the relevant line
|
|
23
|
+
* ENDS with the artifact path under `~/.microsandbox/snapshots/`, whose
|
|
24
|
+
* basename is the digest-derived directory name (e.g.
|
|
25
|
+
* `sha256-b9c0448ee9d54e33`) — never the original archive's own recorded
|
|
26
|
+
* ref. Callers pass whichever stream actually carries the signal (stdout on
|
|
27
|
+
* success, stderr on an already-exists failure). `undefined` means the
|
|
28
|
+
* output carried no recognizable trailing path — a shape this backend
|
|
29
|
+
* doesn't understand, which the caller turns into its own actionable error
|
|
30
|
+
* rather than guessing.
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseImportedDigestDirName(output: string): string | undefined;
|
|
33
|
+
//# sourceMappingURL=snapshot-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-import.d.ts","sourceRoot":"","sources":["../../src/backend-msb/snapshot-import.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E"}
|