summaryrefslogtreecommitdiff
path: root/source4/scripting/python
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2009-12-15 16:41:37 +1100
committerAndrew Bartlett <abartlet@samba.org>2009-12-18 14:27:43 +1100
commitc3d1e5ca0c9f8d6c59a6fd4252a6e275b35e06de (patch)
treedce241bb31e051df8da71df37076b43c1262a673 /source4/scripting/python
parent0c1ff3bb09e3fec82c11fc182d6a5a12494caea8 (diff)
downloadsamba-c3d1e5ca0c9f8d6c59a6fd4252a6e275b35e06de.tar.gz
samba-c3d1e5ca0c9f8d6c59a6fd4252a6e275b35e06de.tar.bz2
samba-c3d1e5ca0c9f8d6c59a6fd4252a6e275b35e06de.zip
s4:provision Give a more useful error message in guess_names
The problem here is that as we start to get 'real users' they still decide to do silly things, like load empty but existing smb.conf files. Let's give them a better chance to discover what they did wrong. Andrew Bartlett
Diffstat (limited to 'source4/scripting/python')
-rw-r--r--source4/scripting/python/samba/provision.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 44ccaa8ef0..3e4e90a746 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -359,12 +359,16 @@ def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None,
if dnsdomain is None:
dnsdomain = lp.get("realm")
- assert dnsdomain is not None
+ if dnsdomain is None or dnsdomain == "":
+ raise ProvisioningError("guess_names: 'realm' not specified in supplied smb.conf!")
+
dnsdomain = dnsdomain.lower()
if serverrole is None:
serverrole = lp.get("server role")
- assert serverrole is not None
+ if serverrole is None:
+ raise ProvisioningError("guess_names: 'server role' not specified in supplied smb.conf!")
+
serverrole = serverrole.lower()
realm = dnsdomain.upper()
@@ -372,10 +376,14 @@ def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None,
if lp.get("realm").upper() != realm:
raise ProvisioningError("guess_names: Realm '%s' in smb.conf must match chosen realm '%s'!", lp.get("realm").upper(), realm)
+ if lp.get("server role").lower() != serverrole:
+ raise ProvisioningError("guess_names: server role '%s' in smb.conf must match chosen server role '%s'!", lp.get("server role").upper(), serverrole)
+
if serverrole == "domain controller":
if domain is None:
domain = lp.get("workgroup")
- assert domain is not None
+ if domain is None:
+ raise ProvisioningError("guess_names: 'workgroup' not specified in supplied smb.conf!")
domain = domain.upper()
if lp.get("workgroup").upper() != domain: