X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=lttng_ivc%2Futils%2Futils.py;h=ec8d75b7cae87949fcb4cd4fbb9b4301bc2a396d;hb=bde0c5403b98eb937494cfa22a16aed165213eb0;hp=aedb1fdb3c0ae62a0dd68ee531d608fbfaff3fa2;hpb=a028c28a2f3faa29dda3b58ab64831e2cf3ef40e;p=deliverable%2Flttng-ivc.git diff --git a/lttng_ivc/utils/utils.py b/lttng_ivc/utils/utils.py index aedb1fd..ec8d75b 100644 --- a/lttng_ivc/utils/utils.py +++ b/lttng_ivc/utils/utils.py @@ -1,4 +1,7 @@ import signal +import hashlib +import os +import time def line_count(file_path): line_count = 0 @@ -8,13 +11,43 @@ def line_count(file_path): return line_count +def sha256_checksum(filename, block_size=65536): + sha256 = hashlib.sha256() + with open(filename, 'rb') as f: + for block in iter(lambda: f.read(block_size), b''): + sha256.update(block) + return sha256.hexdigest() + + +# TODO: timeout as a parameter or Settings +# TODO: Custom exception +def wait_for_file(path): + i = 0 + timeout = 60 + while not os.path.exists(path): + time.sleep(1) + i = i + 1 + if i > timeout: + raise Exception("File still does not exists. Timeout expired") + + +# TODO: find better exception +def create_empty_file(path): + if os.path.exists(path): + raise Exception("Path already exist") + open(path, 'w').close() + + def __dummy_sigusr1_handler(): pass def sessiond_spawn(runtime): - previous_handler = signal.signal(signal.SIGUSR1, __dummy_sigusr1_handler) - sessiond = runtime.spawn_subprocess("lttng-sessiond -vvv -S") - signal.sigtimedwait({signal.SIGUSR1}, 60) - previous_handler = signal.signal(signal.SIGUSR1, previous_handler) - return sessiond + previous_handler = signal.signal(signal.SIGUSR1, __dummy_sigusr1_handler) + sessiond = runtime.spawn_subprocess("lttng-sessiond -vvv -S") + signal.sigtimedwait({signal.SIGUSR1}, 60) + previous_handler = signal.signal(signal.SIGUSR1, previous_handler) + return sessiond + + +