diff options
author | Jan Cholasta <jcholast@redhat.com> | 2014-10-03 11:23:18 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2014-10-09 15:33:23 +0200 |
commit | dd9c3c744d33a2d662177e2cee2dac2134fafe5a (patch) | |
tree | 66b71884b1c4a63ec969c85195aad6c19e86a7eb | |
parent | 748682771670522cc8b0e2db7b1251ead5fecde0 (diff) | |
download | freeipa-dd9c3c744d33a2d662177e2cee2dac2134fafe5a.tar.gz freeipa-dd9c3c744d33a2d662177e2cee2dac2134fafe5a.tar.xz freeipa-dd9c3c744d33a2d662177e2cee2dac2134fafe5a.zip |
Add RHEL platform module
https://fedorahosted.org/freeipa/ticket/4562
Reviewed-By: Martin Kosek <mkosek@redhat.com>
-rw-r--r-- | ipaplatform/rhel/__init__.py | 22 | ||||
-rw-r--r-- | ipaplatform/rhel/paths.py | 33 | ||||
-rw-r--r-- | ipaplatform/rhel/services.py | 61 | ||||
-rw-r--r-- | ipaplatform/rhel/tasks.py | 31 | ||||
-rw-r--r-- | ipaplatform/setup.py.in | 3 |
5 files changed, 149 insertions, 1 deletions
diff --git a/ipaplatform/rhel/__init__.py b/ipaplatform/rhel/__init__.py new file mode 100644 index 000000000..f94f06d22 --- /dev/null +++ b/ipaplatform/rhel/__init__.py @@ -0,0 +1,22 @@ +# 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/>. + +''' +This module contains RHEL-specific platform files. +''' diff --git a/ipaplatform/rhel/paths.py b/ipaplatform/rhel/paths.py new file mode 100644 index 000000000..4f3925f35 --- /dev/null +++ b/ipaplatform/rhel/paths.py @@ -0,0 +1,33 @@ +# 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/>. + +''' +This RHEL base platform module exports default filesystem paths as common +in RHEL-based systems. +''' + +# Fallback to default path definitions +from ipaplatform.redhat.paths import RedHatPathNamespace + + +class RHELPathNamespace(RedHatPathNamespace): + pass + + +paths = RHELPathNamespace() diff --git a/ipaplatform/rhel/services.py b/ipaplatform/rhel/services.py new file mode 100644 index 000000000..861738eb2 --- /dev/null +++ b/ipaplatform/rhel/services.py @@ -0,0 +1,61 @@ +# 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 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 + +# Service that sets domainname on RHEL is called rhel-domainname.service +rhel_system_units['domainname'] = 'rhel-domainname.service' + + +# 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): + if name == 'domainname': + return RHELService(name) + return redhat_services.redhat_service_class_factory(name) + + +# Magicdict containing RHELService instances. + +class RHELServices(redhat_services.RedHatServices): + def service_class_factory(self, name): + return rhel_service_class_factory(name) + + +# Objects below are expected to be exported by platform module + +from ipaplatform.redhat.services import timedate_services +service = rhel_service_class_factory +knownservices = RHELServices() diff --git a/ipaplatform/rhel/tasks.py b/ipaplatform/rhel/tasks.py new file mode 100644 index 000000000..751580665 --- /dev/null +++ b/ipaplatform/rhel/tasks.py @@ -0,0 +1,31 @@ +# 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/>. + +''' +This module contains default RHEL-specific implementations of system tasks. +''' + +from ipaplatform.redhat.tasks import RedHatTaskNamespace + + +class RHELTaskNamespace(RedHatTaskNamespace): + pass + + +tasks = RHELTaskNamespace() diff --git a/ipaplatform/setup.py.in b/ipaplatform/setup.py.in index 0ba5822f9..944e68699 100644 --- a/ipaplatform/setup.py.in +++ b/ipaplatform/setup.py.in @@ -68,7 +68,8 @@ def setup_package(): packages = ["ipaplatform", "ipaplatform.base", "ipaplatform.fedora", - "ipaplatform.redhat"], + "ipaplatform.redhat", + "ipaplatform.rhel"], ) finally: del sys.path[0] |