From 87afc3aee1ea593069322a49355dd8780d99e123 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Dec 2012 15:37:14 +0100 Subject: Move python modules from source4/scripting/python/ to python/. Reviewed-by: Andrew Bartlett Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Sat Mar 2 03:57:34 CET 2013 on sn-devel-104 --- source4/scripting/python/samba/sites.py | 125 -------------------------------- 1 file changed, 125 deletions(-) delete mode 100644 source4/scripting/python/samba/sites.py (limited to 'source4/scripting/python/samba/sites.py') diff --git a/source4/scripting/python/samba/sites.py b/source4/scripting/python/samba/sites.py deleted file mode 100644 index 76c57dd11c..0000000000 --- a/source4/scripting/python/samba/sites.py +++ /dev/null @@ -1,125 +0,0 @@ -# python site manipulation code -# Copyright Matthieu Patou 2011 -# -# 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 . -# - -"""Manipulating sites.""" - -import ldb -from ldb import FLAG_MOD_ADD - - -class SiteException(Exception): - """Base element for Sites errors""" - - def __init__(self, value): - self.value = value - - def __str__(self): - return "SiteException: " + self.value - - -class SiteNotFoundException(SiteException): - """Raised when the site is not found and it's expected to exists.""" - - def __init__(self, value): - self.value = value - - def __str__(self): - return "SiteNotFoundException: " + self.value - -class SiteAlreadyExistsException(SiteException): - """Raised when the site is not found and it's expected not to exists.""" - - def __init__(self, value): - self.value = value - - def __str__(self): - return "SiteAlreadyExists: " + self.value - -class SiteServerNotEmptyException(SiteException): - """Raised when the site still has servers attached.""" - - def __init__(self, value): - self.value = value - - def __str__(self): - return "SiteServerNotEmpty: " + self.value - -def create_site(samdb, configDn, siteName): - """ - Create a site - - :param samdb: A samdb connection - :param configDn: The DN of the configuration partition - :param siteName: Name of the site to create - :return: True upon success - :raise SiteAlreadyExists: if the site to be created already exists. - """ - - ret = samdb.search(base=configDn, scope=ldb.SCOPE_SUBTREE, - expression='(&(objectclass=Site)(cn=%s))' % siteName) - if len(ret) != 0: - raise SiteAlreadyExistsException('A site with the name %s already exists' % siteName) - - m = ldb.Message() - m.dn = ldb.Dn(samdb, "Cn=%s,CN=Sites,%s" % (siteName, str(configDn))) - m["objectclass"] = ldb.MessageElement("site", FLAG_MOD_ADD, "objectclass") - - samdb.add(m) - - m2 = ldb.Message() - m2.dn = ldb.Dn(samdb, "Cn=NTDS Site Settings,%s" % str(m.dn)) - m2["objectclass"] = ldb.MessageElement("nTDSSiteSettings", FLAG_MOD_ADD, "objectclass") - - samdb.add(m2) - - m3 = ldb.Message() - m3.dn = ldb.Dn(samdb, "Cn=Servers,%s" % str(m.dn)) - m3["objectclass"] = ldb.MessageElement("serversContainer", FLAG_MOD_ADD, "objectclass") - - samdb.add(m3) - - return True - -def delete_site(samdb, configDn, siteName): - """ - Delete a site - - :param samdb: A samdb connection - :param configDn: The DN of the configuration partition - :param siteName: Name of the site to delete - :return: True upon success - :raise SiteNotFoundException: if the site to be deleted do not exists. - :raise SiteServerNotEmpty: if the site has still servers in it. - """ - - dnsites = ldb.Dn(samdb, "CN=Sites,%s" % (str(configDn))) - dnsite = ldb.Dn(samdb, "Cn=%s,CN=Sites,%s" % (siteName, str(configDn))) - dnserver = ldb.Dn(samdb, "Cn=Servers,%s" % str(dnsite)) - - ret = samdb.search(base=dnsites, scope=ldb.SCOPE_ONELEVEL, - expression='(dn=%s)' % str(dnsite)) - if len(ret) != 1: - raise SiteNotFoundException('Site %s do not exists' % siteName) - - ret = samdb.search(base=dnserver, scope=ldb.SCOPE_ONELEVEL, - expression='(objectclass=server)') - if len(ret) != 0: - raise SiteServerNotEmptyException('Site %s still has servers in it, move them before removal' % siteName) - - samdb.delete(dnsite, ["tree_delete:0"]) - - return True -- cgit