2009-10-30 07:18:42 +03:00
#
# Unix SMB/CIFS implementation.
# backend code for provisioning a Samba4 server
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2008
# Copyright (C) Andrew Bartlett <abartlet@samba.org> 2008-2009
# Copyright (C) Oliver Liebel <oliver@itc.li> 2008-2009
#
# Based on the original in EJS:
# Copyright (C) Andrew Tridgell <tridge@samba.org> 2005
#
# 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.
2010-11-28 06:22:46 +03:00
#
2009-10-30 07:18:42 +03:00
# 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.
2010-11-28 06:02:28 +03:00
#
2009-10-30 07:18:42 +03:00
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
""" Functions for setting up a Samba configuration (LDB and LDAP backends). """
2009-10-30 15:42:03 +03:00
import shutil
2009-10-30 07:18:42 +03:00
2012-02-26 19:23:18 +04:00
class BackendResult ( object ) :
def report_logger ( self , logger ) :
""" Rerport this result to a particular logger.
"""
raise NotImplementedError ( self . report_logger )
2009-10-30 07:18:42 +03:00
class ProvisionBackend ( object ) :
2012-02-26 19:23:18 +04:00
2019-03-12 00:52:24 +03:00
def __init__ ( self , paths = None , lp = None ,
2018-07-30 09:16:12 +03:00
names = None , logger = None ) :
2009-11-06 06:55:34 +03:00
""" Provision a backend for samba4 """
2009-10-30 07:18:42 +03:00
self . paths = paths
2009-11-05 21:04:05 +03:00
self . lp = lp
2009-11-05 20:15:55 +03:00
self . names = names
2010-06-13 19:43:25 +04:00
self . logger = logger
2009-10-30 07:18:42 +03:00
2019-03-12 00:52:24 +03:00
self . type = " ldb "
2009-10-30 07:18:42 +03:00
2009-11-13 18:58:20 +03:00
def init ( self ) :
2010-06-11 01:12:53 +04:00
""" Initialize the backend. """
raise NotImplementedError ( self . init )
2009-11-06 03:49:37 +03:00
def start ( self ) :
2010-06-11 01:12:53 +04:00
""" Start the backend. """
raise NotImplementedError ( self . start )
2009-11-06 03:49:37 +03:00
def shutdown ( self ) :
2010-06-11 01:12:53 +04:00
""" Shutdown the backend. """
raise NotImplementedError ( self . shutdown )
2009-11-06 03:49:37 +03:00
def post_setup ( self ) :
2012-02-26 19:23:18 +04:00
""" Post setup.
: return : A BackendResult or None
"""
2010-06-11 01:12:53 +04:00
raise NotImplementedError ( self . post_setup )
2009-11-06 03:49:37 +03:00
2009-11-06 07:29:55 +03:00
class LDBBackend ( ProvisionBackend ) :
2009-11-13 18:58:20 +03:00
def init ( self ) :
2010-11-28 06:02:28 +03:00
2009-11-06 07:29:55 +03:00
# Wipe the old sam.ldb databases away
shutil . rmtree ( self . paths . samdb + " .d " , True )
2010-06-11 03:47:45 +04:00
def start ( self ) :
pass
def shutdown ( self ) :
pass
def post_setup ( self ) :
pass
2009-11-06 07:29:55 +03:00