Coverage for /home/fedora/jumpstarter/packages/jumpstarter-driver-network/jumpstarter_driver_network/adapters/dbus.py: 26%
23 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 20:29 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 20:29 +0000
1from contextlib import contextmanager
2from os import environ, getenv
4from .portforward import TcpPortforwardAdapter
5from jumpstarter.client import DriverClient
8@contextmanager
9def DbusAdapter(*, client: DriverClient):
10 match client.kind:
11 case "system":
12 varname = "DBUS_SYSTEM_BUS_ADDRESS"
13 pass
14 case "session":
15 varname = "DBUS_SESSION_BUS_ADDRESS"
16 pass
17 case _:
18 raise ValueError(f"invalid bus type: {client.kind}")
20 oldenv = getenv(varname)
22 with TcpPortforwardAdapter(client=client) as addr:
23 environ[varname] = f"tcp:host={addr[0]},port={addr[1]}"
25 try:
26 yield
27 finally:
28 if oldenv is None:
29 del environ[varname]
30 else:
31 environ[varname] = oldenv