feat(deploy): register Device Core telemetry releases
This commit is contained in:
+1237
-40
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,154 @@ class DevicePlaneRegistryTest(unittest.TestCase):
|
||||
("device-manager",),
|
||||
)
|
||||
|
||||
def test_manager_v10_pins_successful_v8_and_control_core_v4(self):
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V10_PREDECESSOR_PATCH_ID,
|
||||
"device-manager-release-v8-20260822-039",
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V10_CONTROL_CORE_PREDECESSOR_PATCH_ID,
|
||||
"device-control-core-release-v4-20260823-047",
|
||||
)
|
||||
boundaries = RUNNER.expected_device_plane_manager_release_v10_boundaries()
|
||||
self.assertEqual(
|
||||
boundaries["controlCorePredecessor"]["artifactSha256"],
|
||||
"4aecceeb8d400fdd3dbec8fc86b151691f389d165e72677f396f8994823b6b5c",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryWorkspace"],
|
||||
"mission-core-compute-module-parity-v1",
|
||||
)
|
||||
self.assertTrue(
|
||||
RUNNER.is_device_plane_manager_release_v10_slice(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V10_ENTRIES,
|
||||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.component_services(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V10_ENTRIES,
|
||||
),
|
||||
("device-manager",),
|
||||
)
|
||||
|
||||
def test_manager_v11_pins_v10_and_mission_core_visual_parity(self):
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V11_PREDECESSOR_PATCH_ID,
|
||||
"device-manager-release-v10-20260823-048",
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V11_PREDECESSOR_ARTIFACT_SHA256,
|
||||
"e6b983a314db4f8c27d89062dfedf5ed0523cc30421170799d181a19e2d85d4c",
|
||||
)
|
||||
boundaries = RUNNER.expected_device_plane_manager_release_v11_boundaries()
|
||||
self.assertEqual(
|
||||
boundaries["missionCoreReference"],
|
||||
"compute-modules-workspace-71c8b04",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryWorkspace"],
|
||||
"mission-core-compute-module-visual-parity-v2",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetrySurface"],
|
||||
"borderless-soft-surface-v1",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryScroll"],
|
||||
"reset-on-workspace-transition-v1",
|
||||
)
|
||||
self.assertTrue(
|
||||
RUNNER.is_device_plane_manager_release_v11_slice(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V11_ENTRIES,
|
||||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.component_services(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V11_ENTRIES,
|
||||
),
|
||||
("device-manager",),
|
||||
)
|
||||
|
||||
def test_manager_v12_pins_v11_and_adaptive_telemetry_graphs(self):
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V12_PREDECESSOR_PATCH_ID,
|
||||
"device-manager-release-v11-20260823-049",
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V12_PREDECESSOR_ARTIFACT_SHA256,
|
||||
"c1e2056b50bfbb0d03d077461d0c27cc56cc52967c3f5620be14871c8a6d5cf0",
|
||||
)
|
||||
boundaries = RUNNER.expected_device_plane_manager_release_v12_boundaries()
|
||||
self.assertEqual(
|
||||
boundaries["telemetryWorkspace"],
|
||||
"mission-core-compute-module-adaptive-window-v3",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryGraphScale"],
|
||||
"adaptive-observed-window-explicit-domain-v1",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryNetworkMissingSemantics"],
|
||||
"missing-counters-never-zero-v1",
|
||||
)
|
||||
self.assertTrue(
|
||||
RUNNER.is_device_plane_manager_release_v12_slice(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V12_ENTRIES,
|
||||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.component_services(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V12_ENTRIES,
|
||||
),
|
||||
("device-manager",),
|
||||
)
|
||||
|
||||
def test_manager_v13_pins_v12_and_host_inventory_accordion(self):
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V13_PREDECESSOR_PATCH_ID,
|
||||
"device-manager-release-v12-20260823-050",
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V13_PREDECESSOR_ARTIFACT_SHA256,
|
||||
"1a49839140e5f2e49763d78f24ee47d946e244bcfde15a9c38266e8bd14c0d49",
|
||||
)
|
||||
boundaries = RUNNER.expected_device_plane_manager_release_v13_boundaries()
|
||||
self.assertEqual(
|
||||
boundaries["hostInventoryComposition"],
|
||||
"mission-core-compute-host-accordion-v2",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["hostInventoryRow"],
|
||||
"compact-centered-accordion-v1",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["hostInventoryRelations"],
|
||||
"host-scoped-endpoint-deployment-service-v1",
|
||||
)
|
||||
self.assertEqual(
|
||||
boundaries["telemetryWorkspace"],
|
||||
"mission-core-compute-module-adaptive-window-v3",
|
||||
)
|
||||
self.assertTrue(
|
||||
RUNNER.is_device_plane_manager_release_v13_slice(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V13_ENTRIES,
|
||||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.component_services(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V13_ENTRIES,
|
||||
),
|
||||
("device-manager",),
|
||||
)
|
||||
|
||||
def test_control_core_v3_registers_telemetry_contract_slice(self):
|
||||
predecessor = {
|
||||
"kind": "release",
|
||||
@@ -83,6 +231,109 @@ class DevicePlaneRegistryTest(unittest.TestCase):
|
||||
)
|
||||
)
|
||||
|
||||
def test_control_core_v4_pins_terminal_recovery_046(self):
|
||||
predecessor = {
|
||||
"kind": "migration-replay-checkpoint-recovery",
|
||||
"patchId": (
|
||||
"device-control-core-migration-replay-checkpoint-recovery-"
|
||||
"20260822-046"
|
||||
),
|
||||
"artifactSha256": (
|
||||
"46000c76977fb583fc7c9cf74ecf624efd8b404f7b8d0322e0270e7b8ac6e450"
|
||||
),
|
||||
}
|
||||
descriptor = RUNNER.expected_device_plane_control_core_release_descriptor(
|
||||
RUNNER.DEVICE_PLANE_CONTROL_CORE_RELEASE_V4_PATCH_ID,
|
||||
predecessor,
|
||||
schema_version="v4",
|
||||
)
|
||||
self.assertEqual(
|
||||
descriptor["schemaVersion"],
|
||||
"nodedc.device-plane.device-control-core-release.v4",
|
||||
)
|
||||
self.assertEqual(
|
||||
descriptor["recoveryPredecessor"],
|
||||
"terminal-applied-046-exact-source-runtime-database",
|
||||
)
|
||||
self.assertEqual(
|
||||
descriptor["databaseSchemaOutcome"],
|
||||
"migration-017-host-telemetry-table-present",
|
||||
)
|
||||
self.assertTrue(
|
||||
RUNNER.is_device_plane_control_core_release_v4_slice(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_CONTROL_CORE_RELEASE_V4_ENTRIES,
|
||||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
RUNNER.component_services(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_CONTROL_CORE_RELEASE_V4_ENTRIES,
|
||||
),
|
||||
("device-control-core",),
|
||||
)
|
||||
|
||||
def test_control_core_v4_health_contract_keeps_typed_commands(self):
|
||||
checks = RUNNER.component_healthchecks(
|
||||
"device-plane",
|
||||
RUNNER.DEVICE_PLANE_CONTROL_CORE_RELEASE_V4_ENTRIES,
|
||||
("device-control-core",),
|
||||
)
|
||||
self.assertEqual(
|
||||
checks[0]["expected_json"]["commandTransport"],
|
||||
"typed-service-ping-v1",
|
||||
)
|
||||
|
||||
def test_control_core_v4_telemetry_database_acceptance(self):
|
||||
result = mock.Mock(
|
||||
returncode=0,
|
||||
stdout="true\t19\t2\ttrue\t0\t0\n",
|
||||
stderr="",
|
||||
)
|
||||
with (
|
||||
mock.patch.object(
|
||||
RUNNER,
|
||||
"device_plane_service_container_ids",
|
||||
return_value=("a" * 64,),
|
||||
),
|
||||
mock.patch.object(
|
||||
RUNNER.subprocess,
|
||||
"run",
|
||||
return_value=result,
|
||||
),
|
||||
):
|
||||
evidence = (
|
||||
RUNNER.collect_device_plane_control_core_host_telemetry_database_evidence()
|
||||
)
|
||||
self.assertTrue(evidence["tablePresent"])
|
||||
self.assertEqual(evidence["columnCount"], 19)
|
||||
self.assertEqual(evidence["indexCount"], 2)
|
||||
self.assertEqual(evidence["expiredSampleCount"], 0)
|
||||
|
||||
def test_control_core_v4_telemetry_database_rejects_missing_index(self):
|
||||
result = mock.Mock(
|
||||
returncode=0,
|
||||
stdout="true\t19\t1\ttrue\t0\t0\n",
|
||||
stderr="",
|
||||
)
|
||||
with (
|
||||
mock.patch.object(
|
||||
RUNNER,
|
||||
"device_plane_service_container_ids",
|
||||
return_value=("a" * 64,),
|
||||
),
|
||||
mock.patch.object(
|
||||
RUNNER.subprocess,
|
||||
"run",
|
||||
return_value=result,
|
||||
),
|
||||
self.assertRaisesRegex(
|
||||
RUNNER.DeployError,
|
||||
"host telemetry database invariant mismatch",
|
||||
),
|
||||
):
|
||||
RUNNER.collect_device_plane_control_core_host_telemetry_database_evidence()
|
||||
|
||||
def test_manager_v8_pins_production_v6_and_canonical_ontology_runtime(self):
|
||||
self.assertEqual(
|
||||
RUNNER.DEVICE_PLANE_MANAGER_RELEASE_V8_PREDECESSOR_PATCH_ID,
|
||||
|
||||
Reference in New Issue
Block a user