s4:setup/provision - Rework
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Sat, 28 Nov 2009 16:03:57 +0000 (17:03 +0100)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Sat, 28 Nov 2009 17:59:33 +0000 (18:59 +0100)
- Revert change in "ask" - was previously correct
- Readd accidentally removed checks for non-null realm and domainname
- On interactive mode perform only one "ask" call per question
- Inform the user about the unset administrator password

source4/setup/provision

index f1aa07c7a7663fd5f90964c566e73ec64dd70162..b855dc2f30e56774d83ef1b9d3e617f6e5c4e2ec 100755 (executable)
@@ -129,17 +129,25 @@ if opts.interactive:
                if default is not None:
                        print "%s [%s]: " % (prompt,default),
                else:
-                       print "%s: " % (prompt),
+                       print "%s: " % (prompt,),
                return sys.stdin.readline().rstrip("\n") or default
        try:
-               opts.realm = ask("Realm", socket.getfqdn().split(".", 1)[1].upper())
+               default = socket.getfqdn().split(".", 1)[1].upper()
        except IndexError:
-               opts.realm = ask("Realm", None)
+               default = None
+       opts.realm = ask("Realm", default)
+       if opts.realm in (None, ""):
+               print >>sys.stderr, "No realm set!"
+               sys.exit(1)
 
        try:
-               opts.domain = ask("Domain", opts.realm.split(".")[0])
+               default = opts.realm.split(".")[0]
        except IndexError:
-               opts.domain = ask("Domain", None)
+               default = None
+       opts.domain = ask("Domain", default)
+       if opts.domain is None:
+               print >> sys.stderr, "No domain set!"
+               sys.exit(1)
 
        opts.server_role = ask("Server Role (dc, member, standalone)", "dc")
        for i in range(3):
@@ -148,6 +156,17 @@ if opts.interactive:
                        print >>sys.stderr, "Invalid administrator password."
                else:
                        break
+else:
+       if opts.realm is None or opts.domain is None:
+               if opts.realm is None:
+                       print >>sys.stderr, "No realm set!"
+               if opts.domain is None:
+                       print >> sys.stderr, "No domain set!"
+               parser.print_usage()
+               sys.exit(1)
+
+if not opts.adminpass:
+       message("Administrator password will be set randomly!")
 
 lp = sambaopts.get_loadparm()
 smbconf = lp.configfile