fix(deploy): pin VPS telemetry predecessor hash
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
"phase": "host-telemetry",
|
"phase": "host-telemetry",
|
||||||
"runtimeHost": "koffyvngij",
|
"runtimeHost": "koffyvngij",
|
||||||
"predecessorPatch": "device-edge-vps-command-transport-20260812-013",
|
"predecessorPatch": "device-edge-vps-command-transport-20260812-013",
|
||||||
"predecessorArtifactSha256": "c7486ec879681ddd706f229628c8556ca8c9ccc4f152a85debb409c302759ef",
|
"predecessorArtifactSha256": "c7486ec879681ddd706f229b628c8556ca8c9ccc4f152a85debb409c302759ef",
|
||||||
"agent": "telegraf",
|
"agent": "telegraf",
|
||||||
"agentVersion": "1.38.4",
|
"agentVersion": "1.38.4",
|
||||||
"agentRuntimeUser": "nodedc-telemetry",
|
"agentRuntimeUser": "nodedc-telemetry",
|
||||||
|
|||||||
@@ -442,6 +442,9 @@ async function assertBoundary() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (phase === "host-telemetry") {
|
if (phase === "host-telemetry") {
|
||||||
|
if (!/^[0-9a-f]{64}$/.test(descriptor.predecessorArtifactSha256 || "")) {
|
||||||
|
throw new Error("host_telemetry_predecessor_sha256_invalid");
|
||||||
|
}
|
||||||
for (const required of [
|
for (const required of [
|
||||||
'"predecessorPatch": "device-edge-vps-command-transport-20260812-013"',
|
'"predecessorPatch": "device-edge-vps-command-transport-20260812-013"',
|
||||||
'"agent": "telegraf"',
|
'"agent": "telegraf"',
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ COMMAND_TRANSPORT_ACCEPTED_PATCH = (
|
|||||||
"device-edge-vps-command-transport-20260812-013"
|
"device-edge-vps-command-transport-20260812-013"
|
||||||
)
|
)
|
||||||
COMMAND_TRANSPORT_ACCEPTED_SHA256 = (
|
COMMAND_TRANSPORT_ACCEPTED_SHA256 = (
|
||||||
"c7486ec879681ddd706f229628c8556ca8c9ccc4f152a85debb409c302759ef"
|
"c7486ec879681ddd706f229b628c8556ca8c9ccc4f152a85debb409c302759ef"
|
||||||
)
|
)
|
||||||
|
|
||||||
FOUNDATION_ENTRIES = (
|
FOUNDATION_ENTRIES = (
|
||||||
@@ -351,7 +351,7 @@ PHASE_FILE_SHA256 = {
|
|||||||
},
|
},
|
||||||
"host-telemetry": {
|
"host-telemetry": {
|
||||||
"deployment/device-edge-vps-host-telemetry-v1.json":
|
"deployment/device-edge-vps-host-telemetry-v1.json":
|
||||||
"69d4ed7c7462d982e53fa2f0688d7a129952811b96dcb1bf4ae3721f235fc406",
|
"c4dc60e68549c3c3844779091d5b767a2cb4152cd923433b488cb56e37717391",
|
||||||
"packages/device-edge-channel-contract/package.json":
|
"packages/device-edge-channel-contract/package.json":
|
||||||
"57d5349b5dcef2cacd4f3e4fad010359a65d59f5f903eff07d89f67c497f97c0",
|
"57d5349b5dcef2cacd4f3e4fad010359a65d59f5f903eff07d89f67c497f97c0",
|
||||||
"packages/device-edge-channel-contract/src/index.mjs":
|
"packages/device-edge-channel-contract/src/index.mjs":
|
||||||
|
|||||||
@@ -462,6 +462,23 @@ class DeviceEdgeVpsArtifactTest(unittest.TestCase):
|
|||||||
self.assertIn("command_transport=typed-service-ping-v1", rendered)
|
self.assertIn("command_transport=typed-service-ping-v1", rendered)
|
||||||
self.assertIn("gelios=untouched-legacy-only", rendered)
|
self.assertIn("gelios=untouched-legacy-only", rendered)
|
||||||
|
|
||||||
|
def test_host_telemetry_predecessor_is_exact_command_transport_artifact(self):
|
||||||
|
source_root = SCRIPT_DIR.parents[1]
|
||||||
|
descriptor = json.loads(
|
||||||
|
(
|
||||||
|
source_root
|
||||||
|
/ "deployment/device-edge-vps-host-telemetry-v1.json"
|
||||||
|
).read_text(encoding="utf-8")
|
||||||
|
)
|
||||||
|
predecessor_sha = descriptor["predecessorArtifactSha256"]
|
||||||
|
|
||||||
|
self.assertRegex(predecessor_sha, r"^[0-9a-f]{64}$")
|
||||||
|
self.assertEqual(predecessor_sha, RUNNER.COMMAND_TRANSPORT_ACCEPTED_SHA256)
|
||||||
|
self.assertEqual(
|
||||||
|
predecessor_sha,
|
||||||
|
"c7486ec879681ddd706f229b628c8556ca8c9ccc4f152a85debb409c302759ef",
|
||||||
|
)
|
||||||
|
|
||||||
def test_publish_payload_preserves_unselected_executable_modes(self):
|
def test_publish_payload_preserves_unselected_executable_modes(self):
|
||||||
with tempfile.TemporaryDirectory(prefix="nodedc-vps-publish-scope-") as directory:
|
with tempfile.TemporaryDirectory(prefix="nodedc-vps-publish-scope-") as directory:
|
||||||
root = Path(directory)
|
root = Path(directory)
|
||||||
|
|||||||
Reference in New Issue
Block a user