code: def get_axfr_records(self, server, domains):
          
          zones = []
          for zoneName in domains:
              try:
                  zone = {
                      'zone_id': get_resource_id('axfrz', zoneName),
                      'name': zoneName,
                      'source': 'AXFR',
                      'comment': None,
                      'tags': {},
                      'records': []
                  }
  
                  z = dns_zone.from_xfr(query.xfr(server, zoneName))
                  rdata_fields = ('name', 'ttl', 'rdata')
                  for rr in [dict(zip(rdata_fields, x)) for x in z.iterate_rdatas()]:
                      record_name = rr['name'].derelativize(z.origin).to_text()
                      zone['records'].append(
                      {
                          'id': get_resource_id('axfrr', record_name, ['{}={}'.format(k, str(v)) for k, v in rr.items()]),
                          'zone_id': zone['zone_id'],
                          'name': record_name,
                          'value': sorted([rr['rdata'].to_text()]),
                          'type': type_to_text(rr['rdata'].rdtype)
                      })
  
                  if len(zone['records']) > 0:
                      zones.append(zone)
  
              except Exception as ex:
                  self.log.exception('Failed fetching DNS zone information for {}: {}'.format(zoneName, ex))
                  raise
  
          return zones
docs: Return a `list` of `dict`s containing the zones and their records, obtained from the DNS server
  
          Returns:
              :obj:`list` of `dict`