mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-22 23:23:30 -06:00
c2c533b765
On RHEL8, ipa is using named-pkcs11.service but RHEL9 is based on fedora34 and uses named.service instead. There is already some support for this distinction in ipaplatform, and the patch relies on the specific settings that can be configured in ipaplatform/xx/services.py and ipaplatform/xx/constants.py On RHEL9 ipa also needs to define NAMED_OPENSSL_ENGINE for named to use openssl's okcs11 engine. Fixes: https://pagure.io/freeipa/issue/8753 Reviewed-By: Rob Crittenden <rcritten@redhat.com>
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
# Authors:
|
|
# Jan Cholasta <jcholast@redhat.com>
|
|
#
|
|
# Copyright (C) 2014 Red Hat
|
|
# see file 'COPYING' for use and warranty information
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
"""
|
|
Contains RHEL-specific service class implementations.
|
|
"""
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from ipaplatform.osinfo import osinfo
|
|
from ipaplatform.redhat import services as redhat_services
|
|
|
|
# Mappings from service names as FreeIPA code references to these services
|
|
# to their actual systemd service names
|
|
rhel_system_units = redhat_services.redhat_system_units.copy()
|
|
if osinfo.version_number >= (9,):
|
|
rhel_system_units['named'] = rhel_system_units['named-regular']
|
|
rhel_system_units['named-conflict'] = rhel_system_units['named-pkcs11']
|
|
|
|
|
|
# Service classes that implement RHEL-specific behaviour
|
|
|
|
class RHELService(redhat_services.RedHatService):
|
|
system_units = rhel_system_units
|
|
|
|
|
|
# Function that constructs proper RHEL-specific server classes for services
|
|
# of specified name
|
|
|
|
def rhel_service_class_factory(name, api=None):
|
|
if name in ['named', 'named-conflict']:
|
|
return RHELService(name, api)
|
|
return redhat_services.redhat_service_class_factory(name, api)
|
|
|
|
|
|
# Magicdict containing RHELService instances.
|
|
|
|
class RHELServices(redhat_services.RedHatServices):
|
|
def service_class_factory(self, name, api=None):
|
|
return rhel_service_class_factory(name, api)
|
|
|
|
|
|
# Objects below are expected to be exported by platform module
|
|
|
|
timedate_services = redhat_services.timedate_services
|
|
service = rhel_service_class_factory
|
|
knownservices = RHELServices()
|