class RpmTransactionTasks(Model): topic = TransactionTopic local_rpms = fields.List(fields.String(), default=[]) to_install = fields.List(fields.String(), default=[]) to_keep = fields.List(fields.String(), default=[]) to_remove = fields.List(fields.String(), default=[])
class OpenSshConfig(Model): """ OpenSSH server configuration. This model contains the first effective configuration option specified in the configuration file or a list of all the options specified in all the conditional blocks used throughout the file. """ topic = SystemInfoTopic permit_root_login = fields.List(fields.Model(OpenSshPermitRootLogin)) """ All PermitRootLogin directives. """ use_privilege_separation = fields.Nullable(fields.StringEnum(['sandbox', 'yes', 'no'])) """ Value of the UsePrivilegeSeparation directive, if present. Removed in RHEL 8. """ protocol = fields.Nullable(fields.String()) """ Value of the Protocols directive, if present. Removed in RHEL 8. """ ciphers = fields.Nullable(fields.String()) """ Value of the Ciphers directive, if present. Ciphers separated by comma. """ macs = fields.Nullable(fields.String()) """ Value of the MACs directive, if present. """ modified = fields.Boolean(default=False) """ True if the configuration file was modified. """ deprecated_directives = fields.List(fields.String()) """ Configuration directives that were deprecated in the new version of openssh. """
class FirewalldFacts(Model): """The model contains firewalld configuration.""" topic = SystemInfoTopic firewall_config_command = fields.String(default='') ebtablesTablesInUse = fields.List(fields.String(), default=[]) ipsetTypesInUse = fields.List(fields.String(), default=[])
class RestrictedPCIDevices(Model): """ Model to represent all known restricted PCI devices. Restricted devices might be restricted based on either - pci id (each particular device) - driver name (all the family of the devices being served by the particular driver). However the data type, which represents how the pci id or driver name is restricted is identical. Thus both attributes has the same data type. driver_names - is a container with the devices, which are restricted by the driver name identifier pci_ids - is a container with the devices, which are restricted by the pci_id identifier """ topic = SystemInfoTopic driver_names = fields.List( fields.Model(RestrictedPCIDevice), ) pci_ids = fields.List( fields.Model(RestrictedPCIDevice), )
class UpgradeInitramfsTasks(Model): """ Influence generating of the (leapp) upgrade initramfs The upgrade initramfs is used during the crucial part of the upgrade, in which the original rpms are upgraded, configuration of applications are migrated, etc. To be able to boot into the leapp upgrade environment correctly, it is expected all needed drivers, configuration files, ... are included inside the upgrade initramfs. Produce this message with expected content to influence the upgrade initramfs. If some specific rpms or content is required to be able to build the upgrade initramfs, see the <container-model>. Note: The built initramfs is composed of stuff for the target system. In example, if you are on RHEL 7 and plan the upgrade to RHEL 8, you need to provide content (e.g. drivers, dracut modules) compatible with RHEL 8 system. """ topic = BootPrepTopic include_files = fields.List(fields.String(), default=[]) """ List of files (cannonical filesystem paths) to include in the initramfs """ include_dracut_modules = fields.List(fields.Model(DracutModule), default=[]) """
class SkippedRepositories(Model): """ Message that contains all skipped repositories and the packages that will not be upgraded as a result of those repositories being skipped. """ topic = TransactionTopic repos = fields.List(fields.String(), default=[]) """ List of repositories ids that are going to be skipped for the upgrade """ packages = fields.List(fields.String(), default=[]) """ List of packages that are not going to be upgraded because of skipped repositories """
class SystemFacts(Model): topic = SystemInfoTopic sysctl_variables = fields.List(fields.Model(SysctlVariable)) kernel_modules = fields.List(fields.Model(ActiveKernelModule)) users = fields.List(fields.Model(User)) groups = fields.List(fields.Model(Group)) repositories = fields.List(fields.Model(Repositories)) selinux = fields.Model(SELinux) firewalls = fields.Model(Firewalls)
class SELinuxModules(Model): """ List of selinux modules that are not part of distribution policy modules - list of custom policy modules (priority != 100,200) templates - List of installed udica templates """ topic = SystemInfoTopic modules = fields.List(fields.Model(SELinuxModule)) templates = fields.List(fields.Model(SELinuxModule))
class QuaggaToFrrFacts(Model): """ Model for quagga to frr actors. A list of configuration files used by quagga. This list is used to add yes/no to /etc/frr/daemons file. It indicates which daemons from frr should be run. """ topic = SystemInfoTopic active_daemons = fields.List(fields.String()) enabled_daemons = fields.List(fields.String())
class RepositoriesMapping(Model): """ Private model containing information about mapping between repositories. Warning: We expect to be only consumers of this model. This means the model is not covered by deprecation process and can be changed or removed any time. """ topic = TransactionTopic mapping = fields.List(fields.Model(RepoMapEntry), default=[]) repositories = fields.List(fields.Model(PESIDRepositoryEntry), default=[])
class SELinuxRequestRPMs(Model): """ SELinux related RPM packages that need to be present after upgrade Listed packages provide types that where used in policy customizations (to_install), or the corresponding policy was installed on RHEL-7 installation with priority 200 (to_keep). """ topic = TransactionTopic to_keep = fields.List(fields.String(), default=[]) to_install = fields.List(fields.String(), default=[])
class KernelCmdline(Model): """ Kernel command line parameters the system was booted with """ topic = SystemInfoTopic parameters = fields.List(fields.Model(KernelCmdlineArg))
class RepositoriesBlacklisted(Model): """ Repositories ID that should be ignored by Leapp during upgrade process """ topic = SystemFactsTopic repoids = fields.List(fields.String(), default=[])
class WhitelistedKernelModules(Model): """ whitelisted_modules: list of module names that are considered whitelisted and are not going to inhibit the upgrade """ topic = SystemFactsTopic whitelisted_modules = fields.List(fields.String(), default=[])
class RHSMInfo(Model): """ Subscription-manager details required for the inplace upgrade. """ topic = RHSMTopic release = fields.Nullable(fields.String()) """ Release the subscription-manager is set to. """ attached_skus = fields.List(fields.String(), default=[]) """ SKUs the current system is attached to. """ available_repos = fields.List(fields.String(), default=[]) """ Repositories that are available to the current system through the subscription-manager. """ enabled_repos = fields.List(fields.String(), default=[]) """ Repositories that are enabled on the current system through the subscription-manager. """ existing_product_certificates = fields.List(fields.String(), default=[]) """ Product certificates that are currently installed on the system. """
class VsftpdFacts(Model): topic = SystemInfoTopic default_config_hash = fields.Nullable(fields.String()) """SHA1 hash of the /etc/vsftpd/vsftpd.conf file, if it exists, None otherwise""" configs = fields.List(fields.Model(VsftpdConfig)) """List of vsftpd configuration files"""
class EnabledModules(Model): """ DNF modules enabled on the source system. """ topic = SystemFactsTopic modules = fields.List(fields.Model(Module), default=[])
class CheckOutput(Model): topic = CheckOutputTopic check_actor = fields.String(required=True) check_action = fields.String() status = fields.String(required=True) summary = fields.String(required=True) params = fields.List(fields.String(), required=True)
class InitrdIncludes(Model): """ List of files (cannonical filesystem paths) to include in RHEL-8 initrd """ topic = SystemInfoTopic files = fields.List(fields.String())
class UsedRepositories(Model): """ Describe list of used repositories in the current system """ topic = SystemInfoTopic repositories = fields.List(fields.Model(UsedRepository), default=[])
class RequiredUpgradeInitramPackages(Model): """ Requests packages to be installed so that the leapp upgrade dracut image generation will succeed """ topic = BootPrepTopic packages = fields.List(fields.String(), default=[]) """
class SELinuxModule(Model): """SELinux module in cil including priority""" topic = SystemInfoTopic name = fields.String() priority = fields.Integer() content = fields.String() # lines removed due to content invalid on RHEL 8 removed = fields.List(fields.String())
class RemovedPAMModules(Model): """ PAM modules that were removed from RHEL8 but are in current configuration. """ topic = SystemFactsTopic modules = fields.List(fields.String()) """
class DaemonList(Model): """ A split up representation of a daemon_list (see host_access(5)). Example value of the 'value' attribute: ["ALL", "EXCEPT", "in.fingerd"] """ topic = SystemInfoTopic value = fields.List(fields.String())
class OpenSshPermitRootLogin(Model): topic = SystemInfoTopic value = fields.StringEnum(['yes', 'prohibit-password', 'forced-commands-only', 'no']) """ Value of a PermitRootLogin directive. """ in_match = fields.Nullable(fields.List(fields.String())) """ Criteria of Match blocks the PermitRootLogin directive occured in, if any. """
class RepoMapEntry(Model): topic = TransactionTopic source = fields.String() """The source PES id.""" target = fields.List(fields.String()) """List of target PES ids"""
class StorageInfo(Model): topic = SystemInfoTopic partitions = fields.List(fields.Model(PartitionEntry), default=[]) fstab = fields.List(fields.Model(FstabEntry), default=[]) mount = fields.List(fields.Model(MountEntry), default=[]) lsblk = fields.List(fields.Model(LsblkEntry), default=[]) pvs = fields.List(fields.Model(PvsEntry), default=[]) vgs = fields.List(fields.Model(VgsEntry), default=[]) lvdisplay = fields.List(fields.Model(LvdisplayEntry), default=[]) systemdmount = fields.List(fields.Model(SystemdMountEntry), default=[])
class PCIDevice(Model): """ Model to represent a PCI Device. There is the following match between model parameters and the fields of the output of a shell command `lspci -vmmk` slot - 'Slot', dev_cls - 'Class', vendor - 'Vendor', name - 'Device', subsystem_vendor - 'SVendor', subsystem_name - 'SDevice', physical_slot - 'PhySlot', rev - 'Rev', progif - 'ProgIf', driver - 'Driver', modules - 'Module', numa_node - 'NUMANode', pci_id - represents the numeric identification of the device, formed as string concatenating of the numeric device identifiers for fields Vendor, Device, SVendor, SDevice (output of a shell command `lspci -vmmkn`) with the `:` delimiter. For example: one device from output of `lspci -vmmkn` is: ``` Slot: 04:00.0 Class: 0880 Vendor: 8086 Device: 15bf SVendor: 17aa SDevice: 2279 Rev: 01 Driver: thunderbolt Module: thunderbolt ``` then pci_id == "8086:15bf:17aa:2279" """ topic = SystemInfoTopic slot = fields.String() dev_cls = fields.String() vendor = fields.String() name = fields.String() subsystem_vendor = fields.Nullable(fields.String()) subsystem_name = fields.Nullable(fields.String()) physical_slot = fields.Nullable(fields.String()) rev = fields.Nullable(fields.String()) progif = fields.Nullable(fields.String()) driver = fields.Nullable(fields.String()) modules = fields.Nullable(fields.List(fields.String())) numa_node = fields.Nullable(fields.String()) pci_id = fields.String()
class SSSDConfig(Model): """ List of SSSD domains and their configuration that is related to the upgrade process. """ topic = SystemInfoTopic domains = fields.List(fields.Model(SSSDDomainConfig), default=list()) """
class UsedRepository(Model): """ Describe list of current packages installed from a specific repository """ topic = SystemInfoTopic repository = fields.String() packages = fields.List(fields.String(), default=[])