You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.5 KiB
43 lines
1.5 KiB
10 months ago
|
from leapp.models import fields, Model
|
||
|
from leapp.topics import SystemInfoTopic
|
||
|
|
||
|
|
||
|
class VdoConversionDevice(Model):
|
||
|
topic = SystemInfoTopic
|
||
|
name = fields.String()
|
||
|
|
||
|
|
||
|
class VdoConversionPreDevice(VdoConversionDevice):
|
||
|
pass
|
||
|
|
||
|
|
||
|
class VdoConversionFailiableDevice(VdoConversionDevice):
|
||
|
# `check_failed` and `failure` are only set if the checking process fails.
|
||
|
check_failed = fields.Boolean(default=False)
|
||
|
failure = fields.Nullable(fields.String())
|
||
|
|
||
|
|
||
|
class VdoConversionPostDevice(VdoConversionFailiableDevice):
|
||
|
complete = fields.Boolean()
|
||
|
|
||
|
|
||
|
class VdoConversionUndeterminedDevice(VdoConversionFailiableDevice):
|
||
|
# There are only devices which are undetermined as to VDO conversion if
|
||
|
# lvm is installed on the system and either vdo is not or
|
||
|
# `vdoprepareforlvm` fails.
|
||
|
#
|
||
|
# If the vdo package is not installed on the system `check_failed` is
|
||
|
# false (the device wasn't actually checked); this indicates the absence of
|
||
|
# the vdo package on the system.
|
||
|
pass
|
||
|
|
||
|
|
||
|
class VdoConversionInfo(Model):
|
||
|
# If lvm is not installed on the system there can be no VDO instances.
|
||
|
# In that case VdoConversionInfo is generated with empty lists of devices.
|
||
|
topic = SystemInfoTopic
|
||
|
|
||
|
pre_conversion = fields.List(fields.Model(VdoConversionPreDevice), default=[])
|
||
|
post_conversion = fields.List(fields.Model(VdoConversionPostDevice), default=[])
|
||
|
undetermined_conversion = fields.List(fields.Model(VdoConversionUndeterminedDevice), default=[])
|