renamed ini_files to conf_files in code

This commit is contained in:
Clay Gerrard
2011-02-12 03:25:29 -06:00
parent f455c21b83
commit 51064d31eb
2 changed files with 101 additions and 101 deletions

View File

@@ -331,25 +331,25 @@ class Server():
except AttributeError: except AttributeError:
return False return False
def get_pid_file_name(self, ini_file): def get_pid_file_name(self, conf_file):
"""Translate ini_file to a corresponding pid_file """Translate conf_file to a corresponding pid_file
:param ini_file: an ini_file for this server, a string :param conf_file: an conf_file for this server, a string
:returns: the pid_file for this ini_file :returns: the pid_file for this conf_file
""" """
return ini_file.replace( return conf_file.replace(
os.path.normpath(SWIFT_DIR), RUN_DIR, 1).replace( os.path.normpath(SWIFT_DIR), RUN_DIR, 1).replace(
'%s-server' % self.type, self.server, 1).rsplit( '%s-server' % self.type, self.server, 1).rsplit(
'.conf', 1)[0] + '.pid' '.conf', 1)[0] + '.pid'
def get_ini_file_name(self, pid_file): def get_conf_file_name(self, pid_file):
"""Translate pid_file to a corresponding ini_file """Translate pid_file to a corresponding conf_file
:param pid_file: a pid_file for this server, a string :param pid_file: a pid_file for this server, a string
:returns: the ini_file for this pid_file :returns: the conf_file for this pid_file
""" """
return pid_file.replace( return pid_file.replace(
@@ -357,35 +357,35 @@ class Server():
self.server, '%s-server' % self.type, 1).rsplit( self.server, '%s-server' % self.type, 1).rsplit(
'.pid', 1)[0] + '.conf' '.pid', 1)[0] + '.conf'
def ini_files(self, **kwargs): def conf_files(self, **kwargs):
"""Get ini files for this server """Get ini files for this server
:param: number, if supplied will only lookup the nth server :param: number, if supplied will only lookup the nth server
:returns: list of ini files :returns: list of ini files
""" """
found_ini_files = search_tree(SWIFT_DIR, '%s-server*' % self.type, found_conf_files = search_tree(SWIFT_DIR, '%s-server*' % self.type,
'.conf') '.conf')
number = kwargs.get('number') number = kwargs.get('number')
if number: if number:
try: try:
ini_files = [found_ini_files[number - 1]] conf_files = [found_conf_files[number - 1]]
except IndexError: except IndexError:
ini_files = [] conf_files = []
else: else:
ini_files = found_ini_files conf_files = found_conf_files
if not ini_files: if not conf_files:
# maybe there's a config file(s) out there, but I couldn't find it! # maybe there's a config file(s) out there, but I couldn't find it!
if not kwargs.get('quiet'): if not kwargs.get('quiet'):
print('Unable to locate config %sfor %s' % ( print('Unable to locate config %sfor %s' % (
('number %s ' % number if number else ''), self.server)) ('number %s ' % number if number else ''), self.server))
if kwargs.get('verbose') and not kwargs.get('quiet'): if kwargs.get('verbose') and not kwargs.get('quiet'):
if found_ini_files: if found_conf_files:
print('Found configs:') print('Found configs:')
for i, ini_file in enumerate(found_ini_files): for i, conf_file in enumerate(found_conf_files):
print(' %d) %s' % (i + 1, ini_file)) print(' %d) %s' % (i + 1, conf_file))
return ini_files return conf_files
def pid_files(self, **kwargs): def pid_files(self, **kwargs):
"""Get pid files for this server """Get pid files for this server
@@ -397,11 +397,11 @@ class Server():
pid_files = search_tree(RUN_DIR, '%s*' % self.server, '.pid') pid_files = search_tree(RUN_DIR, '%s*' % self.server, '.pid')
number = kwargs.get('number', 0) number = kwargs.get('number', 0)
if number: if number:
ini_files = self.ini_files(**kwargs) conf_files = self.conf_files(**kwargs)
# limt pid_files the one who translates to the indexed ini_file for # limt pid_files the one who translates to the indexed conf_file for
# this given number # this given number
pid_files = [pid_file for pid_file in pid_files if pid_files = [pid_file for pid_file in pid_files if
self.get_ini_file_name(pid_file) in ini_files] self.get_conf_file_name(pid_file) in conf_files]
return pid_files return pid_files
def iter_pid_files(self, **kwargs): def iter_pid_files(self, **kwargs):
@@ -474,29 +474,29 @@ class Server():
number = kwargs.get('number', 0) number = kwargs.get('number', 0)
if number: if number:
kwargs['quiet'] = True kwargs['quiet'] = True
ini_files = self.ini_files(**kwargs) conf_files = self.conf_files(**kwargs)
if ini_files: if conf_files:
print "%s #%d not running (%s)" % (self.server, number, print "%s #%d not running (%s)" % (self.server, number,
ini_files[0]) conf_files[0])
else: else:
print "No %s running" % self.server print "No %s running" % self.server
return 1 return 1
for pid, pid_file in pids.items(): for pid, pid_file in pids.items():
ini_file = self.get_ini_file_name(pid_file) conf_file = self.get_conf_file_name(pid_file)
print "%s running (%s - %s)" % (self.server, pid, ini_file) print "%s running (%s - %s)" % (self.server, pid, conf_file)
return 0 return 0
def spawn(self, ini_file, once=False, wait=False, daemon=True, **kwargs): def spawn(self, conf_file, once=False, wait=False, daemon=True, **kwargs):
"""Launch a subprocess for this server. """Launch a subprocess for this server.
:param ini_file: path to ini_file to use as first arg :param conf_file: path to conf_file to use as first arg
:param once: boolean, add once argument to command :param once: boolean, add once argument to command
:param wait: boolean, if true capture stdout with a pipe :param wait: boolean, if true capture stdout with a pipe
:param daemon: boolean, if true ask server to log to console :param daemon: boolean, if true ask server to log to console
:returns : the pid of the spawned process :returns : the pid of the spawned process
""" """
args = [self.cmd, ini_file] args = [self.cmd, conf_file]
if once: if once:
args.append('once') args.append('once')
if not daemon: if not daemon:
@@ -516,7 +516,7 @@ class Server():
else: else:
re_out = open(os.devnull, 'w+b') re_out = open(os.devnull, 'w+b')
proc = subprocess.Popen(args, stdout=re_out, stderr=re_err) proc = subprocess.Popen(args, stdout=re_out, stderr=re_err)
pid_file = self.get_pid_file_name(ini_file) pid_file = self.get_pid_file_name(conf_file)
write_file(pid_file, proc.pid) write_file(pid_file, proc.pid)
self.procs.append(proc) self.procs.append(proc)
return proc.pid return proc.pid
@@ -551,22 +551,22 @@ class Server():
""" """
Collect ini files and attempt to spawn the processes for this server Collect ini files and attempt to spawn the processes for this server
""" """
ini_files = self.ini_files(**kwargs) conf_files = self.conf_files(**kwargs)
if not ini_files: if not conf_files:
return [] return []
pids = self.get_running_pids(**kwargs) pids = self.get_running_pids(**kwargs)
already_started = False already_started = False
for pid, pid_file in pids.items(): for pid, pid_file in pids.items():
ini_file = self.get_ini_file_name(pid_file) conf_file = self.get_conf_file_name(pid_file)
# for legacy compat you can't start other servers if one server is # for legacy compat you can't start other servers if one server is
# already running (unless -n specifies which one you want), this # already running (unless -n specifies which one you want), this
# restriction could potentially be lifted, and launch could start # restriction could potentially be lifted, and launch could start
# any unstarted instances # any unstarted instances
if ini_file in ini_files: if conf_file in conf_files:
already_started = True already_started = True
print "%s running (%s - %s)" % (self.server, pid, ini_file) print "%s running (%s - %s)" % (self.server, pid, conf_file)
elif not kwargs.get('number', 0): elif not kwargs.get('number', 0):
already_started = True already_started = True
print "%s running (%s - %s)" % (self.server, pid, pid_file) print "%s running (%s - %s)" % (self.server, pid, pid_file)
@@ -582,20 +582,20 @@ class Server():
# TODO: check if self.cmd exists? # TODO: check if self.cmd exists?
pids = {} pids = {}
for ini_file in ini_files: for conf_file in conf_files:
if kwargs.get('once'): if kwargs.get('once'):
msg = 'Running %s once' % self.server msg = 'Running %s once' % self.server
else: else:
msg = 'Starting %s' % self.server msg = 'Starting %s' % self.server
print '%s...(%s)' % (msg, ini_file) print '%s...(%s)' % (msg, conf_file)
try: try:
pid = self.spawn(ini_file, **kwargs) pid = self.spawn(conf_file, **kwargs)
except OSError, e: except OSError, e:
if e.errno == errno.ENOENT: if e.errno == errno.ENOENT:
# cmd does not exist # cmd does not exist
print "%s does not exist" % self.cmd print "%s does not exist" % self.cmd
break break
pids[pid] = ini_file pids[pid] = conf_file
return pids return pids

