Пример #1
0
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()
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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()