Skip to content

Commit 3488a51

Browse files
[management] Move increment network serial as last step of each transaction (#4397)
1 parent 5e273c1 commit 3488a51

File tree

9 files changed

+61
-56
lines changed

9 files changed

+61
-56
lines changed

management/server/account.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,13 +342,17 @@ func (am *DefaultAccountManager) UpdateAccountSettings(ctx context.Context, acco
342342
}
343343
}
344344

345+
if err = transaction.SaveAccountSettings(ctx, accountID, newSettings); err != nil {
346+
return err
347+
}
348+
345349
if updateAccountPeers || groupsUpdated {
346350
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
347351
return err
348352
}
349353
}
350354

351-
return transaction.SaveAccountSettings(ctx, accountID, newSettings)
355+
return nil
352356
})
353357
if err != nil {
354358
return nil, err

management/server/dns.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ func (am *DefaultAccountManager) SaveDNSSettings(ctx context.Context, accountID
113113
events := am.prepareDNSSettingsEvents(ctx, transaction, accountID, userID, addedGroups, removedGroups)
114114
eventsToStore = append(eventsToStore, events...)
115115

116-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
116+
if err = transaction.SaveDNSSettings(ctx, accountID, dnsSettingsToSave); err != nil {
117117
return err
118118
}
119119

120-
return transaction.SaveDNSSettings(ctx, accountID, dnsSettingsToSave)
120+
return transaction.IncrementNetworkSerial(ctx, accountID)
121121
})
122122
if err != nil {
123123
return err

management/server/group.go

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,6 @@ func (am *DefaultAccountManager) CreateGroup(ctx context.Context, accountID, use
9393
return err
9494
}
9595

96-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
97-
return err
98-
}
99-
10096
if err := transaction.CreateGroup(ctx, newGroup); err != nil {
10197
return status.Errorf(status.Internal, "failed to create group: %v", err)
10298
}
@@ -106,7 +102,8 @@ func (am *DefaultAccountManager) CreateGroup(ctx context.Context, accountID, use
106102
return status.Errorf(status.Internal, "failed to add peer %s to group %s: %v", peerID, newGroup.ID, err)
107103
}
108104
}
109-
return nil
105+
106+
return transaction.IncrementNetworkSerial(ctx, accountID)
110107
})
111108
if err != nil {
112109
return err
@@ -170,11 +167,11 @@ func (am *DefaultAccountManager) UpdateGroup(ctx context.Context, accountID, use
170167
return err
171168
}
172169

173-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
170+
if err = transaction.UpdateGroup(ctx, newGroup); err != nil {
174171
return err
175172
}
176173

177-
return transaction.UpdateGroup(ctx, newGroup)
174+
return transaction.IncrementNetworkSerial(ctx, accountID)
178175
})
179176
if err != nil {
180177
return err
@@ -228,11 +225,11 @@ func (am *DefaultAccountManager) CreateGroups(ctx context.Context, accountID, us
228225
return err
229226
}
230227

231-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
228+
if err = transaction.CreateGroups(ctx, accountID, groupsToSave); err != nil {
232229
return err
233230
}
234231

235-
return transaction.CreateGroups(ctx, accountID, groupsToSave)
232+
return transaction.IncrementNetworkSerial(ctx, accountID)
236233
})
237234
if err != nil {
238235
return err
@@ -286,11 +283,11 @@ func (am *DefaultAccountManager) UpdateGroups(ctx context.Context, accountID, us
286283
return err
287284
}
288285

289-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
286+
if err = transaction.UpdateGroups(ctx, accountID, groupsToSave); err != nil {
290287
return err
291288
}
292289

293-
return transaction.UpdateGroups(ctx, accountID, groupsToSave)
290+
return transaction.IncrementNetworkSerial(ctx, accountID)
294291
})
295292
if err != nil {
296293
return err
@@ -415,11 +412,11 @@ func (am *DefaultAccountManager) DeleteGroups(ctx context.Context, accountID, us
415412
deletedGroups = append(deletedGroups, group)
416413
}
417414

418-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
415+
if err = transaction.DeleteGroups(ctx, accountID, groupIDsToDelete); err != nil {
419416
return err
420417
}
421418

422-
return transaction.DeleteGroups(ctx, accountID, groupIDsToDelete)
419+
return transaction.IncrementNetworkSerial(ctx, accountID)
423420
})
424421
if err != nil {
425422
return err
@@ -443,11 +440,11 @@ func (am *DefaultAccountManager) GroupAddPeer(ctx context.Context, accountID, gr
443440
return err
444441
}
445442

446-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
443+
if err = transaction.AddPeerToGroup(ctx, accountID, peerID, groupID); err != nil {
447444
return err
448445
}
449446

450-
return transaction.AddPeerToGroup(ctx, accountID, peerID, groupID)
447+
return transaction.IncrementNetworkSerial(ctx, accountID)
451448
})
452449
if err != nil {
453450
return err
@@ -481,11 +478,11 @@ func (am *DefaultAccountManager) GroupAddResource(ctx context.Context, accountID
481478
return err
482479
}
483480

484-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
481+
if err = transaction.UpdateGroup(ctx, group); err != nil {
485482
return err
486483
}
487484

488-
return transaction.UpdateGroup(ctx, group)
485+
return transaction.IncrementNetworkSerial(ctx, accountID)
489486
})
490487
if err != nil {
491488
return err
@@ -509,11 +506,11 @@ func (am *DefaultAccountManager) GroupDeletePeer(ctx context.Context, accountID,
509506
return err
510507
}
511508

512-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
509+
if err = transaction.RemovePeerFromGroup(ctx, peerID, groupID); err != nil {
513510
return err
514511
}
515512

516-
return transaction.RemovePeerFromGroup(ctx, peerID, groupID)
513+
return transaction.IncrementNetworkSerial(ctx, accountID)
517514
})
518515
if err != nil {
519516
return err
@@ -547,11 +544,11 @@ func (am *DefaultAccountManager) GroupDeleteResource(ctx context.Context, accoun
547544
return err
548545
}
549546

550-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
547+
if err = transaction.UpdateGroup(ctx, group); err != nil {
551548
return err
552549
}
553550

554-
return transaction.UpdateGroup(ctx, group)
551+
return transaction.IncrementNetworkSerial(ctx, accountID)
555552
})
556553
if err != nil {
557554
return err

management/server/nameserver.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ func (am *DefaultAccountManager) CreateNameServerGroup(ctx context.Context, acco
7070
return err
7171
}
7272

73-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
73+
if err = transaction.SaveNameServerGroup(ctx, newNSGroup); err != nil {
7474
return err
7575
}
7676

77-
return transaction.SaveNameServerGroup(ctx, newNSGroup)
77+
return transaction.IncrementNetworkSerial(ctx, accountID)
7878
})
7979
if err != nil {
8080
return nil, err
@@ -121,11 +121,11 @@ func (am *DefaultAccountManager) SaveNameServerGroup(ctx context.Context, accoun
121121
return err
122122
}
123123

124-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
124+
if err = transaction.SaveNameServerGroup(ctx, nsGroupToSave); err != nil {
125125
return err
126126
}
127127

128-
return transaction.SaveNameServerGroup(ctx, nsGroupToSave)
128+
return transaction.IncrementNetworkSerial(ctx, accountID)
129129
})
130130
if err != nil {
131131
return err
@@ -164,11 +164,11 @@ func (am *DefaultAccountManager) DeleteNameServerGroup(ctx context.Context, acco
164164
return err
165165
}
166166

167-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
167+
if err = transaction.DeleteNameServerGroup(ctx, accountID, nsGroupID); err != nil {
168168
return err
169169
}
170170

171-
return transaction.DeleteNameServerGroup(ctx, accountID, nsGroupID)
171+
return transaction.IncrementNetworkSerial(ctx, accountID)
172172
})
173173
if err != nil {
174174
return err

management/server/networks/manager.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,15 @@ func (m *managerImpl) DeleteNetwork(ctx context.Context, accountID, userID, netw
158158
return fmt.Errorf("failed to delete network: %w", err)
159159
}
160160

161+
eventsToStore = append(eventsToStore, func() {
162+
m.accountManager.StoreEvent(ctx, userID, networkID, accountID, activity.NetworkDeleted, network.EventMeta())
163+
})
164+
161165
err = transaction.IncrementNetworkSerial(ctx, accountID)
162166
if err != nil {
163167
return fmt.Errorf("failed to increment network serial: %w", err)
164168
}
165169

166-
eventsToStore = append(eventsToStore, func() {
167-
m.accountManager.StoreEvent(ctx, userID, networkID, accountID, activity.NetworkDeleted, network.EventMeta())
168-
})
169-
170170
return nil
171171
})
172172
if err != nil {

management/server/peer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ func (am *DefaultAccountManager) DeletePeer(ctx context.Context, accountID, peer
354354
var eventsToStore []func()
355355

356356
err = am.Store.ExecuteInTransaction(ctx, func(transaction store.Store) error {
357-
peer, err = transaction.GetPeerByID(ctx, store.LockingStrengthUpdate, accountID, peerID)
357+
peer, err = transaction.GetPeerByID(ctx, store.LockingStrengthNone, accountID, peerID)
358358
if err != nil {
359359
return err
360360
}
@@ -1527,7 +1527,7 @@ func deletePeers(ctx context.Context, am *DefaultAccountManager, transaction sto
15271527
}
15281528
dnsDomain := am.GetDNSDomain(settings)
15291529

1530-
network, err := transaction.GetAccountNetwork(ctx, store.LockingStrengthShare, accountID)
1530+
network, err := transaction.GetAccountNetwork(ctx, store.LockingStrengthNone, accountID)
15311531
if err != nil {
15321532
return nil, err
15331533
}

management/server/policy.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,17 @@ func (am *DefaultAccountManager) SavePolicy(ctx context.Context, accountID, user
5858
return err
5959
}
6060

61-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
62-
return err
63-
}
64-
6561
saveFunc := transaction.CreatePolicy
6662
if isUpdate {
6763
action = activity.PolicyUpdated
6864
saveFunc = transaction.SavePolicy
6965
}
7066

71-
return saveFunc(ctx, policy)
67+
if err = saveFunc(ctx, policy); err != nil {
68+
return err
69+
}
70+
71+
return transaction.IncrementNetworkSerial(ctx, accountID)
7272
})
7373
if err != nil {
7474
return nil, err
@@ -107,11 +107,11 @@ func (am *DefaultAccountManager) DeletePolicy(ctx context.Context, accountID, po
107107
return err
108108
}
109109

110-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
110+
if err = transaction.DeletePolicy(ctx, accountID, policyID); err != nil {
111111
return err
112112
}
113113

114-
return transaction.DeletePolicy(ctx, accountID, policyID)
114+
return transaction.IncrementNetworkSerial(ctx, accountID)
115115
})
116116
if err != nil {
117117
return err

management/server/posture_checks.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,19 @@ func (am *DefaultAccountManager) SavePostureChecks(ctx context.Context, accountI
5959
return err
6060
}
6161

62-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
63-
return err
64-
}
65-
6662
action = activity.PostureCheckUpdated
6763
}
6864

