X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lttng_ivc%2Futils%2FProjectFactory.py;h=f45b786c921dbd0be985d44e3618ee4157b7bc4b;hb=cb87ff891c9968115d151a54e93695da0ac4df02;hp=5daba558e17006ec24e512f6a600d6b3c667231b;hpb=494bd6b94202022e56b3615636966cf51230bb75;p=deliverable%2Flttng-ivc.git diff --git a/lttng_ivc/utils/ProjectFactory.py b/lttng_ivc/utils/ProjectFactory.py index 5daba55..f45b786 100644 --- a/lttng_ivc/utils/ProjectFactory.py +++ b/lttng_ivc/utils/ProjectFactory.py @@ -6,6 +6,7 @@ import pickle import lttng_ivc.utils.project as Project import lttng_ivc.settings as Settings +from lttng_ivc.utils.utils import sha256_checksum _logger = logging.getLogger('project.factory') _project_constructor = { @@ -17,6 +18,8 @@ _project_constructor = { __projects_cache = {} +_project_py_checksum = sha256_checksum(Settings.project_py_file_location) + _markers = None with open(Settings.run_configuration_file, 'r') as stream: # This is voluntary static across calls, no need to perform this @@ -38,10 +41,15 @@ def get_fresh(label, tmpdir): def _validate_pickle(pickle, label): _logger.debug("Checking validate for {} {}".format(pickle, - label)) + label)) + if pickle._py_file_checksum != _project_py_checksum: + _logger.warn("Project py file changed".format(pickle.label, + label)) + return False + if pickle.label != label: _logger.warn("Label {} and {} are not the same".format(pickle.label, - label)) + label)) return False if pickle.sha1 != _markers[label]['sha1']: _logger.warn("Sha1 {} and {} are not the same".format(pickle.sha1,