diff --git a/erp5/util/testnode/SlapOSControler.py b/erp5/util/testnode/SlapOSControler.py index 1bcae41e4d1c6b244175edc18187890106b96925..9ec438499417eb245f557835512fad870d71c97c 100644 --- a/erp5/util/testnode/SlapOSControler.py +++ b/erp5/util/testnode/SlapOSControler.py @@ -32,15 +32,21 @@ import xml_marshaller class SlapOSControler(object): - def __init__(self, config, log, process_group_pid_set=None): + def __init__(self, config, log, process_group_pid_set=None, + slapproxy_log=None): self.log = log self.config = config # By erasing everything, we make sure that we are able to "update" # existing profiles. This is quite dirty way to do updates... if os.path.exists(config['proxy_database']): os.unlink(config['proxy_database']) + kwargs = dict(close_fds=True, preexec_fn=os.setsid) + if slapproxy_log is not None: + slapproxy_log_fp = open(slapproxy_log, 'w') + kwargs['stdout'] = slapproxy_log_fp + kwargs['stderr'] = slapproxy_log_fp proxy = subprocess.Popen([config['slapproxy_binary'], - config['slapos_config']], close_fds=True, preexec_fn=os.setsid) + config['slapos_config']], **kwargs) process_group_pid_set.add(proxy.pid) # XXX: dirty, giving some time for proxy to being able to accept # connections