1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00

provision: Make sure target directory is created early.

This is necessary when using the target directory to store temporary
files.

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Feb  7 02:45:37 CET 2012 on sn-devel-104
This commit is contained in:
Jelmer Vernooij 2012-02-07 01:09:41 +01:00
parent 8dca1a0222
commit f2903e0c4f
3 changed files with 29 additions and 15 deletions

View File

@ -873,6 +873,10 @@ class cmd_domain_samba3upgrade(Command):
if sambaopts.realm:
s3conf.set("realm", sambaopts.realm)
if targetdir is not None:
if not os.path.isdir(targetdir):
os.mkdir(targetdir)
eadb = True
if use_xattrs == "yes":
eadb = False
@ -882,14 +886,16 @@ class cmd_domain_samba3upgrade(Command):
else:
tmpfile = tempfile.NamedTemporaryFile(dir=os.path.abspath(os.path.dirname(lp.get("private dir"))))
try:
samba.ntacls.setntacl(lp, tmpfile.name,
"O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native")
eadb = False
except Exception:
# FIXME: Don't catch all exceptions here
logger.info("You are not root or your system do not support xattr, using tdb backend for attributes. "
"If you intend to use this provision in production, rerun the script as root on a system supporting xattrs.")
tmpfile.close()
try:
samba.ntacls.setntacl(lp, tmpfile.name,
"O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native")
eadb = False
except Exception:
# FIXME: Don't catch all exceptions here
logger.info("You are not root or your system do not support xattr, using tdb backend for attributes. "
"If you intend to use this provision in production, rerun the script as root on a system supporting xattrs.")
finally:
tmpfile.close()
# Set correct default values from dbdir or testparm
paths = {}

View File

@ -202,6 +202,8 @@ def get_paths(param, targetdir=None, smbconf=None):
:param smbconf: Path to the smb.conf file
:return: A list with the path of important provision objects"""
if targetdir is not None:
if not os.path.exists(targetdir):
os.mkdir(targetdir)
etcdir = os.path.join(targetdir, "etc")
if not os.path.exists(etcdir):
os.makedirs(etcdir)

View File

@ -218,6 +218,10 @@ if opts.blank:
elif opts.partitions_only:
samdb_fill = FILL_DRS
if opts.targetdir is not None:
if not os.path.isdir(opts.targetdir):
os.mkdir(opts.targetdir)
eadb = True
if opts.use_xattrs == "yes":
eadb = False
@ -227,13 +231,15 @@ elif opts.use_xattrs == "auto" and not lp.get("posix:eadb"):
else:
file = tempfile.NamedTemporaryFile(dir=os.path.abspath(os.path.dirname(lp.get("private dir"))))
try:
samba.ntacls.setntacl(lp, file.name,
"O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native")
eadb = False
except Exception:
logger.info("You are not root or your system do not support xattr, using tdb backend for attributes. "
"If you intend to use this provision in production, rerun the script as root on a system supporting xattrs.")
file.close()
try:
samba.ntacls.setntacl(lp, file.name,
"O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native")
eadb = False
except Exception:
logger.info("You are not root or your system do not support xattr, using tdb backend for attributes. "
"If you intend to use this provision in production, rerun the script as root on a system supporting xattrs.")
finally:
file.close()
session = system_session()
try: