machine: handle exception if iwgetid fails

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Eric Callahan 2022-07-24 17:16:34 -04:00
parent d713076947
commit bdd0222a1c
No known key found for this signature in database
GPG Key ID: 5A1EB336DFB4C71B
1 changed files with 10 additions and 2 deletions

View File

@ -115,7 +115,10 @@ class Machine:
shell_cmd: SCMDComp = self.server.load_component( shell_cmd: SCMDComp = self.server.load_component(
config, 'shell_command') config, 'shell_command')
self.addr_cmd = shell_cmd.build_shell_command("ip -json address") self.addr_cmd = shell_cmd.build_shell_command("ip -json address")
self.iwgetid_cmd = shell_cmd.build_shell_command("iwgetid") iwgetbin = "/sbin/iwgetid"
if not pathlib.Path(iwgetbin).exists():
iwgetbin = "iwgetid"
self.iwgetid_cmd = shell_cmd.build_shell_command(iwgetbin)
self.init_evt = asyncio.Event() self.init_evt = asyncio.Event()
def _update_log_rollover(self, log: bool = False) -> None: def _update_log_rollover(self, log: bool = False) -> None:
@ -448,8 +451,13 @@ class Machine:
async def _get_wifi_interfaces(self) -> Dict[str, Any]: async def _get_wifi_interfaces(self) -> Dict[str, Any]:
# get wifi interfaces # get wifi interfaces
shell_cmd: SCMDComp = self.server.lookup_component('shell_command')
wifi_intfs: Dict[str, Any] = {} wifi_intfs: Dict[str, Any] = {}
try:
resp = await self.iwgetid_cmd.run_with_response(log_complete=False) resp = await self.iwgetid_cmd.run_with_response(log_complete=False)
except shell_cmd.error:
logging.exception("Failed to run 'iwgetid' command")
return {}
if resp: if resp:
for line in resp.split("\n"): for line in resp.split("\n"):
parts = line.strip().split(maxsplit=1) parts = line.strip().split(maxsplit=1)