MCPcopy Create free account
hub / github.com/barnybug/cli53 / createRecords

Function createRecords

commands.go:603–660  ·  view source on GitHub ↗
(ctx context.Context, args createArgs)

Source from the content-addressed store, hash-verified

601}
602
603func createRecords(ctx context.Context, args createArgs) {
604 zone := lookupZone(ctx, args.name)
605 records := parseRecordList(args.records, zone)
606 expandSelfAliases(records, zone)
607
608 grouped := groupRecords(records)
609
610 var existing []*route53types.ResourceRecordSet
611 if args.replace || args.append {
612 var err error
613 existing, err = ListAllRecordSets(ctx, r53, *zone.Id)
614 fatalIfErr(err)
615 }
616
617 additions := []route53types.Change{}
618 deletions := []route53types.Change{}
619 for _, values := range grouped {
620 rrset := ConvertBindToRRSet(values)
621 args.applyRRSetParams(rrset)
622
623 addChange := route53types.Change{
624 Action: route53types.ChangeActionCreate,
625 ResourceRecordSet: rrset,
626 }
627 additions = append(additions, addChange)
628
629 if args.replace || args.append {
630 // add DELETE if there is an existing record
631 for _, candidate := range existing {
632 if equalCaseInsensitiveStringPtrs(rrset.Name, candidate.Name) &&
633 rrset.Type == candidate.Type &&
634 equalStringPtrs(rrset.SetIdentifier, candidate.SetIdentifier) {
635 change := route53types.Change{
636 Action: route53types.ChangeActionDelete,
637 ResourceRecordSet: candidate,
638 }
639 deletions = append(deletions, change)
640
641 if args.append {
642 additions[len(additions)-1].ResourceRecordSet.ResourceRecords = append(additions[len(additions)-1].ResourceRecordSet.ResourceRecords, candidate.ResourceRecords...)
643 }
644 break
645 }
646 }
647 }
648 }
649
650 resp := batchChanges(ctx, additions, deletions, zone)
651
652 for _, record := range records {
653 txt := strings.Replace(record.String(), "\t", " ", -1)
654 fmt.Printf("Created record: '%s'\n", txt)
655 }
656
657 if args.wait {
658 waitForChange(ctx, resp.ChangeInfo)
659 }
660}

Callers 1

MainFunction · 0.85

Calls 13

lookupZoneFunction · 0.85
parseRecordListFunction · 0.85
expandSelfAliasesFunction · 0.85
groupRecordsFunction · 0.85
ListAllRecordSetsFunction · 0.85
ConvertBindToRRSetFunction · 0.85
equalStringPtrsFunction · 0.85
batchChangesFunction · 0.85
waitForChangeFunction · 0.85
applyRRSetParamsMethod · 0.80
fatalIfErrFunction · 0.70

Tested by

no test coverage detected