mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-01-11 18:08:57 +08:00
27 lines
813 B
Go
27 lines
813 B
Go
|
package hexonet
|
||
|
|
||
|
//EnsureDomainExists returns an error
|
||
|
// * if access to dnszone is not allowed (not authorized) or
|
||
|
// * if it doesn't exist and creating it fails
|
||
|
func (n *HXClient) EnsureDomainExists(domain string) error {
|
||
|
r := n.client.Request(map[string]string{
|
||
|
"COMMAND": "StatusDNSZone",
|
||
|
"DNSZONE": domain + ".",
|
||
|
})
|
||
|
code := r.Code()
|
||
|
if code == 545 {
|
||
|
r = n.client.Request(map[string]string{
|
||
|
"COMMAND": "CreateDNSZone",
|
||
|
"DNSZONE": domain + ".",
|
||
|
})
|
||
|
if !r.IsSuccess() {
|
||
|
return n.GetHXApiError("Failed to create not existing zone for domain", domain, r)
|
||
|
}
|
||
|
} else if code == 531 {
|
||
|
return n.GetHXApiError("Not authorized to manage dnszone", domain, r)
|
||
|
} else if r.IsError() || r.IsError() {
|
||
|
return n.GetHXApiError("Error while checking status of dnszone", domain, r)
|
||
|
}
|
||
|
return nil
|
||
|
}
|