From 6c7b5b8a9368c1575f3c8f38863f8409b60d36fd Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Wed, 26 Jan 2022 15:06:16 +0100 Subject: [PATCH] Pass the list of drivers instead of a boolean Signed-off-by: Olivier Gayot --- subiquity/client/controllers/drivers.py | 12 +++++------- subiquity/ui/views/drivers.py | 10 +++++----- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/subiquity/client/controllers/drivers.py b/subiquity/client/controllers/drivers.py index 35480378..09d63d75 100644 --- a/subiquity/client/controllers/drivers.py +++ b/subiquity/client/controllers/drivers.py @@ -15,6 +15,7 @@ import asyncio import logging +from typing import List from subiquitycore.tuicontroller import Skip @@ -31,17 +32,14 @@ class DriversController(SubiquityTuiController): async def make_ui(self) -> DriversView: response: DriversResponse = await self.endpoint.GET() - if response.drivers is not None and not response.drivers: + if not response.drivers and response.drivers is not None: raise Skip - if response.drivers is None: - return DriversView(self, None, response.install) - else: - return DriversView(self, bool(response.drivers), response.install) + return DriversView(self, response.drivers, response.install) - async def _wait_drivers(self) -> bool: + async def _wait_drivers(self) -> List[str]: response: DriversResponse = await self.endpoint.GET(wait=True) assert response.drivers is not None - return bool(response.drivers) + return response.drivers async def run_answers(self): if 'install' not in self.answers: diff --git a/subiquity/ui/views/drivers.py b/subiquity/ui/views/drivers.py index f6e2a478..36ba7a3e 100644 --- a/subiquity/ui/views/drivers.py +++ b/subiquity/ui/views/drivers.py @@ -19,7 +19,7 @@ import asyncio from enum import auto, Enum import logging -from typing import Optional +from typing import List, Optional from urwid import ( connect_signal, @@ -60,11 +60,11 @@ class DriversView(BaseView): form = None - def __init__(self, controller, has_drivers: Optional[bool], + def __init__(self, controller, drivers: Optional[List[str]], install: bool) -> None: self.controller = controller - if has_drivers is None: + if drivers is None: self.make_waiting(install) else: self.make_main(install) @@ -89,9 +89,9 @@ class DriversView(BaseView): async def _wait(self, install: bool) -> None: """ Wait until the "list" of drivers is available and change the view accordingly. """ - has_drivers = await self.controller._wait_drivers() + drivers = await self.controller._wait_drivers() self.spinner.stop() - if has_drivers: + if drivers: self.make_main(install) else: self.make_no_drivers()