File tree 1 file changed +28
-1
lines changed
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(
126
126
domainName string ,
127
127
nameServers map [string ]string ,
128
128
) error {
129
+ logger := logging .GetLogger ()
129
130
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
131
150
for nameServer , ipAddress := range nameServers {
132
151
key := fmt .Sprintf (
133
152
"domain_%s_nameserver_%s" ,
@@ -137,6 +156,14 @@ func (s *State) UpdateDomain(
137
156
if err := txn .Set ([]byte (key ), []byte (ipAddress )); err != nil {
138
157
return err
139
158
}
159
+ logger .Debug (
160
+ fmt .Sprintf (
161
+ "added record for domain %s: %s: %s" ,
162
+ domainName ,
163
+ nameServer ,
164
+ ipAddress ,
165
+ ),
166
+ )
140
167
}
141
168
return nil
142
169
})
You can’t perform that action at this time.
0 commit comments