first version
This commit is contained in:
+48
-2
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user