def _prepare_full_scan(self, **kwargs): ''' Prepare full system scan by setting up the database etc. ''' # TODO: Backup the SQLite database. Backup should be restored automatically if current db failed while queried. self.db.purge() # Add ignored filesystems ignored_fs = set() ignored_fs |= set(self.IGNORE_PATHS) mounts = fsutils._get_mounts() for device, data in mounts.items(): if device in self.IGNORE_MOUNTS: for mpt in data: ignored_fs.add(mpt['mount_point']) continue for mpt in data: if mpt['type'] in self.IGNORE_FS_TYPES: ignored_fs.add(mpt['mount_point']) # Remove leafs of ignored filesystems ignored_all = list() for entry in sorted(list(ignored_fs)): valid = True for e_entry in ignored_all: if entry.startswith(e_entry): valid = False break if valid: ignored_all.append(entry) # Save to the database for further scan for ignored_dir in ignored_all: self.db.cursor.execute("INSERT INTO inspector_ignored VALUES (?)", (ignored_dir, )) # Add allowed filesystems (overrides all above at full scan) allowed = [elm for elm in kwargs.get("filter", "").split(",") if elm] for allowed_dir in allowed: self.db.cursor.execute("INSERT INTO inspector_allowed VALUES (?)", (allowed_dir, )) self.db.connection.commit() return ignored_all
def _prepare_full_scan(self, **kwargs): ''' Prepare full system scan by setting up the database etc. ''' # TODO: Backup the SQLite database. Backup should be restored automatically if current db failed while queried. self.db.purge() # Add ignored filesystems ignored_fs = set() ignored_fs |= set(self.IGNORE_PATHS) mounts = fsutils._get_mounts() for device, data in mounts.items(): if device in self.IGNORE_MOUNTS: for mpt in data: ignored_fs.add(mpt['mount_point']) continue for mpt in data: if mpt['type'] in self.IGNORE_FS_TYPES: ignored_fs.add(mpt['mount_point']) # Remove leafs of ignored filesystems ignored_all = list() for entry in sorted(list(ignored_fs)): valid = True for e_entry in ignored_all: if entry.startswith(e_entry): valid = False break if valid: ignored_all.append(entry) # Save to the database for further scan for ignored_dir in ignored_all: self.db.cursor.execute("INSERT INTO inspector_ignored VALUES (?)", (ignored_dir,)) # Add allowed filesystems (overrides all above at full scan) allowed = [elm for elm in kwargs.get("filter", "").split(",") if elm] for allowed_dir in allowed: self.db.cursor.execute("INSERT INTO inspector_allowed VALUES (?)", (allowed_dir,)) self.db.connection.commit() return ignored_all
def _prepare_full_scan(self, **kwargs): ''' Prepare full system scan by setting up the database etc. ''' self.db.open(new=True) # Add ignored filesystems ignored_fs = set() ignored_fs |= set(self.IGNORE_PATHS) mounts = fsutils._get_mounts() for device, data in mounts.items(): if device in self.IGNORE_MOUNTS: for mpt in data: ignored_fs.add(mpt['mount_point']) continue for mpt in data: if mpt['type'] in self.IGNORE_FS_TYPES: ignored_fs.add(mpt['mount_point']) # Remove leafs of ignored filesystems ignored_all = list() for entry in sorted(list(ignored_fs)): valid = True for e_entry in ignored_all: if entry.startswith(e_entry): valid = False break if valid: ignored_all.append(entry) # Save to the database for further scan for ignored_dir in ignored_all: dir_obj = IgnoredDir() dir_obj.path = ignored_dir self.db.store(dir_obj) # Add allowed filesystems (overrides all above at full scan) allowed = [elm for elm in kwargs.get("filter", "").split(",") if elm] for allowed_dir in allowed: dir_obj = AllowedDir() dir_obj.path = allowed_dir self.db.store(dir_obj) return ignored_all
def _prepare_full_scan(self, **kwargs): """ Prepare full system scan by setting up the database etc. """ self.db.open(new=True) # Add ignored filesystems ignored_fs = set() ignored_fs |= set(self.IGNORE_PATHS) mounts = fsutils._get_mounts() for device, data in mounts.items(): if device in self.IGNORE_MOUNTS: for mpt in data: ignored_fs.add(mpt["mount_point"]) continue for mpt in data: if mpt["type"] in self.IGNORE_FS_TYPES: ignored_fs.add(mpt["mount_point"]) # Remove leafs of ignored filesystems ignored_all = list() for entry in sorted(list(ignored_fs)): valid = True for e_entry in ignored_all: if entry.startswith(e_entry): valid = False break if valid: ignored_all.append(entry) # Save to the database for further scan for ignored_dir in ignored_all: dir_obj = IgnoredDir() dir_obj.path = ignored_dir self.db.store(dir_obj) # Add allowed filesystems (overrides all above at full scan) allowed = [elm for elm in kwargs.get("filter", "").split(",") if elm] for allowed_dir in allowed: dir_obj = AllowedDir() dir_obj.path = allowed_dir self.db.store(dir_obj) return ignored_all