def main(args): logging.basicConfig() # debug if args.debug: logger.setLevel(logging.DEBUG) if not args.output_path: logger.error("Please specify a filename to save the filters to.") sys.exit(0) # for now, process local directory if args.dir_path: logger.info("Analyzing all analyses in directory %s" % (args.dir_path)) # Disk disk_filter = DiskFilter() for analysis_dir in os.listdir(args.dir_path): path = os.path.join(args.dir_path, analysis_dir) logger.info("Disk Filter: Analyzing %s" % path) diff = None if not args.rerun and os.path.exists(os.path.join(path, 'disk_diff.txt')): diff = pickle.load(open(os.path.join(path, 'disk_diff.txt'), 'rb')) else: dcap_uri = os.path.join(path, "dcap") disk_analysis = DiskAnalysis(dcap_uri, args.machine_type, args.disk_img) diff = disk_analysis.run() pickle.dump(diff, open(os.path.join(path, 'disk_diff.txt'), 'wb')) if not diff: logger.error("Error processing disk analysis for %s . . . skipping!" % path) continue disk_filter.add_analysis(diff) # adjust filter if not args.noadjust: disk_filter.adjust_filter(9) # write filter to disk f = open(args.output_path+'.disk', 'w') f.write(pprint.pformat(disk_filter.occurrences_dict)) f.close()
def main(args): logging.basicConfig() # debug if args.debug: logger.setLevel(logging.DEBUG) if not args.filter_path: logger.error( "Please specify a file containing the disk filter to be applied.") sys.exit(0) # for now, process local file if args.analysis_path: logger.info("Analyzing local disk analysis file %s" % args.analysis_path) # open file f = open(args.analysis_path, 'r') results_string = f.read() f.close() # try to convert into a dict import ast results_dict = ast.literal_eval(results_string) # open the filter f = open(args.filter_path, 'r') filter_string = f.read() f.close() filter_dict = ast.literal_eval(filter_string) disk_filter = DiskFilter(filter_dict) logger.info("Read disk analysis containing %d lines" % len(results_dict.keys())) # apply the filter filtered_results_dict = disk_filter.apply_filter(results_dict, use_inodes=False) logger.info("Filtered disk analysis contains %d lines" % len(filtered_results_dict.keys())) pprint.pprint(filtered_results_dict)
def main(args): logging.basicConfig() # debug if args.debug: logger.setLevel(logging.DEBUG) if not args.filter_path: logger.error("Please specify a file containing the disk filter to be applied.") sys.exit(0) # for now, process local file if args.analysis_path: logger.info("Analyzing local disk analysis file %s" % args.analysis_path) # open file f = open(args.analysis_path, 'r') results_string = f.read() f.close() # try to convert into a dict import ast results_dict = ast.literal_eval(results_string) # open the filter f = open(args.filter_path, 'r') filter_string = f.read() f.close() filter_dict = ast.literal_eval(filter_string) disk_filter = DiskFilter(filter_dict) logger.info("Read disk analysis containing %d lines" % len(results_dict.keys())) # apply the filter filtered_results_dict = disk_filter.apply_filter(results_dict, use_inodes=False) logger.info("Filtered disk analysis contains %d lines" % len(filtered_results_dict.keys())) pprint.pprint(filtered_results_dict)
def main(args): logging.basicConfig() # debug if args.debug: logger.setLevel(logging.DEBUG) if not args.output_path: logger.error("Please specify a filename to save the filters to.") sys.exit(0) # for now, process local directory if args.dir_path: logger.info("Analyzing all analyses in directory %s" % (args.dir_path)) # Disk disk_filter = DiskFilter() for analysis_dir in os.listdir(args.dir_path): path = os.path.join(args.dir_path, analysis_dir) logger.info("Disk Filter: Analyzing %s" % path) diff = None if not args.rerun and os.path.exists( os.path.join(path, 'disk_diff.txt')): diff = pickle.load( open(os.path.join(path, 'disk_diff.txt'), 'rb')) else: dcap_uri = os.path.join(path, "dcap") disk_analysis = DiskAnalysis(dcap_uri, args.machine_type, args.disk_img) diff = disk_analysis.run() pickle.dump(diff, open(os.path.join(path, 'disk_diff.txt'), 'wb')) if not diff: logger.error( "Error processing disk analysis for %s . . . skipping!" % path) continue disk_filter.add_analysis(diff) # adjust filter if not args.noadjust: disk_filter.adjust_filter(9) # write filter to disk f = open(args.output_path + '.disk', 'w') f.write(pprint.pformat(disk_filter.occurrences_dict)) f.close()