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.

94 lines
2.9 KiB

10 months ago
from leapp.models import fields, Model
from leapp.topics import SystemFactsTopic
class DeviceDriverDeprecationEntry(Model):
"""
Describes a device or driver deprecated in RHEL
"""
topic = SystemFactsTopic
deprecation_announced = fields.String()
"""
This field should contain a X.Y version in which version
of RHEL the deprecation of the described driver or device was announced.
NOTE: The value is not enforced to be in the X.Y format and might be empty.
As not all data entries do contain this relevant information.
"""
device_id = fields.String()
"""
If this entry describes a device, this field will contain an identification
string, relevant to the device.
This identification string might contain sets of numbers {1,2,3},
ranges [1-3] or even sets of ranges {[1-3],[5-9]} or a wildcard * which
should match any number.
Examples:
- Range: 'x86_64:intel:6:[56-57]'
- Set: 'x86_64:amd:23:{1,17,49}'
- Set of Ranges: 'x86_64:amd:23:{[2-16],[18-48],[50-255]}'
- Wildcard: 'x86_64:amd:21:*'
"""
device_type = fields.StringEnum(choices=['pci', 'cpu'])
"""
NOTE: Other devices might come later. The following values have been
described:
- 'usb'
- 'video_adapter'
- 'firewire'
- 'qemu_machine'
However they aren't in use yet. Since we wouldn't support it for
now, we can extend it once we support it and just filter the ones supported,
by leapp.
"""
device_name = fields.String()
"""
Human readable name of the device in question - Could be used to display.
"""
driver_name = fields.String()
"""
Name of the kernel driver for the device, or just a plain driver name.
Might be an empty string.
"""
available_in_rhel = fields.List(fields.Integer())
"""
List of major version numbers, in which the device/driver can be found.
If the target major version number is not in this list, the upgrade must
be inhibited to avoid problems on boot.
"""
maintained_in_rhel = fields.List(fields.Integer())
"""
List of major version numbers, in which the device/driver is maintained. That
means, that in those versions the device/driver actively gets patches and
bug fixes.
If the target major version number is not in this list, but is in the
available_in_rhel list, a warning should be generated, but the upgrade must
NOT be inhibited.
"""
class DetectedDeviceOrDriver(DeviceDriverDeprecationEntry):
"""
DetectedDeviceOrDriver is used for reporting unsupported drivers or devices
"""
class DeviceDriverDeprecationData(Model):
"""
Contains data related to deprecated devices and drivers in RHEL
"""
topic = SystemFactsTopic
entries = fields.List(fields.Model(DeviceDriverDeprecationEntry))
"""
A list of entries describing deprecated devices and drivers
"""