feat: add l2 l3 simulator patch panel skeleton

This commit is contained in:
HWLAB Code Queue
2026-05-21 14:40:12 +00:00
parent b1d31380cb
commit 77f70ff4ad
11 changed files with 757 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
# MVP Simulated Topology
`topology.json` is the L2/L3 dry-run fixture for the simulator skeleton. It
describes two `hwlab-box-simu` instances, two `hwlab-gateway-simu` instances,
and one `hwlab-patch-panel`.
Cross-device propagation is represented only through the patch panel wiring
config. Box simulators keep local port state but do not provide loopback as a
cross-device synchronization substitute.
+226
View File
@@ -0,0 +1,226 @@
{
"topologyId": "top_mvp_l2_l3_sim_patch",
"projectId": "prj_mvp_topology",
"environment": "dev",
"services": {
"boxes": [
{
"serviceId": "hwlab-box-simu",
"boxId": "boxsim_alpha",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_east",
"live": true,
"resource": {
"resourceId": "res_boxsim_alpha",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_east",
"boxId": "boxsim_alpha",
"resourceType": "simulator_endpoint",
"name": "boxsim_alpha simulator endpoint",
"state": "available",
"environment": "dev",
"metadata": {
"serviceId": "hwlab-box-simu",
"ports": ["uart0", "eth0", "gpio0"],
"propagation": "patch-panel-only"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"ports": {
"uart0": {
"port": "uart0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"eth0": {
"port": "eth0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"gpio0": {
"port": "gpio0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
},
"constraints": {
"crossDevicePropagation": "patch-panel-only",
"localLoopbackEnabled": false
},
"updatedAt": "2026-01-01T00:00:00.000Z"
},
{
"serviceId": "hwlab-box-simu",
"boxId": "boxsim_beta",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_west",
"live": true,
"resource": {
"resourceId": "res_boxsim_beta",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_west",
"boxId": "boxsim_beta",
"resourceType": "simulator_endpoint",
"name": "boxsim_beta simulator endpoint",
"state": "available",
"environment": "dev",
"metadata": {
"serviceId": "hwlab-box-simu",
"ports": ["uart0", "eth0", "gpio0"],
"propagation": "patch-panel-only"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"ports": {
"uart0": {
"port": "uart0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"eth0": {
"port": "eth0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"gpio0": {
"port": "gpio0",
"value": null,
"source": "local",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
},
"constraints": {
"crossDevicePropagation": "patch-panel-only",
"localLoopbackEnabled": false
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"gateways": [
{
"serviceId": "hwlab-gateway-simu",
"gatewayId": "gwsimu_east",
"projectId": "prj_mvp_topology",
"live": true,
"session": {
"gatewaySessionId": "gws_gwsimu_east",
"projectId": "prj_mvp_topology",
"serviceId": "hwlab-gateway-simu",
"gatewayId": "gwsimu_east",
"endpoint": "http://127.0.0.1:7101",
"status": "connected",
"environment": "dev",
"startedAt": "2026-01-01T00:00:00.000Z",
"lastSeenAt": "2026-01-01T00:00:00.000Z",
"labels": {
"simulator": "true"
}
},
"boxes": ["res_boxsim_alpha"],
"updatedAt": "2026-01-01T00:00:00.000Z"
},
{
"serviceId": "hwlab-gateway-simu",
"gatewayId": "gwsimu_west",
"projectId": "prj_mvp_topology",
"live": true,
"session": {
"gatewaySessionId": "gws_gwsimu_west",
"projectId": "prj_mvp_topology",
"serviceId": "hwlab-gateway-simu",
"gatewayId": "gwsimu_west",
"endpoint": "http://127.0.0.1:7102",
"status": "connected",
"environment": "dev",
"startedAt": "2026-01-01T00:00:00.000Z",
"lastSeenAt": "2026-01-01T00:00:00.000Z",
"labels": {
"simulator": "true"
}
},
"boxes": ["res_boxsim_beta"],
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"patchPanel": {
"patchPanelStatusId": "pps_mvp_patch_panel",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_east",
"wiringConfigId": "wir_mvp_patch_panel",
"serviceId": "hwlab-patch-panel",
"state": "active",
"environment": "dev",
"activeConnections": [
{
"fromResourceId": "res_boxsim_alpha",
"fromPort": "uart0",
"toResourceId": "res_boxsim_beta",
"toPort": "uart0"
},
{
"fromResourceId": "res_boxsim_alpha",
"fromPort": "gpio0",
"toResourceId": "res_boxsim_beta",
"toPort": "gpio0"
}
],
"observedAt": "2026-01-01T00:00:00.000Z",
"metadata": {
"propagation": "patch-panel-only",
"connectionCount": 2
}
}
},
"wiringConfig": {
"wiringConfigId": "wir_mvp_patch_panel",
"projectId": "prj_mvp_topology",
"gatewaySessionId": "gws_gwsimu_east",
"name": "MVP simulated patch panel wiring",
"status": "active",
"connections": [
{
"from": {
"resourceId": "res_boxsim_alpha",
"port": "uart0"
},
"to": {
"resourceId": "res_boxsim_beta",
"port": "uart0"
},
"mode": "exclusive"
},
{
"from": {
"resourceId": "res_boxsim_alpha",
"port": "gpio0"
},
"to": {
"resourceId": "res_boxsim_beta",
"port": "gpio0"
},
"mode": "monitor"
}
],
"constraints": {
"propagation": "patch-panel-only",
"localLoopbackSubstituteAllowed": false
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"constraints": {
"patchPanelIsOnlyCrossDeviceChannel": true,
"boxSimuLocalLoopbackForCrossDeviceSync": false
},
"dryRunHints": {
"cliTarget": "fixtures/mvp-topology/topology.json",
"expectedServices": ["hwlab-box-simu", "hwlab-gateway-simu", "hwlab-patch-panel"]
}
}