diff --git a/main.go b/main.go index 9360b43..a857933 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( "github.com/jetstack/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1" "github.com/jetstack/cert-manager/pkg/acme/webhook/cmd" + "github.com/jetstack/cert-manager/pkg/issuer/acme/dns/util" ) var GroupName = os.Getenv("GROUP_NAME") @@ -147,7 +148,7 @@ func (c *manituDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error { body := bytes.NewBuffer(entry) // Create request - req, err = http.NewRequest("POST", "https://dnsapi.elutions-network.de/api/v1/records", body) + req, err = http.NewRequest("POST", "https://dnsapi.elutions-network.de/api/v1/zones/"+zone+"/records", body) // Headers req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", cfg.APIKey) @@ -189,7 +190,7 @@ func (c *manituDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error { // Get Zones (GET https://dnsapi.elutions-network.de/api/v1/zones) // Create client client := &http.Client{} - +/* // Create request zReq, err := http.NewRequest("GET", "https://dnsapi.elutions-network.de/api/v1/zones/"+zone, nil) // Headers @@ -230,35 +231,39 @@ func (c *manituDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error { fmt.Println("response Status : ", eResp.Status) fmt.Println("response Headers : ", eResp.Header) - fmt.Println("response Body : ", eRespBody) + fmt.Println("response Body : ", eRespBody)*/ - for _, e := range eRespBody.Records { + /*for _, e := range eRespBody.Records { + fmt.Println("Try DOMAIN: ", e) + fmt.Println(e.Type,"== TXT") + fmt.Println(e.Name,"==", name) + fmt.Println(e.Value,"==", ch.Key) if e.Type == "TXT" && e.Name == name && e.Value == ch.Key { - fmt.Println("Found DOMAIN: ", e) - // Delete Record - // Create request - req, err := http.NewRequest("DELETE", "https://dnsapi.elutions-network.de/api/v1/zones/"+zRespBody.ZoneID+"/records?host="+e.Name+"&value="+e.Value+"&type="+e.Type, nil) + fmt.Println("Found DOMAIN: ", e)*/ + // Delete Record + // Create request + req, err := http.NewRequest("DELETE", "https://dnsapi.elutions-network.de/api/v1/zones/"+zone+"/records?host="+name+"&value="+ch.Key+"&type=TXT", nil) - // Headers - req.Header.Add("Authorization", cfg.APIKey) + // Headers + req.Header.Add("Authorization", cfg.APIKey) - // Fetch Request - resp, err := client.Do(req) + // Fetch Request + resp, err := client.Do(req) - if err != nil { - fmt.Println("Failure : ", err) - } - - // Read Response Body - respBody, _ := ioutil.ReadAll(resp.Body) - - // Display Results - fmt.Println("response Status : ", resp.Status) - fmt.Println("response Headers : ", resp.Header) - fmt.Println("response Body : ", string(respBody)) - } + if err != nil { + fmt.Println("Failure : ", err) } + // Read Response Body + respBody, _ := ioutil.ReadAll(resp.Body) + + // Display Results + fmt.Println("response Status : ", resp.Status) + fmt.Println("response Headers : ", resp.Header) + fmt.Println("response Body : ", string(respBody)) + /*} + }*/ + // TODO: add code that deletes a record from the DNS provider's console return nil } @@ -293,8 +298,18 @@ func loadConfig(cfgJSON *extapi.JSON) (manituDNSProviderConfig, error) { func (c *manituDNSProviderSolver) getDomainAndEntry(ch *v1alpha1.ChallengeRequest) (string, string) { // Both ch.ResolvedZone and ch.ResolvedFQDN end with a dot: '.' - entry := strings.TrimSuffix(ch.ResolvedFQDN, ch.ResolvedZone) - entry = strings.TrimSuffix(entry, ".") - domain := strings.TrimSuffix(ch.ResolvedZone, ".") + domain := util.UnFqdn(ch.ResolvedZone) + entry := getSubDomain(domain, ch.ResolvedFQDN) + fmt.Println("ResolvedFQDN : ", ch.ResolvedFQDN) + fmt.Println("ResolvedZone : ", ch.ResolvedZone) + fmt.Println("domain : ", domain) + fmt.Println("entry : ", entry) return entry, domain } +func getSubDomain(domain, fqdn string) string { + if idx := strings.Index(fqdn, "."+domain); idx != -1 { + return fqdn[:idx] + } + + return util.UnFqdn(fqdn) +}