File tree Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -126,8 +126,27 @@ func (s *State) UpdateDomain(
126126 domainName string ,
127127 nameServers map [string ]string ,
128128) error {
129+ logger := logging .GetLogger ()
129130 err := s .db .Update (func (txn * badger.Txn ) error {
130- // TODO: find any existing keys for domain and delete
131+ // Delete old records for domain
132+ keyPrefix := []byte (fmt .Sprintf ("domain_%s_" , domainName ))
133+ it := txn .NewIterator (badger .DefaultIteratorOptions )
134+ defer it .Close ()
135+ for it .Seek (keyPrefix ); it .ValidForPrefix (keyPrefix ); it .Next () {
136+ item := it .Item ()
137+ k := item .Key ()
138+ if err := txn .Delete (k ); err != nil {
139+ return err
140+ }
141+ logger .Debug (
142+ fmt .Sprintf (
143+ "deleted record for domain %s with key: %s" ,
144+ domainName ,
145+ k ,
146+ ),
147+ )
148+ }
149+ // Add new records
131150 for nameServer , ipAddress := range nameServers {
132151 key := fmt .Sprintf (
133152 "domain_%s_nameserver_%s" ,
@@ -137,6 +156,14 @@ func (s *State) UpdateDomain(
137156 if err := txn .Set ([]byte (key ), []byte (ipAddress )); err != nil {
138157 return err
139158 }
159+ logger .Debug (
160+ fmt .Sprintf (
161+ "added record for domain %s: %s: %s" ,
162+ domainName ,
163+ nameServer ,
164+ ipAddress ,
165+ ),
166+ )
140167 }
141168 return nil
142169 })
You can’t perform that action at this time.
0 commit comments