fix: use try with locks code

This commit is contained in:
adobdin 2016-04-29 06:41:32 +00:00
parent 9e4eab4727
commit 339ca95161
2 changed files with 32 additions and 29 deletions

View File

@ -95,14 +95,16 @@ def main(argv=None):
lf = '/tmp/timmy-logs.lock'
lock = flock.FLock(lf)
if lock.lock():
n.get_node_file_list()
n.calculate_log_size()
if n.is_enough_space(config.archives):
n.create_log_archives(config.archives,
config.compress_timeout,
maxthreads=args.logs_maxthreads,
fake=args.fake_logs)
lock.unlock()
try:
n.get_node_file_list()
n.calculate_log_size()
if n.is_enough_space(config.archives):
n.create_log_archives(config.archives,
config.compress_timeout,
maxthreads=args.logs_maxthreads,
fake=args.fake_logs)
finally:
lock.unlock()
else:
logging.warning('Unable to obtain lock %s, skipping "logs"-part' % lf)
logging.info("Nodes:\n%s" % n)

View File

@ -548,15 +548,17 @@ class Nodes(object):
if not lock.lock():
logging.warning('Unable to obtain lock, skipping "cmds"-part')
return ''
label = ckey
run_items = []
for node in [n for n in self.nodes.values() if self.exec_filter(n)]:
run_items.append(RunItem(target=node.exec_cmd,
args={'label': label,
'odir': odir,
'fake': fake}))
run_batch(run_items, 100)
lock.unlock()
try:
label = ckey
run_items = []
for node in [n for n in self.nodes.values() if self.exec_filter(n)]:
run_items.append(RunItem(target=node.exec_cmd,
args={'label': label,
'odir': odir,
'fake': fake}))
run_batch(run_items, 100)
finally:
lock.unlock()
def calculate_log_size(self, timeout=15):
lsize = 0
@ -623,10 +625,7 @@ class Nodes(object):
return
txtfl = []
speed = self.find_adm_interface_speed(speed)
if len(self.nodes) > maxthreads:
speed = int(speed * 0.9 / maxthreads)
else:
speed = int(speed * 0.9 / len(self.nodes))
speed = int(speed * 0.9 / min(maxthreads, len(self.nodes)))
pythonslowpipe = slowpipe % speed
run_items = []
for node in [n for n in self.nodes.values() if self.exec_filter(n)]:
@ -669,14 +668,16 @@ class Nodes(object):
if not lock.lock():
logging.warning('Unable to obtain lock, skipping "files"-part')
return ''
label = fkey
run_items = []
for node in [n for n in self.nodes.values() if self.exec_filter(n)]:
run_items.append(RunItem(target=node.get_files,
args={'label': label,
'odir': odir}))
run_batch(run_items, 10)
lock.unlock()
try:
label = fkey
run_items = []
for node in [n for n in self.nodes.values() if self.exec_filter(n)]:
run_items.append(RunItem(target=node.get_files,
args={'label': label,
'odir': odir}))
run_batch(run_items, 10)
finally:
lock.unlock()
def main(argv=None):