Skip to content

Commit 76fe5f3

Browse files
committed
ip: check interface existence before set/get mtu
1 parent e65f50e commit 76fe5f3

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

lisa/tools/ip.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,12 @@ def get_mtu(self, nic_name: str) -> int:
259259
if self.node.shell.exists(self.node.get_pure_path(mtu_file)):
260260
return int(cat.read(mtu_file, force_run=True))
261261
else:
262-
return int(self.get_detail(nic_name, "mtu"))
262+
mtu = self.get_detail(nic_name, "mtu")
263+
if mtu:
264+
return int(mtu)
265+
else:
266+
self.node.log.debug(f"Could not find mtu information for interface {nic_name}")
267+
return 0
263268

264269
def set_mtu(self, nic_name: str, mtu: int, assert_success: bool = True) -> None:
265270
# Check if mtu is integer
@@ -268,14 +273,14 @@ def set_mtu(self, nic_name: str, mtu: int, assert_success: bool = True) -> None:
268273
except ValueError:
269274
raise LisaException(f"MTU value is not an integer: {mtu}")
270275
# check if the device exists
271-
exists = self.run(f"link show {nic_name}", force_run=True).exit_code
276+
exists = self.run(f"link show {nic_name}", force_run=True).exit_code == 0
272277
if not exists:
273278
if assert_success:
274279
raise LisaException(f"MTU set failed, could not find interface {nic_name}.")
275280
else:
276281
self.node.log.debug(
277-
"set_mtu: skipping since device does not exist "
278-
"and assert_success was False."
282+
f"set_mtu: device {nic_name} not found,"
283+
" skipping assertion since assert_success was False. "
279284
)
280285
return
281286

@@ -286,9 +291,12 @@ def set_mtu(self, nic_name: str, mtu: int, assert_success: bool = True) -> None:
286291
if assert_success:
287292
raise LisaException(f"set mtu failed, wanted {mtu} and got {new_mtu}")
288293
else:
289-
self.node.log.debug(
290-
"set_mtu: skipping result assertion since assert_success was False. "
291-
)
294+
# warn if assertion is turned off.
295+
# Weird enough situation to justify log.warning
296+
self.node.log.warning(
297+
f"set_mtu: expected new mtu {mtu}, got {new_mtu} instead. "
298+
)
299+
292300

293301
def nic_exists(self, nic_name: str) -> bool:
294302
result = self.run(f"link show {nic_name}", force_run=True, sudo=True)

0 commit comments

Comments
 (0)