def print_access_layer_rule()

in Azure Firewall/Script - Migrate Checkpoint config to Azure Firewall Policy/chkp2azfw.py [0:0]


def print_access_layer_rule(layer_list, rule_id_list, debug=False):
    for layer in layer_list:
        if log_level >= 7:
            print('{0:<40}{1:<40}{2:<40}{3:<40}{4:<40}'.format('Name', 'Action', 'Source', 'Destination', 'Service'), file=sys.stderr)
        for rule in layer:
            # Check rule is a dictionary and contains a type key
            if isinstance(rule, dict) and 'type' in rule:
                if rule['type'] == 'access-rule' and rule['uid'] in rule_id_list:
                    # Rule Name
                    rule_name = rule['name'] if len(rule['name']) <= 38 else rule['name'][:38]
                    # action/src/dst/svc object Members
                    rule_action_members_str = str(find_members(policy_objects, rule['action'], member_list=[])[0])
                    rule_src_members = find_members(policy_objects, rule['source'], member_list=[], mode='ip', debug=debug)
                    rule_src_members_str = str(rule_src_members) if len(str(rule_src_members)) <= 38 else str(rule_src_members)[:38]
                    rule_dst_members = find_members(policy_objects, rule['destination'], member_list=[], mode='ip', debug=debug)
                    rule_dst_members_str = str(rule_dst_members) if len(str(rule_dst_members)) <= 38 else str(rule_dst_members)[:38]
                    rule_svc_members = find_members(policy_objects, rule['service'], member_list=[], mode='svc', debug=debug)
                    rule_svc_members_str = str(rule_svc_members) if len(str(rule_svc_members)) <= 38 else str(rule_svc_members)[:38]
                    # Print
                    if log_level >= 7:
                        print('{0:<40}{1:<40}{2:<40}{3:<40}{4:<40}'.format(rule_name, rule_action_members_str, rule_src_members_str, rule_dst_members_str, rule_svc_members_str), file=sys.stderr)