Pass the list of drivers instead of a boolean

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
This commit is contained in:
Olivier Gayot 2022-01-26 15:06:16 +01:00
parent 996391793d
commit 6c7b5b8a93
2 changed files with 10 additions and 12 deletions

View File

@ -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:

View File

@ -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()