def __init__(self, folder, files, callback, extensions=["log"], tail_lines=0):
        self.files_map = {}
        self.callback = callback
        #self.folder = os.path.realpath(folder)
        self.extensions = extensions

	self.filenames = files
	self.folder = folder

        assert os.path.isdir(self.folder), "%s does not exists" \
                                            % self.folder
        assert callable(callback)
        self.update_files()
        # The first time we run the script we move all file markers at EOF.
        # In case of files created afterwards we don't do this.
        for id, file in self.files_map.iteritems():
            file.seek(os.path.getsize(file.name))  # EOF
            if tail_lines:
                lines = self.tail(file.name, tail_lines)
                if lines:
                    self.callback(file.name, lines)
Find string values in job_configs which are uuids.
dataset/ETHPy150Open sensepost/Snoopy/snoopy/server/bin/pytail_helper.py/LogWatcher.__init__--crossover with--dataset/ETHPy150Open openstack/sahara/sahara/service/edp/job_utils.py/find_possible_data_source_refs_by_uuid