def inspect_nat_layers()

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


def inspect_nat_layers(layer_list):
    for layer in layer_list:
        print('{0:<5}{1:<20}{2:<20}{3:<20}{4:<20}{5:<20}{6:<20}'.format('ID', 'Original Src', 'Translated Src', 'Original Dst', 'Translated Dst', 'Original Svc', 'Translated Svc'), 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'] == 'nat-rule':
                    if log_level >= 7:
                        # Rule ID
                        rule_id = rule['rule-number']
                        # src/dst/svc object Members
                        rule_osrc_members = find_members(policy_objects, rule['original-source'], member_list=[], mode='ip')
                        rule_osrc_members_str = str(rule_osrc_members) if len(str(rule_osrc_members)) <= 38 else str(rule_osrc_members)[:38]
                        rule_tsrc_members = find_members(policy_objects, rule['translated-source'], member_list=[], mode='ip')
                        rule_tsrc_members_str = str(rule_tsrc_members) if len(str(rule_tsrc_members)) <= 38 else str(rule_tsrc_members)[:38]
                        rule_odst_members = find_members(policy_objects, rule['original-destination'], member_list=[], mode='ip')
                        rule_odst_members_str = str(rule_odst_members) if len(str(rule_odst_members)) <= 38 else str(rule_odst_members)[:38]
                        rule_tdst_members = find_members(policy_objects, rule['translated-destination'], member_list=[], mode='ip')
                        rule_tdst_members_str = str(rule_tdst_members) if len(str(rule_tdst_members)) <= 38 else str(rule_tdst_members)[:38]
                        rule_osvc_members = find_members(policy_objects, rule['original-service'], member_list=[], mode='svc')
                        rule_osvc_members_str = str(rule_osvc_members) if len(str(rule_osvc_members)) <= 38 else str(rule_osvc_members)[:38]
                        rule_tsvc_members = find_members(policy_objects, rule['translated-service'], member_list=[], mode='svc')
                        rule_tsvc_members_str = str(rule_tsvc_members) if len(str(rule_tsvc_members)) <= 38 else str(rule_tsvc_members)[:38]
                        # Print
                        print('{0:<5}{1:<20}{2:<20}{3:<20}{4:<20}{5:<20}{6:<20}'.format(rule_id, rule_osrc_members_str, rule_tsrc_members_str, rule_odst_members_str, rule_tdst_members_str, rule_osvc_members_str, rule_tsvc_members_str), file=sys.stderr)
                else:
                    if log_level >= 7:
                        print('DEBUG: ignoring rule of type', rule['type'])
            else:
                print('ERROR: Rule is not a dictionary or does not contain a type key:', str(rule))