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

Commit a0334dc

Browse files
NickCaogithub-actions[bot]
authored andcommitted
Factor out get_default_ip
(cherry picked from commit 66e913b)
1 parent 9640363 commit a0334dc

3 files changed

Lines changed: 17 additions & 23 deletions

File tree

  • packages
    • jumpstarter-driver-http/jumpstarter_driver_http
    • jumpstarter-driver-tftp/jumpstarter_driver_tftp
    • jumpstarter/jumpstarter/common

packages/jumpstarter-driver-http/jumpstarter_driver_http/driver.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from aiohttp import web
77
from jumpstarter_driver_opendal.driver import Opendal
88

9+
from jumpstarter.common.ipaddress import get_default_ip
910
from jumpstarter.driver import Driver, export
1011

1112

@@ -41,18 +42,7 @@ def __post_init__(self):
4142
]
4243
)
4344
if self.host is None:
44-
self.host = self.get_default_ip()
45-
46-
def get_default_ip(self):
47-
try:
48-
import socket
49-
50-
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
51-
s.connect(("8.8.8.8", 80))
52-
return s.getsockname()[0]
53-
except Exception:
54-
self.logger.warning("Could not determine default IP address, falling back to 0.0.0.0")
55-
return "0.0.0.0"
45+
self.host = get_default_ip(logger=self.logger)
5646

5747
@classmethod
5848
def client(cls) -> str:

packages/jumpstarter-driver-tftp/jumpstarter_driver_tftp/driver.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from jumpstarter_driver_tftp.server import TftpServer
1111

12+
from jumpstarter.common.ipaddress import get_default_ip
1213
from jumpstarter.driver import Driver, export
1314

1415

@@ -55,17 +56,7 @@ def __post_init__(self):
5556
self.storage = self.children["storage"]
5657

5758
if self.host == "":
58-
self.host = self.get_default_ip()
59-
60-
def get_default_ip(self):
61-
"""Get the IP address of the default route interface"""
62-
try:
63-
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
64-
s.connect(("8.8.8.8", 80))
65-
return s.getsockname()[0]
66-
except Exception:
67-
self.logger.warning("Could not determine default IP address, falling back to 0.0.0.0")
68-
return "0.0.0.0"
59+
self.host = get_default_ip(logger=self.logger)
6960

7061
@classmethod
7162
def client(cls) -> str:

packages/jumpstarter/jumpstarter/common/ipaddress.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
import socket
23

34

@@ -12,3 +13,15 @@ def get_ip_address() -> str:
1213
s.connect(("1.1.1.1", 0))
1314
address = s.getsockname()[0]
1415
return address
16+
17+
18+
def get_default_ip(logger: logging.Logger | None = None):
19+
"""Get the IP address of the default route interface"""
20+
try:
21+
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
22+
s.connect(("8.8.8.8", 80))
23+
return s.getsockname()[0]
24+
except Exception:
25+
if logger:
26+
logger.warning("Could not determine default IP address, falling back to 0.0.0.0")
27+
return "0.0.0.0"

0 commit comments

Comments
 (0)