// getDnsZones returns the DNS zones matching dnsZoneName and dnsZoneID (if specified) func getDnsZones(dnsZoneName string, dnsZoneID string, dnsZonesInterface dnsprovider.Zones) ([]dnsprovider.Zone, error) { // TODO: We need query-by-name and query-by-id functions dnsZones, err := dnsZonesInterface.List() if err != nil { return nil, err } var matches []dnsprovider.Zone findName := strings.TrimSuffix(dnsZoneName, ".") for _, dnsZone := range dnsZones { if dnsZoneID != "" { if dnsZoneID != dnsZone.ID() { continue } } if findName != "" { if strings.TrimSuffix(dnsZone.Name(), ".") != findName { continue } } matches = append(matches, dnsZone) } return matches, nil }
// getDnsZone is a hack around the fact that dnsprovider does not yet support a Get() method, only a List() method. TODO: Fix that. func getDnsZone(dnsZoneName string, dnsZonesInterface dnsprovider.Zones) (dnsprovider.Zone, error) { dnsZones, err := dnsZonesInterface.List() if err != nil { return nil, err } for _, dnsZone := range dnsZones { if dnsZone.Name() == dnsZoneName { return dnsZone, nil } } return nil, fmt.Errorf("DNS zone %s not found.", dnsZoneName) }
// getDnsZone returns the zone, as identified by zoneName func getDnsZone(dnsZoneName string, dnsZonesInterface dnsprovider.Zones) (dnsprovider.Zone, error) { // TODO: We need query-by-name and query-by-id functions dnsZones, err := dnsZonesInterface.List() if err != nil { return nil, err } findName := strings.TrimSuffix(dnsZoneName, ".") for _, dnsZone := range dnsZones { if findName != "" { if strings.TrimSuffix(dnsZone.Name(), ".") == findName { return dnsZone, nil } } } return nil, fmt.Errorf("DNS zone %s not found.", dnsZoneName) }