Exemple #1
0
def diff_json():
    description = textwrap.dedent("""Calculate differences between two rule sets (sources) and write to file""")
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument('--old_policies_path', required=True)
    parser.add_argument('--old_prefix_path', required=True)
    parser.add_argument('--old_apps_dir', required=True)
    parser.add_argument('--new_policies_path', required=True)
    parser.add_argument('--new_prefix_path', required=True)
    parser.add_argument('--new_apps_dir', required=True)
    parser.add_argument('--output_path', required=True)

    args = parser.parse_args(sys.argv[1:])

    diff_path_pickle = args.output_path + '.pickle'
    diff_path_json = args.output_path + '.json'

    # all_apps_old = scripts.run(args.old_policies_path, args.old_prefix_path, args.old_apps_dir)
    # all_apps_new = scripts.run(args.new_policies_path, args.new_prefix_path, args.new_apps_dir)

    process.close_and_join_process_pool()

    policy_diff = diff_json_module.make_diff(args.old_apps_dir, args.new_apps_dir)
    policy_diff_jsonable = massage_to_jsonable(policy_diff)

    with open(diff_path_pickle, "wb") as f:
        pickle.dump(policy_diff, f)

    with open(diff_path_json, "wb") as f:
        json.dump(policy_diff_jsonable, f, indent=4)

    diff_json_module.close_and_join_diff_pool()
def test_diff2():
    test_dir = os.path.join(data_dir, 'diff_test2')

    old_policy_dir = os.path.join(test_dir, 'old_policy')
    old_globals_path = os.path.join(old_policy_dir, 'old_prefix.json')
    old_rules_path = os.path.join(old_policy_dir, 'old_rules.json')
    old_apps_dir = os.path.join(old_policy_dir, 'apps')
    ensure_dir(old_apps_dir)

    new_policy_dir = os.path.join(test_dir, 'new_policy')
    new_globals_path = os.path.join(new_policy_dir, 'new_prefix.json')
    new_rules_path = os.path.join(new_policy_dir, 'new_rules.json')
    new_apps_dir = os.path.join(new_policy_dir, 'apps')
    ensure_dir(new_apps_dir)

    diff_path_pickle = os.path.join(test_dir, 'diff/diff2.pickle')
    diff_path_json = os.path.join(test_dir, 'diff/diff2.json')

    all_apps_old = scripts.run(old_rules_path, old_globals_path, old_apps_dir)
    all_apps_new = scripts.run(new_rules_path, new_globals_path, new_apps_dir)

    policy_diff = diff.make_diff(old_apps_dir, new_apps_dir)
    with open(diff_path_pickle, 'wb') as f:
        pickle.dump(policy_diff, f)

    policy_jsonable = massage_to_jsonable(policy_diff)
    with open(diff_path_json, 'wb') as f:
        json.dump(policy_jsonable, f, indent=4)

    eq_(gen_diff_diff2_expect, policy_diff)