mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
s4-provision: fixed the GUIDs in the provision using dbcheck
some DNs are are not setup with GUIDs during the provision because of circular dependencies between objects. This adds a dbcheck pass to the provision to fix those DNs Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
@ -80,6 +80,8 @@ import samba.param
|
|||||||
import samba.registry
|
import samba.registry
|
||||||
from samba.schema import Schema
|
from samba.schema import Schema
|
||||||
from samba.samdb import SamDB
|
from samba.samdb import SamDB
|
||||||
|
from samba.dbchecker import dbcheck
|
||||||
|
|
||||||
|
|
||||||
VALID_NETBIOS_CHARS = " !#$%&'()-.@^_{}~"
|
VALID_NETBIOS_CHARS = " !#$%&'()-.@^_{}~"
|
||||||
DEFAULT_POLICY_GUID = "31B2F340-016D-11D2-945F-00C04FB984F9"
|
DEFAULT_POLICY_GUID = "31B2F340-016D-11D2-945F-00C04FB984F9"
|
||||||
@ -1835,6 +1837,20 @@ def provision(logger, session_info, credentials, smbconf=None,
|
|||||||
logger.info("Failed to chown %s to bind gid %u",
|
logger.info("Failed to chown %s to bind gid %u",
|
||||||
dns_keytab_path, paths.bind_gid)
|
dns_keytab_path, paths.bind_gid)
|
||||||
|
|
||||||
|
# fix any dangling GUIDs from the provision
|
||||||
|
logger.info("Fixing provision GUIDs")
|
||||||
|
chk = dbcheck(samdb, samdb_schema=samdb, verbose=False, fix=True, yes=True, quiet=True)
|
||||||
|
samdb.transaction_start()
|
||||||
|
chk.check_database(DN=None, controls=["search_options:1:2", "show_deleted:1"],
|
||||||
|
attrs=['defaultObjectCategory',
|
||||||
|
'objectCategory',
|
||||||
|
'ipsecOwnersReference',
|
||||||
|
'ipsecFilterReference',
|
||||||
|
'ipsecISAKMPReference',
|
||||||
|
'ipsecNegotiationPolicyReference',
|
||||||
|
'ipsecNFAReference'])
|
||||||
|
samdb.transaction_commit()
|
||||||
|
|
||||||
|
|
||||||
logger.info("Please install the phpLDAPadmin configuration located at %s into /etc/phpldapadmin/config.php",
|
logger.info("Please install the phpLDAPadmin configuration located at %s into /etc/phpldapadmin/config.php",
|
||||||
paths.phpldapadminconfig)
|
paths.phpldapadminconfig)
|
||||||
|
Reference in New Issue
Block a user