View File

@@ -295,54 +295,54 @@ class TestServer(unittest.TestCase):
def test_get_pid_file_name(self): def test_get_pid_file_name(self):
server = manager.Server('proxy') server = manager.Server('proxy')
ini_file = self.join_swift_dir('proxy-server.conf') conf_file = self.join_swift_dir('proxy-server.conf')
pid_file = self.join_run_dir('proxy-server.pid') pid_file = self.join_run_dir('proxy-server.pid')
self.assertEquals(pid_file, server.get_pid_file_name(ini_file)) self.assertEquals(pid_file, server.get_pid_file_name(conf_file))
server = manager.Server('object-replicator') server = manager.Server('object-replicator')
ini_file = self.join_swift_dir('object-server/1.conf') conf_file = self.join_swift_dir('object-server/1.conf')
pid_file = self.join_run_dir('object-replicator/1.pid') pid_file = self.join_run_dir('object-replicator/1.pid')
self.assertEquals(pid_file, server.get_pid_file_name(ini_file)) self.assertEquals(pid_file, server.get_pid_file_name(conf_file))
server = manager.Server('container-auditor') server = manager.Server('container-auditor')
ini_file = self.join_swift_dir( conf_file = self.join_swift_dir(
'container-server/1/container-auditor.conf') 'container-server/1/container-auditor.conf')
pid_file = self.join_run_dir( pid_file = self.join_run_dir(
'container-auditor/1/container-auditor.pid') 'container-auditor/1/container-auditor.pid')
self.assertEquals(pid_file, server.get_pid_file_name(ini_file)) self.assertEquals(pid_file, server.get_pid_file_name(conf_file))
def test_get_ini_file_name(self): def test_get_conf_file_name(self):
server = manager.Server('proxy') server = manager.Server('proxy')
ini_file = self.join_swift_dir('proxy-server.conf') conf_file = self.join_swift_dir('proxy-server.conf')
pid_file = self.join_run_dir('proxy-server.pid') pid_file = self.join_run_dir('proxy-server.pid')
self.assertEquals(ini_file, server.get_ini_file_name(pid_file)) self.assertEquals(conf_file, server.get_conf_file_name(pid_file))
server = manager.Server('object-replicator') server = manager.Server('object-replicator')
ini_file = self.join_swift_dir('object-server/1.conf') conf_file = self.join_swift_dir('object-server/1.conf')
pid_file = self.join_run_dir('object-replicator/1.pid') pid_file = self.join_run_dir('object-replicator/1.pid')
self.assertEquals(ini_file, server.get_ini_file_name(pid_file)) self.assertEquals(conf_file, server.get_conf_file_name(pid_file))
server = manager.Server('container-auditor') server = manager.Server('container-auditor')
ini_file = self.join_swift_dir( conf_file = self.join_swift_dir(
'container-server/1/container-auditor.conf') 'container-server/1/container-auditor.conf')
pid_file = self.join_run_dir( pid_file = self.join_run_dir(
'container-auditor/1/container-auditor.pid') 'container-auditor/1/container-auditor.pid')
self.assertEquals(ini_file, server.get_ini_file_name(pid_file)) self.assertEquals(conf_file, server.get_conf_file_name(pid_file))
def test_ini_files(self): def test_conf_files(self):
# test get single ini file # test get single ini file
ini_files = ( conf_files = (
'proxy-server.conf', 'proxy-server.conf',
'proxy-server.ini', 'proxy-server.ini',
'auth-server.conf', 'auth-server.conf',
) )
with temptree(ini_files) as t: with temptree(conf_files) as t:
manager.SWIFT_DIR = t manager.SWIFT_DIR = t
server = manager.Server('proxy') server = manager.Server('proxy')
ini_files = server.ini_files() conf_files = server.conf_files()
self.assertEquals(len(ini_files), 1) self.assertEquals(len(conf_files), 1)
ini_file = ini_files[0] conf_file = conf_files[0]
proxy_conf = self.join_swift_dir('proxy-server.conf') proxy_conf = self.join_swift_dir('proxy-server.conf')
self.assertEquals(ini_file, proxy_conf) self.assertEquals(conf_file, proxy_conf)
# test multi server conf files & grouping of server-type config # test multi server conf files & grouping of server-type config
ini_files = ( conf_files = (
'object-server1.conf', 'object-server1.conf',
'object-server/2.conf', 'object-server/2.conf',
'object-server/object3.conf', 'object-server/object3.conf',
@@ -350,46 +350,46 @@ class TestServer(unittest.TestCase):
'object-server.txt', 'object-server.txt',
'proxy-server.conf', 'proxy-server.conf',
) )
with temptree(ini_files) as t: with temptree(conf_files) as t:
manager.SWIFT_DIR = t manager.SWIFT_DIR = t
server = manager.Server('object-replicator') server = manager.Server('object-replicator')
ini_files = server.ini_files() conf_files = server.conf_files()
self.assertEquals(len(ini_files), 4) self.assertEquals(len(conf_files), 4)
c1 = self.join_swift_dir('object-server1.conf') c1 = self.join_swift_dir('object-server1.conf')
c2 = self.join_swift_dir('object-server/2.conf') c2 = self.join_swift_dir('object-server/2.conf')
c3 = self.join_swift_dir('object-server/object3.conf') c3 = self.join_swift_dir('object-server/object3.conf')
c4 = self.join_swift_dir('object-server/conf/server4.conf') c4 = self.join_swift_dir('object-server/conf/server4.conf')
for c in [c1, c2, c3, c4]: for c in [c1, c2, c3, c4]:
self.assert_(c in ini_files) self.assert_(c in conf_files)
# test configs returned sorted # test configs returned sorted
sorted_confs = sorted([c1, c2, c3, c4]) sorted_confs = sorted([c1, c2, c3, c4])
self.assertEquals(ini_files, sorted_confs) self.assertEquals(conf_files, sorted_confs)
# test get single numbered conf # test get single numbered conf
ini_files = ( conf_files = (
'account-server/1.conf', 'account-server/1.conf',
'account-server/2.conf', 'account-server/2.conf',
'account-server/3.conf', 'account-server/3.conf',
'account-server/4.conf', 'account-server/4.conf',
) )
with temptree(ini_files) as t: with temptree(conf_files) as t:
manager.SWIFT_DIR = t manager.SWIFT_DIR = t
server = manager.Server('account') server = manager.Server('account')
ini_files = server.ini_files(number=2) conf_files = server.conf_files(number=2)
self.assertEquals(len(ini_files), 1) self.assertEquals(len(conf_files), 1)
ini_file = ini_files[0] conf_file = conf_files[0]
self.assertEquals(ini_file, self.assertEquals(conf_file,
self.join_swift_dir('account-server/2.conf')) self.join_swift_dir('account-server/2.conf'))
# test missing config number # test missing config number
ini_files = server.ini_files(number=5) conf_files = server.conf_files(number=5)
self.assertFalse(ini_files) self.assertFalse(conf_files)
# test verbose & quiet # test verbose & quiet
ini_files = ( conf_files = (
'auth-server.ini', 'auth-server.ini',
'container-server/1.conf', 'container-server/1.conf',
) )
with temptree(ini_files) as t: with temptree(conf_files) as t:
manager.SWIFT_DIR = t manager.SWIFT_DIR = t
old_stdout = sys.stdout old_stdout = sys.stdout
try: try:
@@ -397,21 +397,21 @@ class TestServer(unittest.TestCase):
sys.stdout = f sys.stdout = f
server = manager.Server('auth') server = manager.Server('auth')
# check warn "unable to locate" # check warn "unable to locate"
ini_files = server.ini_files() conf_files = server.conf_files()
self.assertFalse(ini_files) self.assertFalse(conf_files)
self.assert_('unable to locate' in pop_stream(f).lower()) self.assert_('unable to locate' in pop_stream(f).lower())
# check quiet will silence warning # check quiet will silence warning
ini_files = server.ini_files(verbose=True, quiet=True) conf_files = server.conf_files(verbose=True, quiet=True)
self.assertEquals(pop_stream(f), '') self.assertEquals(pop_stream(f), '')
# check found config no warning # check found config no warning
server = manager.Server('container-auditor') server = manager.Server('container-auditor')
ini_files = server.ini_files() conf_files = server.conf_files()
self.assertEquals(pop_stream(f), '') self.assertEquals(pop_stream(f), '')
# check missing config number warn "unable to locate" # check missing config number warn "unable to locate"
ini_files = server.ini_files(number=2) conf_files = server.conf_files(number=2)
self.assert_('unable to locate' in pop_stream(f).lower()) self.assert_('unable to locate' in pop_stream(f).lower())
# check verbose lists configs # check verbose lists configs
ini_files = server.ini_files(number=2, verbose=True) conf_files = server.conf_files(number=2, verbose=True)
c1 = self.join_swift_dir('container-server/1.conf') c1 = self.join_swift_dir('container-server/1.conf')
self.assert_(c1 in pop_stream(f)) self.assert_(c1 in pop_stream(f))
finally: finally:
@@ -457,7 +457,7 @@ class TestServer(unittest.TestCase):
self.assertEquals(pid_map, real_map) self.assertEquals(pid_map, real_map)
# test get pid_files by number # test get pid_files by number
ini_files = ( conf_files = (
'object-server/1.conf', 'object-server/1.conf',
'object-server/2.conf', 'object-server/2.conf',
'object-server/3.conf', 'object-server/3.conf',
@@ -470,7 +470,7 @@ class TestServer(unittest.TestCase):
('object-server/5.pid', 5), ('object-server/5.pid', 5),
) )
with temptree(ini_files) as swift_dir: with temptree(conf_files) as swift_dir:
manager.SWIFT_DIR = swift_dir manager.SWIFT_DIR = swift_dir
files, pids = zip(*pid_files) files, pids = zip(*pid_files)
with temptree(files, pids) as t: with temptree(files, pids) as t:
@@ -667,7 +667,7 @@ class TestServer(unittest.TestCase):
self.assert_(1 not in manager.os.pid_sigs) self.assert_(1 not in manager.os.pid_sigs)
def test_status(self): def test_status(self):
ini_files = ( conf_files = (
'test-server/1.conf', 'test-server/1.conf',
'test-server/2.conf', 'test-server/2.conf',
'test-server/3.conf', 'test-server/3.conf',
@@ -681,7 +681,7 @@ class TestServer(unittest.TestCase):
('test-server/4.pid', 4), ('test-server/4.pid', 4),
) )
with temptree(ini_files) as swift_dir: with temptree(conf_files) as swift_dir:
manager.SWIFT_DIR = swift_dir manager.SWIFT_DIR = swift_dir
files, pids = zip(*pid_files) files, pids = zip(*pid_files)
with temptree(files, pids) as t: with temptree(files, pids) as t:
@@ -706,7 +706,7 @@ class TestServer(unittest.TestCase):
self.assertEquals(len(output), 1) self.assertEquals(len(output), 1)
line = output[0] line = output[0]
self.assert_('test-server running' in line) self.assert_('test-server running' in line)
conf_four = self.join_swift_dir(ini_files[3]) conf_four = self.join_swift_dir(conf_files[3])
self.assert_('4 - %s' % conf_four in line) self.assert_('4 - %s' % conf_four in line)
# test some servers not running # test some servers not running
manager.os = MockOs([1, 2, 3]) manager.os = MockOs([1, 2, 3])
@@ -722,7 +722,7 @@ class TestServer(unittest.TestCase):
self.assertEquals(len(output), 1) self.assertEquals(len(output), 1)
line = output[0] line = output[0]
self.assert_('not running' in line) self.assert_('not running' in line)
conf_three = self.join_swift_dir(ini_files[2]) conf_three = self.join_swift_dir(conf_files[2])
self.assert_(conf_three in line) self.assert_(conf_three in line)
# test no running pids # test no running pids
manager.os = MockOs([]) manager.os = MockOs([])
@@ -991,7 +991,7 @@ class TestServer(unittest.TestCase):
def test_launch(self): def test_launch(self):
# stubs # stubs
ini_files = ( conf_files = (
'proxy-server.conf', 'proxy-server.conf',
'object-server/1.conf', 'object-server/1.conf',
'object-server/2.conf', 'object-server/2.conf',
@@ -1007,7 +1007,7 @@ class TestServer(unittest.TestCase):
class MockSpawn(): class MockSpawn():
def __init__(self, pids=None): def __init__(self, pids=None):
self.ini_files = [] self.conf_files = []
self.kwargs = [] self.kwargs = []
if not pids: if not pids:
def one_forever(): def one_forever():
@@ -1017,12 +1017,12 @@ class TestServer(unittest.TestCase):
else: else:
self.pids = (x for x in pids) self.pids = (x for x in pids)
def __call__(self, ini_file, **kwargs): def __call__(self, conf_file, **kwargs):
self.ini_files.append(ini_file) self.conf_files.append(conf_file)
self.kwargs.append(kwargs) self.kwargs.append(kwargs)
return self.pids.next() return self.pids.next()
with temptree(ini_files) as swift_dir: with temptree(conf_files) as swift_dir:
manager.SWIFT_DIR = swift_dir manager.SWIFT_DIR = swift_dir
files, pids = zip(*pid_files) files, pids = zip(*pid_files)
with temptree(files, pids) as t: with temptree(files, pids) as t:
@@ -1041,8 +1041,8 @@ class TestServer(unittest.TestCase):
self.assertFalse(server.launch()) self.assertFalse(server.launch())
output = pop_stream(f) output = pop_stream(f)
self.assert_('running' in output) self.assert_('running' in output)
ini_file = self.join_swift_dir('proxy-server.conf') conf_file = self.join_swift_dir('proxy-server.conf')
self.assert_(ini_file in output) self.assert_(conf_file in output)
pid_file = self.join_run_dir('proxy-server/2.pid') pid_file = self.join_run_dir('proxy-server/2.pid')
self.assert_(pid_file in output) self.assert_(pid_file in output)
self.assert_('already started' in output) self.assert_('already started' in output)
@@ -1051,12 +1051,12 @@ class TestServer(unittest.TestCase):
# test ignore once for non-start-once server # test ignore once for non-start-once server
mock_spawn = MockSpawn([1]) mock_spawn = MockSpawn([1])
server.spawn = mock_spawn server.spawn = mock_spawn
ini_file = self.join_swift_dir('proxy-server.conf') conf_file = self.join_swift_dir('proxy-server.conf')
expected = { expected = {
1: ini_file, 1: conf_file,
} }
self.assertEquals(server.launch(once=True), expected) self.assertEquals(server.launch(once=True), expected)
self.assertEquals(mock_spawn.ini_files, [ini_file]) self.assertEquals(mock_spawn.conf_files, [conf_file])
expected = { expected = {
'once': False, 'once': False,
} }
@@ -1079,7 +1079,7 @@ class TestServer(unittest.TestCase):
4: conf4, 4: conf4,
} }
self.assertEquals(server.launch(once=True), expected) self.assertEquals(server.launch(once=True), expected)
self.assertEquals(mock_spawn.ini_files, [conf1, conf2, self.assertEquals(mock_spawn.conf_files, [conf1, conf2,
conf3, conf4]) conf3, conf4])
expected = { expected = {
'once': True, 'once': True,
@@ -1094,7 +1094,7 @@ class TestServer(unittest.TestCase):
4: conf4, 4: conf4,
} }
self.assertEquals(server.launch(number=4), expected) self.assertEquals(server.launch(number=4), expected)
self.assertEquals(mock_spawn.ini_files, [conf4]) self.assertEquals(mock_spawn.conf_files, [conf4])
expected = { expected = {
'number': 4 'number': 4
} }
@@ -1103,7 +1103,7 @@ class TestServer(unittest.TestCase):
sys.stdout = old_stdout sys.stdout = old_stdout
def test_stop(self): def test_stop(self):
ini_files = ( conf_files = (
'account-server/1.conf', 'account-server/1.conf',
'account-server/2.conf', 'account-server/2.conf',
'account-server/3.conf', 'account-server/3.conf',
@@ -1116,7 +1116,7 @@ class TestServer(unittest.TestCase):
('account-reaper/4.pid', 4), ('account-reaper/4.pid', 4),
) )
with temptree(ini_files) as swift_dir: with temptree(conf_files) as swift_dir:
manager.SWIFT_DIR = swift_dir manager.SWIFT_DIR = swift_dir
files, pids = zip(*pid_files) files, pids = zip(*pid_files)
with temptree(files, pids) as t: with temptree(files, pids) as t: