light refactor
This commit is contained in:
parent
a3588e8fa9
commit
22bf1a0321
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue