first version

This commit is contained in:
Jay
2019-05-03 17:17:44 +08:00
parent 8a536a37d0
commit ce2eb1257f
12 changed files with 636 additions and 6 deletions
+48 -2
View File
@@ -102,13 +102,19 @@ func QueryDomain(name []string) ([]*ZoneData, error) {
}
// GetRecord -
func GetRecord(id *string, names []string) (*[]route53.ResourceRecordSet, error) {
func GetRecord(id *string, names []string) ([]*route53.ResourceRecordSet, error) {
if id == nil {
return nil, errors.New("no id input")
}
if len(names) == 0 {
return nil, errors.New("no record names")
}
records := make([]string, 0)
for _, v := range names {
if len(v) > 0 {
records = append(records, v)
}
}
input := &route53.ListResourceRecordSetsInput{}
input.SetHostedZoneId(*id)
@@ -116,6 +122,46 @@ func GetRecord(id *string, names []string) (*[]route53.ResourceRecordSet, error)
if err != nil {
return nil, err
}
if len(resOut.ResourceRecordSets) == 0 {
return nil, errors.New("no record sets")
}
return nil, nil
sets := make([]*route53.ResourceRecordSet, 0)
for _, it := range resOut.ResourceRecordSets {
for _, name := range records {
if *it.Name == name {
sets = append(sets, it)
}
}
}
return sets, nil
}
// UpdateRecord -
func UpdateRecord(zoneID *string, sets []*route53.ResourceRecordSet) error {
if len(sets) == 0 {
return errors.New("no change set input")
}
changeSets := make([]*route53.Change, 0)
for _, v := range sets {
changeSets = append(changeSets, &route53.Change{
ResourceRecordSet: v,
Action: aws.String("UPSERT"),
})
}
changeInput := &route53.ChangeResourceRecordSetsInput{
HostedZoneId: zoneID,
ChangeBatch: &route53.ChangeBatch{
Changes: changeSets,
},
}
_, err := client.R53.ChangeResourceRecordSets(changeInput)
if err != nil {
return err
}
return nil
}