feat: add l2 l3 simulator patch panel skeleton
This commit is contained in:
@@ -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.
|
||||
@@ -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"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user