dnscontrol/providers/cnr/domains.go

44 lines
1.1 KiB
Go

package cnr
// EnsureZoneExists returns an error
// * if access to dnszone is not allowed (not authorized) or
// * if it doesn't exist and creating it fails
func (n *Client) EnsureZoneExists(domain string) error {
command := map[string]interface{}{
"COMMAND": "AddDNSZone",
"DNSZONE": domain,
}
if n.APIEntity == "OTE" {
command["SOATTL"] = "33200"
command["SOASERIAL"] = "0000000000"
}
// Create the zone
r := n.client.Request(command)
if r.GetCode() == 549 || r.IsSuccess() {
return nil
}
return n.GetAPIError("Failed to create not existing zone ", domain, r)
}
// ListZones lists all the
func (n *Client) ListZones() ([]string, error) {
var zones []string
// Basic
rs := n.client.RequestAllResponsePages(map[string]string{
"COMMAND": "QueryDNSZoneList",
})
for _, r := range rs {
if r.IsError() {
return nil, n.GetAPIError("Error while QueryDNSZoneList", "Basic", &r)
}
zoneColumn := r.GetColumn("DNSZONE")
if zoneColumn != nil {
// return nil, fmt.Errorf("failed getting DNSZONE BASIC column")
zones = append(zones, zoneColumn.GetData()...)
}
}
return zones, nil
}