github.com/teknogeek/dnscontrol@v0.2.8/providers/hexonet/domains.go (about)

     1  package hexonet
     2  
     3  //EnsureDomainExists returns an error
     4  // * if access to dnszone is not allowed (not authorized) or
     5  // * if it doesn't exist and creating it fails
     6  func (n *HXClient) EnsureDomainExists(domain string) error {
     7  	r := n.client.Request(map[string]string{
     8  		"COMMAND": "StatusDNSZone",
     9  		"DNSZONE": domain + ".",
    10  	})
    11  	code := r.Code()
    12  	if code == 545 {
    13  		r = n.client.Request(map[string]string{
    14  			"COMMAND": "CreateDNSZone",
    15  			"DNSZONE": domain + ".",
    16  		})
    17  		if !r.IsSuccess() {
    18  			return n.GetHXApiError("Failed to create not existing zone for domain", domain, r)
    19  		}
    20  	} else if code == 531 {
    21  		return n.GetHXApiError("Not authorized to manage dnszone", domain, r)
    22  	} else if r.IsError() || r.IsError() {
    23  		return n.GetHXApiError("Error while checking status of dnszone", domain, r)
    24  	}
    25  	return nil
    26  }