light refactor

This commit is contained in:
Michael Hudson-Doyle 2021-05-31 13:33:46 +12:00
parent a3588e8fa9
commit 22bf1a0321
1 changed files with 19 additions and 12 deletions

View File

@ -31,11 +31,14 @@ from subiquity.models.filesystem import (
_checkers = {} _checkers = {}
def checker(action): def make_checker(action):
def w(f): @functools.singledispatch
_checkers[action] = f def impl(device):
return f raise NotImplementedError(
return w "checker for %s on %s not implemented" % (
action, device))
_checkers[action] = impl
return impl
class DeviceAction(enum.Enum): class DeviceAction(enum.Enum):
@ -120,6 +123,17 @@ def _lv_actions(lv):
] ]
_can_info = make_checker(DeviceAction.INFO)
@_can_info.register(Disk)
def _disk_info(disk):
return True
_can_edit = make_checker(DeviceAction.EDIT)
def _generic_edit(device): def _generic_edit(device):
cd = device.constructed_device() cd = device.constructed_device()
if cd is None: if cd is None:
@ -132,13 +146,6 @@ def _generic_edit(device):
cdname=cd.label) cdname=cd.label)
@checker(DeviceAction.EDIT)
@functools.singledispatch
def _can_edit(device):
raise NotImplementedError(
"can_edit({}) not defined".format(device))
_can_edit.register(Partition, _generic_edit) _can_edit.register(Partition, _generic_edit)
_can_edit.register(LVM_LogicalVolume, _generic_edit) _can_edit.register(LVM_LogicalVolume, _generic_edit)