2014-05-21 07:38:57 -05:00
|
|
|
# Authors:
|
2014-05-26 06:01:49 -05:00
|
|
|
# Alexander Bokovoy <abokovoy@redhat.com>
|
2014-05-21 07:38:57 -05:00
|
|
|
# Tomas Babej <tbabej@redhat.com>
|
|
|
|
#
|
2014-05-26 06:01:49 -05:00
|
|
|
# Copyright (C) 2011-2014 Red Hat
|
2014-05-21 07:38:57 -05:00
|
|
|
# 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 platform-specific implementations of system tasks.
|
|
|
|
'''
|
2014-05-26 06:01:49 -05:00
|
|
|
|
|
|
|
from ipaplatform.paths import paths
|
|
|
|
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
class BaseTaskNamespace(object):
|
2014-06-13 09:20:14 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def restore_context(self, filepath):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Restore SELinux security context on the given filepath.
|
|
|
|
|
|
|
|
No return value expected.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def backup_and_replace_hostname(self, fstore, statestore, hostname):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Backs up the current hostname in the statestore (so that it can be
|
|
|
|
restored by the restore_network_configuration platform task).
|
|
|
|
|
|
|
|
Makes sure that new hostname (passed via hostname argument) is set
|
|
|
|
as a new pemanent hostname for this host.
|
|
|
|
|
|
|
|
No return value expected.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-12 10:20:19 -05:00
|
|
|
def insert_ca_certs_into_systemwide_ca_store(self, ca_certs):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
2014-06-12 10:20:19 -05:00
|
|
|
Adds CA certificates from 'ca_certs' to the systemwide CA store
|
2014-06-13 09:20:14 -05:00
|
|
|
(if available on the platform).
|
|
|
|
|
|
|
|
Returns True if the operation succeeded, False otherwise.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return True
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-12 10:20:19 -05:00
|
|
|
def remove_ca_certs_from_systemwide_ca_store(self):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
2014-06-12 10:20:19 -05:00
|
|
|
Removes IPA CA certificates from the systemwide CA store
|
|
|
|
(if available on the platform).
|
2014-06-13 09:20:14 -05:00
|
|
|
|
|
|
|
Returns True if the operation succeeded, False otherwise.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return True
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def get_svc_list_file(self):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Returns the path to the IPA service list file.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return paths.SVC_LIST_FILE
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def check_selinux_status(self):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Checks if SELinux is available on the platform. If it is, this task
|
|
|
|
also makes sure that restorecon tool is available.
|
|
|
|
|
|
|
|
If SELinux is available, but restorcon tool is not installed, raises
|
|
|
|
an RuntimeError, which suggest installing the package containing
|
|
|
|
restorecon and rerunning the installation.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def restore_network_configuration(self, fstore, statestore):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Restores the original hostname as backed up in the
|
|
|
|
backup_and_replace_hostname platform task.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def restore_pre_ipa_client_configuration(self, fstore, statestore,
|
|
|
|
was_sssd_installed,
|
|
|
|
was_sssd_configured):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Restores the pre-ipa-client configuration that was modified by the
|
|
|
|
following platform tasks:
|
|
|
|
modify_nsswitch_pam_stack
|
|
|
|
modify_pam_to_use_krb5
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
def set_nisdomain(self, nisdomain):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Sets the NIS domain name to 'nisdomain'.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-16 11:49:47 -05:00
|
|
|
def modify_nsswitch_pam_stack(self, sssd, mkhomedir, statestore):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
If sssd flag is true, configure pam and nsswtich so that SSSD is used
|
|
|
|
for retrieving user information and authentication.
|
|
|
|
|
|
|
|
Otherwise, configure pam and nsswitch to leverage pure LDAP.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:01:49 -05:00
|
|
|
|
2014-06-16 11:49:47 -05:00
|
|
|
def modify_pam_to_use_krb5(self, statestore):
|
2014-06-13 09:20:14 -05:00
|
|
|
"""
|
|
|
|
Configure pam stack to allow kerberos authentication.
|
|
|
|
"""
|
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
return
|
2014-05-26 06:07:09 -05:00
|
|
|
|
2014-06-03 09:17:16 -05:00
|
|
|
task_namespace = BaseTaskNamespace()
|