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.

73 lines
1.8 KiB

10 months ago
from leapp.models import fields, Model
from leapp.topics import SystemInfoTopic
class OpenSslConfigPair(Model):
"""
Key-value pair in the OpenSSL config block
[ name ]
key = value
key2 = value2
...
This model is not expected to be used as a message (produced/consumed by actors).
See the OpenSslConfig.
"""
topic = SystemInfoTopic
key = fields.String()
""" The key is usually fixed name for specific purpose """
value = fields.String()
""" The value, can be a reference to another block """
class OpenSslConfigBlock(Model):
"""
Every block in the openssl.cnf in the following format:
[ name ]
key = value
key2 = value2
...
This model is not expected to be used as a message (produced/consumed by actors).
See the OpenSslConfig.
"""
topic = SystemInfoTopic
name = fields.String()
""" The block name """
pairs = fields.List(fields.Model(OpenSslConfigPair))
""" The key-value pairs """
class OpenSslConfig(Model):
"""
openssl.cnf
This mode contains interesting parts of the RHEL8 OpenSSL configuration file
that will be later used to decide if it needs to be updated to keep working
in RHEL9.
"""
topic = SystemInfoTopic
openssl_conf = fields.Nullable(fields.String())
"""
The value of openssl_conf field
It is used to load default TLS policy in RHEL8, but controls loading of all
providers in RHEL9 so it needs to be adjusted for upgrade. This is listed
before any block.
"""
blocks = fields.List(fields.Model(OpenSslConfigBlock))
"""
The list of blocks in the openssl.cnf
We are mostly interested in the ones referenced by the openssl_conf value above.
"""
modified = fields.Boolean(default=False)
""" True if the configuration file was modified. """