mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-08 10:29:30 +00:00
Add Docker MTU configuration support for networks with non-standard MTU (#6079)
* Initial plan * Implement Docker MTU support - core functionality Co-authored-by: agners <34061+agners@users.noreply.github.com> * Add comprehensive MTU tests and documentation Co-authored-by: agners <34061+agners@users.noreply.github.com> * Fix final linting issue in test file Co-authored-by: agners <34061+agners@users.noreply.github.com> * Apply suggestions from code review * Implement reboot_required flag pattern and fix MyPy typing issue Co-authored-by: agners <34061+agners@users.noreply.github.com> * Update supervisor/api/docker.py * Update supervisor/docker/manager.py Co-authored-by: Mike Degatano <michael.degatano@gmail.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: agners <34061+agners@users.noreply.github.com> Co-authored-by: Stefan Agner <stefan@agner.ch> Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
This commit is contained in:
@@ -32,6 +32,52 @@ async def test_api_network_enable_ipv6(coresys: CoreSys, api_client: TestClient)
|
||||
assert body["data"]["enable_ipv6"] is True
|
||||
|
||||
|
||||
async def test_api_network_mtu(coresys: CoreSys, api_client: TestClient):
|
||||
"""Test setting docker network MTU."""
|
||||
assert coresys.docker.config.mtu is None
|
||||
|
||||
resp = await api_client.post("/docker/options", json={"mtu": 1450})
|
||||
assert resp.status == 200
|
||||
|
||||
assert coresys.docker.config.mtu == 1450
|
||||
|
||||
resp = await api_client.get("/docker/info")
|
||||
assert resp.status == 200
|
||||
body = await resp.json()
|
||||
assert body["data"]["mtu"] == 1450
|
||||
|
||||
# Test setting MTU to None
|
||||
resp = await api_client.post("/docker/options", json={"mtu": None})
|
||||
assert resp.status == 200
|
||||
|
||||
assert coresys.docker.config.mtu is None
|
||||
|
||||
resp = await api_client.get("/docker/info")
|
||||
assert resp.status == 200
|
||||
body = await resp.json()
|
||||
assert body["data"]["mtu"] is None
|
||||
|
||||
|
||||
async def test_api_network_combined_options(coresys: CoreSys, api_client: TestClient):
|
||||
"""Test setting both IPv6 and MTU together."""
|
||||
assert coresys.docker.config.enable_ipv6 is None
|
||||
assert coresys.docker.config.mtu is None
|
||||
|
||||
resp = await api_client.post(
|
||||
"/docker/options", json={"enable_ipv6": True, "mtu": 1400}
|
||||
)
|
||||
assert resp.status == 200
|
||||
|
||||
assert coresys.docker.config.enable_ipv6 is True
|
||||
assert coresys.docker.config.mtu == 1400
|
||||
|
||||
resp = await api_client.get("/docker/info")
|
||||
assert resp.status == 200
|
||||
body = await resp.json()
|
||||
assert body["data"]["enable_ipv6"] is True
|
||||
assert body["data"]["mtu"] == 1400
|
||||
|
||||
|
||||
async def test_registry_not_found(api_client: TestClient):
|
||||
"""Test registry not found error."""
|
||||
resp = await api_client.delete("/docker/registries/bad")
|
||||
|
||||
Reference in New Issue
Block a user