Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 0d6462e

Browse files
committed
Simplify implementation of VsockNetwork
1 parent 343ae89 commit 0d6462e

1 file changed

Lines changed: 9 additions & 13 deletions

File tree

  • packages/jumpstarter-driver-network/jumpstarter_driver_network

packages/jumpstarter-driver-network/jumpstarter_driver_network/driver.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import ctypes
22
import socket
33
from abc import ABCMeta, abstractmethod
4-
from asyncio import get_running_loop
54
from contextlib import asynccontextmanager
65
from dataclasses import dataclass, field
76
from os import getenv, getuid
@@ -14,7 +13,7 @@
1413
create_connected_udp_socket,
1514
create_memory_object_stream,
1615
)
17-
from anyio._backends._asyncio import SocketStream, StreamProtocol
16+
from anyio._core._eventloop import get_async_backend
1817
from anyio.streams.stapled import StapledObjectStream
1918

2019
from .streams.websocket import WebsocketClientStream
@@ -120,6 +119,7 @@ async def address(self):
120119
else:
121120
raise ValueError("enable_address mode is not true in the exporter configuration")
122121

122+
123123
@dataclass(kw_only=True)
124124
class UdpNetwork(NetworkInterface, Driver):
125125
'''
@@ -207,12 +207,7 @@ async def connect(self):
207207
if libc.connect(sock.fileno(), ctypes.byref(addr), ctypes.sizeof(addr)) < 0:
208208
raise OSError(ctypes.get_errno(), "vsock connect() failed")
209209

210-
transport, protocol = await get_running_loop().create_connection(
211-
StreamProtocol,
212-
sock=sock,
213-
)
214-
215-
yield SocketStream(transport, protocol)
210+
yield await get_async_backend().wrap_stream_socket(sock)
216211

217212

218213
@dataclass(kw_only=True)
@@ -301,26 +296,27 @@ class EchoNetwork(NetworkInterface, Driver):
301296
@exportstream
302297
@asynccontextmanager
303298
async def connect(self):
304-
tx, rx = create_memory_object_stream[bytes](32) # ty: ignore[call-non-callable]
299+
tx, rx = create_memory_object_stream[bytes](32) # ty: ignore[call-non-callable]
305300
self.logger.debug("Connecting Echo")
306301
async with StapledObjectStream(tx, rx) as stream:
307302
yield stream
308303

309304

310305
@dataclass(kw_only=True)
311306
class WebsocketNetwork(NetworkInterface, Driver):
312-
'''
307+
"""
313308
Handles websocket connections from a given url.
314-
'''
309+
"""
310+
315311
url: str
316312
enable_address: bool = True
317313

318314
@exportstream
319315
@asynccontextmanager
320316
async def connect(self):
321-
'''
317+
"""
322318
Create a websocket connection to `self.url` and streams its output.
323-
'''
319+
"""
324320
self.logger.info("Connecting to %s", self.url)
325321

326322
async with websockets.connect(self.url) as websocket:

0 commit comments

Comments
 (0)