6965
postureChecks.AccountID = accountID
70-
return transaction.SavePostureChecks(ctx, postureChecks)
66+
if err = transaction.SavePostureChecks(ctx, postureChecks); err != nil {
67+
return err
68+
}
69+
70+
if isUpdate {
71+
return transaction.IncrementNetworkSerial(ctx, accountID)
72+
}
73+
74+
return nil
7175
})
7276
if err != nil {
7377
return nil, err
@@ -104,11 +108,11 @@ func (am *DefaultAccountManager) DeletePostureChecks(ctx context.Context, accoun
104108
return err
105109
}
106110

107-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
111+
if err = transaction.DeletePostureChecks(ctx, accountID, postureChecksID); err != nil {
108112
return err
109113
}
110114

111-
return transaction.DeletePostureChecks(ctx, accountID, postureChecksID)
115+
return transaction.IncrementNetworkSerial(ctx, accountID)
112116
})
113117
if err != nil {
114118
return err

management/server/route.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,11 @@ func (am *DefaultAccountManager) CreateRoute(ctx context.Context, accountID stri
179179
return err
180180
}
181181

182-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
182+
if err = transaction.SaveRoute(ctx, newRoute); err != nil {
183183
return err
184184
}
185185

186-
return transaction.SaveRoute(ctx, newRoute)
186+
return transaction.IncrementNetworkSerial(ctx, accountID)
187187
})
188188
if err != nil {
189189
return nil, err
@@ -233,11 +233,11 @@ func (am *DefaultAccountManager) SaveRoute(ctx context.Context, accountID, userI
233233
}
234234
routeToSave.AccountID = accountID
235235

236-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
236+
if err = transaction.SaveRoute(ctx, routeToSave); err != nil {
237237
return err
238238
}
239239

240-
return transaction.SaveRoute(ctx, routeToSave)
240+
return transaction.IncrementNetworkSerial(ctx, accountID)
241241
})
242242
if err != nil {
243243
return err
@@ -276,11 +276,11 @@ func (am *DefaultAccountManager) DeleteRoute(ctx context.Context, accountID stri
276276
return err
277277
}
278278

279-
if err = transaction.IncrementNetworkSerial(ctx, accountID); err != nil {
279+
if err = transaction.DeleteRoute(ctx, accountID, string(routeID)); err != nil {
280280
return err
281281
}
282282

283-
return transaction.DeleteRoute(ctx, accountID, string(routeID))
283+
return transaction.IncrementNetworkSerial(ctx, accountID)
284284
})
285285
if err != nil {
286286
return fmt.Errorf("failed to delete route %s: %w", routeID, err)

0 commit comments

Comments
 (0)