Skip to content

Commit

Permalink
Merge pull request #77 from akamai/dns_maint
Browse files Browse the repository at this point in the history
Dns maint
  • Loading branch information
edglynes authored Apr 13, 2020
2 parents 4f8db83 + cb7db7f commit 42e7b27
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 4 deletions.
16 changes: 16 additions & 0 deletions configdns-v2/record.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package dnsv2

import (
"github.com/akamai/AkamaiOPEN-edgegrid-golang/client-v1"
edge "github.com/akamai/AkamaiOPEN-edgegrid-golang/edgegrid"

"sync"
)
Expand Down Expand Up @@ -90,6 +91,9 @@ func (record *RecordBody) Save(zone string) error {
if err != nil {
return err
}

edge.PrintHttpRequest(req, true)

res, err := client.Do(Config, req)

// Network error
Expand All @@ -101,6 +105,8 @@ func (record *RecordBody) Save(zone string) error {
}
}

edge.PrintHttpResponse(res, true)

// API error
if client.IsError(res) {
err := client.NewAPIError(res)
Expand Down Expand Up @@ -128,6 +134,9 @@ func (record *RecordBody) Update(zone string) error {
if err != nil {
return err
}

edge.PrintHttpRequest(req, true)

res, err := client.Do(Config, req)

// Network error
Expand All @@ -139,6 +148,8 @@ func (record *RecordBody) Update(zone string) error {
}
}

edge.PrintHttpResponse(res, true)

// API error
if client.IsError(res) {
err := client.NewAPIError(res)
Expand All @@ -165,6 +176,9 @@ func (record *RecordBody) Delete(zone string) error {
if err != nil {
return err
}

edge.PrintHttpRequest(req, true)

res, err := client.Do(Config, req)

// Network error
Expand All @@ -176,6 +190,8 @@ func (record *RecordBody) Delete(zone string) error {
}
}

edge.PrintHttpResponse(res, true)

// API error
if client.IsError(res) {
err := client.NewAPIError(res)
Expand Down
41 changes: 37 additions & 4 deletions configdns-v2/record_lookup.go
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,24 @@ func GetRdata(zone string, name string, record_type string) ([]string, error) {
return rdata, nil
}

func ProcessRdata(rdata []string, rtype string) []string {

newrdata := make([]string, 0, len(rdata))
for _, i := range rdata {
str := i
if rtype == "AAAA" {
addr := net.ParseIP(str)
result := FullIPv6(addr)
str = result
} else if rtype == "LOC" {
str = PadCoordinates(str)
}
newrdata = append(newrdata, str)
}
return newrdata

}

// Utility method to parse RData in context of type. Return map of fields and values
func ParseRData(rtype string, rdata []string) map[string]interface{} {

Expand All @@ -309,6 +327,7 @@ func ParseRData(rtype string, rdata []string) map[string]interface{} {
return fieldMap
}
newrdata := make([]string, 0, len(rdata))
fieldMap["target"] = newrdata

switch rtype {
case "AFSDB":
Expand Down Expand Up @@ -358,7 +377,6 @@ func ParseRData(rtype string, rdata []string) map[string]interface{} {

case "HINFO":
for _, rcontent := range rdata {
rcontent = strings.ReplaceAll(rcontent, "\"", "\\\"")
parts := strings.Split(rcontent, " ")
fieldMap["hardware"] = parts[0]
fieldMap["software"] = parts[1]
Expand All @@ -383,7 +401,6 @@ func ParseRData(rtype string, rdata []string) map[string]interface{} {

case "NAPTR":
for _, rcontent := range rdata {
rcontent = strings.ReplaceAll(rcontent, "\"", "\\\"")
parts := strings.Split(rcontent, " ")
fieldMap["order"], _ = strconv.Atoi(parts[0])
fieldMap["preference"], _ = strconv.Atoi(parts[1])
Expand Down Expand Up @@ -492,18 +509,34 @@ func ParseRData(rtype string, rdata []string) map[string]interface{} {

case "SPF":
for _, rcontent := range rdata {
rcontent = strings.ReplaceAll(rcontent, "\"", "\\\"")
newrdata = append(newrdata, rcontent)
}
fieldMap["target"] = newrdata

case "TXT":
for _, rcontent := range rdata {
rcontent = strings.ReplaceAll(rcontent, "\"", "\\\"")
newrdata = append(newrdata, rcontent)
}
fieldMap["target"] = newrdata

case "AAAA":
for _, i := range rdata {
str := i
addr := net.ParseIP(str)
result := FullIPv6(addr)
str = result
newrdata = append(newrdata, str)
}
fieldMap["target"] = newrdata

case "LOC":
for _, i := range rdata {
str := i
str = PadCoordinates(str)
newrdata = append(newrdata, str)
}
fieldMap["target"] = newrdata

default:
for _, rcontent := range rdata {
newrdata = append(newrdata, rcontent)
Expand Down

0 comments on commit 42e7b27

Please sign in to comment.