diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-04-11 19:04:43 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-04-11 19:04:43 +1000 |
commit | 393007315d56d72cd4ebccc204da703b27eb968b (patch) | |
tree | 7c3495cfd2ab5e755dc05ac433d67f24a4ad9a2b /source4 | |
parent | 67faa71c5be5fabeeef16d97c2ed9af152af198d (diff) | |
download | samba-393007315d56d72cd4ebccc204da703b27eb968b.tar.gz samba-393007315d56d72cd4ebccc204da703b27eb968b.tar.bz2 samba-393007315d56d72cd4ebccc204da703b27eb968b.zip |
Far less cryptic traceback when you have an existing smb.conf
When the user has an existing smb.conf, but no [netlogon] or [sysvol]
share, the provision script would trigger a traceback. While we still
need to abort in this situation, we do so now with a useful error.
Andrew Bartlett
(This used to be commit 10a8b7ea487f9725f69b02c4dd9cf5e1f67a23ab)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/scripting/python/samba/provision.py | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 16b1eb2156..4f264b6fc9 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -87,6 +87,7 @@ class ProvisionNames: self.domain = None self.hostname = None self.sitename = None + self.smbconf = None class ProvisionResult: def __init__(self): @@ -262,6 +263,8 @@ def provision_paths_from_lp(lp, dnsdomain): paths.netlogon = lp.get("path", "netlogon") + paths.smbconf = lp.configfile() + return paths @@ -1009,12 +1012,24 @@ def provision(setup_dir, message, session_info, ldap_backend_type=ldap_backend_type) if lp.get("server role") == "domain controller": - policy_path = os.path.join(paths.sysvol, names.dnsdomain, "Policies", - "{" + policyguid + "}") - os.makedirs(policy_path, 0755) - os.makedirs(os.path.join(policy_path, "Machine"), 0755) - os.makedirs(os.path.join(policy_path, "User"), 0755) - if not os.path.isdir(paths.netlogon): + if paths.netlogon is None: + message("Existing smb.conf does not have a [netlogon] share, but you are configuring a DC.") + message("Please either remove %s or see the template at %s" % + ( paths.smbconf, setup_path("provision.smb.conf.dc"))) + assert(paths.netlogon is not None) + + if paths.sysvol is None: + message("Existing smb.conf does not have a [sysvol] share, but you are configuring a DC.") + message("Please either remove %s or see the template at %s" % + (paths.smbconf, setup_path("provision.smb.conf.dc"))) + assert(paths.sysvol is not None) + + policy_path = os.path.join(paths.sysvol, names.dnsdomain, "Policies", + "{" + policyguid + "}") + os.makedirs(policy_path, 0755) + os.makedirs(os.path.join(policy_path, "Machine"), 0755) + os.makedirs(os.path.join(policy_path, "User"), 0755) + if not os.path.isdir(paths.netlogon): os.makedirs(paths.netlogon, 0755) if samdb_fill == FILL_FULL: |