From a6a84566466a59fc954268ebd616ef1af4b347b1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 5 Mar 2012 03:45:57 +0100 Subject: selfclient.client: Factor out write_clientconf. --- selftest/client.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 selftest/client.py (limited to 'selftest/client.py') diff --git a/selftest/client.py b/selftest/client.py new file mode 100644 index 0000000000..81a98895ec --- /dev/null +++ b/selftest/client.py @@ -0,0 +1,80 @@ +#!/usr/bin/python -u +# Bootstrap Samba and run a number of tests against it. +# Copyright (C) 2012 Jelmer Vernooij + +# 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 . + +import os +import shutil + +def write_clientconf(conffile, clientdir, vars): + if not os.path.isdir(clientdir): + os.mkdir(clientdir, 0777) + + for n in ["private", "lockdir", "statedir", "cachedir"]: + p = os.path.join(clientdir, n) + if os.path.isdir(p): + shutil.rmtree(p) + os.mkdir(p, 0777) + + # this is ugly, but the ncalrpcdir needs exactly 0755 + # otherwise tests fail. + mask = os.umask(0022) + + for n in ["ncalrpcdir", "ncalrpcdir/np"]: + p = os.path.join(clientdir, n) + if os.path.isdir(p): + shutil.rmtree(p) + os.mkdir(p, 0777) + os.umask(mask) + + settings = { + "netbios name": "client", + "private dir": os.path.join(clientdir, "private"), + "lock dir": os.path.join(clientdir, "lockdir"), + "state directory": os.path.join(clientdir, "statedir"), + "cache directory": os.path.join(clientdir, "cachedir"), + "ncalrpc dir": os.path.join(clientdir, "ncalrpcdir"), + "name resolve order": "file bcast", + "panic action": os.path.join(os.path.dirname(__file__), "gdb_backtrace \%d"), + "max xmit": "32K", + "notify:inotify": "false", + "ldb:nosync": "true", + "system:anonymous": "true", + "client lanman auth": "Yes", + "log level": "1", + "torture:basedir": clientdir, + # We don't want to pass our self-tests if the PAC code is wrong + "gensec:require_pac": "true", + "resolv:host file": os.path.join(prefix_abs, "dns_host_file"), + # We don't want to run 'speed' tests for very long + "torture:timelimit": "1", + } + + if "DOMAIN" in vars: + settings["workgroup"] = vars["DOMAIN"] + if "REALM" in vars: + settings["realm"] = vars["REALM"] + if opts.socket_wrapper: + settings["interfaces"] = interfaces + + f = open(conffile, 'w') + try: + f.write("[global]\n") + for item in settings.iteritems(): + f.write("\t%s = %s\n" % item) + finally: + f.close() + + -- cgit