YueGuobin
b4e4739d52
feat(compute): report uBridge tc capabilities and gate filters on them
...
Consume uBridge's ebpf_modes contract (feature/tc-window 40c36ae): a
stateful mode is usable iff ebpf=1 and its token is listed; builds
predating the field keep their shipped modes (nth/quota/flow), so the
pre-correction window semantics can never be installed silently.
- gns3server/utils/tc_capabilities.py: shared reply parser, mode
policy and filter-type mappings (compute and controller gate on the
same rules)
- gns3server/compute/ubridge/tc_probe.py: standalone probe spawning a
throwaway uBridge as the server's own user, cached by binary
identity (path/mtime/size - the version string cannot distinguish
rebuilds); failures cache as unknown
- GET /v3/compute/capabilities gains ubridge_tc {netem, ebpf,
ebpf_modes, cbpf}; the controller forwards it (Compute.capabilities)
and available_filters hides kernel-datapath filter types an endpoint
compute cannot run (both ends apply their own filters, so one
incapable compute hides the type); computes without a report keep
the full list and apply-time 409 stays the guard
- docker: _ubridge_apply_ebpf_drops gates per mode token; the cleanup
path only sends "off" for modes the build declares
- split DockerVM's kernel-datapath machinery (veth lifecycle, carrier,
marker primitives, tc filter translation, kernel NIO teardown) into
compute/docker/docker_kernel_datapath.py (DockerKernelDatapathMixin)
2026-10-06 00:21:08 +08:00
Mark Paronyan
7e1bc67be2
chore(ruff): drop UP032 from the ignore baseline
2026-10-03 19:44:02 +03:00
Mark Paronyan
d5e2832649
chore(ruff): drop F401 from the ignore baseline
2026-10-03 19:43:59 +03:00
Mark Paronyan
a64379cb78
chore(ruff): drop I001 from the ignore baseline
2026-10-02 12:43:26 +03:00
Mark Paronyan
a77e06b907
Merge branch '3.1' into ruff/trivia-fixups
2026-10-01 19:58:02 +03:00
Mark Paronyan
269e7aaa67
chore(ruff): drop resolved trivia rules from the ignore baseline
2026-10-01 19:57:47 +03:00
grossmj
1456d36bf0
chore(tests): fix mypy errors
2026-10-01 15:22:17 +02:00
grossmj
285af128f2
fix: ignore S324 error in tests
2026-10-01 14:53:54 +02:00
Mark Paronyan
98097a7f8f
chore: drop the mypy baseline ignore list (no modules left)
2026-09-29 22:02:24 +03:00
Jeremy Grossmann
5c87c0e1a4
Merge branch '3.1' into mypy-utils
2026-09-29 13:41:58 +02:00
Jeremy Grossmann
1838ad7f05
Merge branch '3.1' into mypy-schemas-plus
2026-09-29 13:41:11 +02:00
Jeremy Grossmann
eace280c5f
Merge branch '3.1' into mypy-schemas
2026-09-29 13:40:00 +02:00
Jeremy Grossmann
e6410ed729
Merge branch '3.1' into mypy-schemas-compute
2026-09-29 13:39:01 +02:00
Jeremy Grossmann
76411f1eb0
Merge pull request #2924 from markparonyan/mypy-api-plus
...
fix(typing): resolve mypy errors in api + compute.dynamips + compute.iou + compute.vpcs + controller
2026-09-29 13:29:08 +02:00
Jeremy Grossmann
e8f49877fc
Merge branch '3.1' into mypy-api-routes-controller-1
2026-09-29 13:28:33 +02:00
Jeremy Grossmann
7f4f9eb2d0
Merge branch '3.1' into mypy-api-routes
2026-09-29 13:25:35 +02:00
Jeremy Grossmann
49f1af0962
Merge branch '3.1' into mypy-api-routes-compute-4
2026-09-29 13:23:50 +02:00
Jeremy Grossmann
1f7048d49d
Merge branch '3.1' into mypy-api-routes-compute-3
2026-09-29 13:23:05 +02:00
Jeremy Grossmann
cbd29ece37
Merge branch '3.1' into mypy-api-routes-compute-2
2026-09-29 13:21:10 +02:00
Jeremy Grossmann
726da8383a
Merge branch '3.1' into mypy-agent-gns3_copilot-plus
2026-09-29 13:20:27 +02:00
Jeremy Grossmann
468ad4e85f
Merge branch '3.1' into mypy-agent
2026-09-29 13:19:30 +02:00
Jeremy Grossmann
4efc22b7ab
Merge branch '3.1' into mypy-api-routes-compute-1
2026-09-29 13:15:30 +02:00
Jeremy Grossmann
563b6080f0
Merge pull request #2923 from markparonyan/mypy-api-routes-controller-2
...
fix(typing): resolve mypy errors in gns3server.api.routes.controller
2026-09-29 13:13:58 +02:00
Jeremy Grossmann
ec4b04ba54
Merge pull request #2914 from markparonyan/mypy-utils-misc
...
fix(typing): resolve mypy errors in utils
2026-09-29 13:01:12 +02:00
Jeremy Grossmann
a6ae3984d4
Merge pull request #2913 from markparonyan/mypy-schemas-compute-nodes
...
fix(typing): resolve mypy errors in schemas.compute node schemas
2026-09-29 12:53:39 +02:00
Jeremy Grossmann
9e9a778f8b
Merge pull request #2912 from markparonyan/mypy-api-controller-routes
...
fix(typing): resolve mypy errors in api.routes.controller
2026-09-29 12:50:06 +02:00
Jeremy Grossmann
ce3911be71
Merge pull request #2911 from markparonyan/mypy-api-compute-routes
...
fix(typing): resolve mypy errors in api.routes.compute
2026-09-29 12:48:36 +02:00
Jeremy Grossmann
4bcaf596df
Merge pull request #2910 from markparonyan/mypy-agent-copilot-utils
...
fix(typing): resolve mypy errors in agent.gns3_copilot.utils
2026-09-29 12:48:03 +02:00
Jeremy Grossmann
b73128d791
Merge branch '3.1' into mypy-agent-copilot-tools-analysis
2026-09-29 12:45:07 +02:00
Jeremy Grossmann
77a323e1e8
Merge branch '3.1' into mypy-agent-copilot-tools-nornir
2026-09-29 12:38:40 +02:00
Jeremy Grossmann
a51af4a32e
Fix module list after merging
...
Removed unused modules from the project configuration.
2026-09-29 12:35:33 +02:00
Jeremy Grossmann
7b40064658
Merge branch '3.1' into mypy-agent-copilot-skills
2026-09-29 12:30:40 +02:00
Jeremy Grossmann
080c907139
Merge pull request #2901 from markparonyan/mypy-controller-topology
...
fix(typing): resolve mypy errors in controller.topology
2026-09-29 12:28:01 +02:00
Jeremy Grossmann
eb9a9ae19a
Merge pull request #2904 from markparonyan/mypy-agent-web-wireshark
...
fix(typing): resolve mypy errors in agent.web_wireshark
2026-09-29 12:27:28 +02:00
Jeremy Grossmann
6aac6c8e34
Merge pull request #2906 from markparonyan/mypy-agent-copilot-client
...
fix(typing): resolve mypy errors in agent.gns3_copilot.gns3_client
2026-09-29 12:21:33 +02:00
Mark Paronyan
780b7f2ab6
fix(typing): resolve mypy errors in agent node lifecycle tools
2026-09-29 09:46:32 +03:00
Mark Paronyan
bc27c4814f
fix(typing): resolve mypy errors in agent.gns3_copilot.gns3_client.api_handlers
2026-09-29 09:46:31 +03:00
Mark Paronyan
9882eba088
fix(typing): resolve mypy errors in agent.gns3_copilot.chat_sessions_repository
2026-09-29 09:46:31 +03:00
Mark Paronyan
07560b0026
fix(typing): resolve mypy errors in agent
2026-09-29 09:46:31 +03:00
Mark Paronyan
d783ccfc0d
fix(typing): resolve mypy errors in controller.topology
2026-09-29 09:45:36 +03:00
Mark Paronyan
a7b32ca6df
fix(typing): resolve mypy errors in controller.appliance
2026-09-29 09:38:24 +03:00
Mark Paronyan
2542ad4647
fix(typing): resolve mypy errors in compute.vpcs.vpcs_vm
2026-09-29 09:38:24 +03:00
Mark Paronyan
a7350ae0c8
fix(typing): resolve mypy errors in compute.iou.utils
2026-09-29 09:38:24 +03:00
Mark Paronyan
1babf7bcce
fix(typing): resolve mypy errors in compute.dynamips.nodes.router
2026-09-29 09:38:24 +03:00
Mark Paronyan
68368220f2
fix(typing): resolve mypy errors in api.server
2026-09-29 09:38:17 +03:00
Mark Paronyan
1284701253
fix(typing): resolve mypy errors in utils.zipfile_zstd._patcher
2026-09-29 09:23:15 +03:00
Mark Paronyan
df8b3c2903
fix(typing): resolve mypy errors in utils.asyncio.aiozipstream
2026-09-29 09:23:15 +03:00
Mark Paronyan
1772c7380e
fix(typing): resolve mypy errors in utils.websocket_to_websocket
2026-09-29 09:23:15 +03:00
Mark Paronyan
5bf3c8d203
fix(typing): resolve mypy errors in utils.http_client
2026-09-29 09:23:15 +03:00
Mark Paronyan
e6053dd0a8
fix(typing): resolve mypy errors in services.computes
2026-09-29 09:23:14 +03:00