fix(ql3): bind upgrade plans to canonical paths

This commit is contained in:
whyour
2026-08-30 22:46:51 +08:00
parent 93b45ca62d
commit 6edf6ff3c5
2 changed files with 22 additions and 4 deletions
@@ -70,10 +70,10 @@ mkdir -m 0700 "$evidence_root"
mkdir -m 0700 "$evidence_root/results"
cat >"$evidence_root/sqlite-inspect.json" <<EOF
{"schemaVersion":1,"operation":"local-sqlite.adoption.inspect","options":{"deploymentRoot":"/var/lib/qinglong3","profile":"$profile","sourcePath":"/var/lib/qinglong2/db/database.sqlite"}}
{"schemaVersion":1,"operation":"local-sqlite.adoption.inspect","options":{"deploymentRoot":"/var/lib/qinglong3","profile":"$profile","sourcePath":"$legacy_root/db/database.sqlite"}}
EOF
cat >"$evidence_root/data-directory-inspect.json" <<EOF
{"schemaVersion":1,"operation":"local-data-directory.adoption.inspect","options":{"dataRoot":"/var/lib/qinglong2","profile":"$profile"}}
{"schemaVersion":1,"operation":"local-data-directory.adoption.inspect","options":{"dataRoot":"$legacy_root","profile":"$profile"}}
EOF
chmod 0600 "$evidence_root/sqlite-inspect.json" "$evidence_root/data-directory-inspect.json"
@@ -86,7 +86,7 @@ run_inspect() {
--cap-drop ALL --security-opt no-new-privileges \
--memory 128m --memory-swap 128m --cpus 0.5 --pids-limit 32 \
--tmpfs /tmp:rw,nosuid,nodev,noexec,size=8m \
--mount "type=bind,src=$legacy_root,dst=/var/lib/qinglong2,readonly" \
--mount "type=bind,src=$legacy_root,dst=$legacy_root,readonly" \
--mount "type=bind,src=$evidence_root,dst=/var/lib/qinglong3" \
"$OPERATOR_IMAGE" adoption run \
--command-file "/var/lib/qinglong3/$command_file" \
+19 -1
View File
@@ -568,7 +568,25 @@ exit 1
'inspected',
);
const calls = fs.readFileSync(dockerLog, 'utf8');
assert.match(calls, /dst=\/var\/lib\/qinglong2,readonly/);
assert.match(
calls,
new RegExp(`src=${legacyRoot},dst=${legacyRoot},readonly`),
);
assert.equal(
JSON.parse(
fs.readFileSync(path.join(evidenceRoot, 'sqlite-inspect.json'), 'utf8'),
).options.sourcePath,
path.join(legacyRoot, 'db', 'database.sqlite'),
);
assert.equal(
JSON.parse(
fs.readFileSync(
path.join(evidenceRoot, 'data-directory-inspect.json'),
'utf8',
),
).options.dataRoot,
legacyRoot,
);
assert.match(calls, /--network none/);
assert.match(calls, /--memory 128m --memory-swap 128m/);
assert.doesNotMatch(calls, /adoption\.stage|activation\.prepare|cutover/);