Skip to content

Commit abc0807

Browse files
committed
Merge pull request #715 from aboch/st
Some functions' logic cleanup
2 parents 08fc0fc + 6f451b2 commit abc0807

3 files changed

Lines changed: 14 additions & 23 deletions

File tree

endpoint.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ func (ep *endpoint) rename(name string) error {
471471
// benign error. Besides there is no meaningful recovery that
472472
// we can do. When the cluster recovers subsequent EpCnt update
473473
// will force the peers to get the correct EP name.
474-
_ = n.getEpCnt().updateStore()
474+
n.getEpCnt().updateStore()
475475

476476
return err
477477
}

endpoint_cnt.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,18 @@ func (ec *endpointCnt) EndpointCnt() uint64 {
109109
}
110110

111111
func (ec *endpointCnt) updateStore() error {
112-
retry:
113112
store := ec.n.getController().getStore(ec.DataScope())
114113
if store == nil {
115-
return fmt.Errorf("store not found for scope %s", ec.DataScope())
114+
return fmt.Errorf("store not found for scope %s on endpoint count update", ec.DataScope())
116115
}
117-
118-
if err := ec.n.getController().updateToStore(ec); err != nil {
119-
if err == datastore.ErrKeyModified {
120-
if err := store.GetObject(datastore.Key(ec.Key()...), ec); err != nil {
121-
return fmt.Errorf("could not update the kvobject to latest on rename: %v", err)
122-
}
123-
goto retry
116+
for {
117+
if err := ec.n.getController().updateToStore(ec); err == nil || err != datastore.ErrKeyModified {
118+
return err
119+
}
120+
if err := store.GetObject(datastore.Key(ec.Key()...), ec); err != nil {
121+
return fmt.Errorf("could not update the kvobject to latest on endpoint count update: %v", err)
124122
}
125-
return err
126123
}
127-
return nil
128124
}
129125

130126
func (ec *endpointCnt) atomicIncDecEpCnt(inc bool) error {

sandbox.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,6 @@ func (sb *sandbox) Delete() error {
205205

206206
func (sb *sandbox) Rename(name string) error {
207207
var err error
208-
undo := []func(){}
209208

210209
for _, ep := range sb.getConnectedEndpoints() {
211210
if ep.endpointInGWNetwork() {
@@ -217,18 +216,14 @@ func (sb *sandbox) Rename(name string) error {
217216
if err = ep.rename(name); err != nil {
218217
break
219218
}
220-
undo = append(undo,
221-
func() {
222-
// Ignore the error while undoing
223-
_ = lEp.rename(oldName)
224-
})
225-
}
226219

227-
if err != nil {
228-
for _, f := range undo {
229-
f()
230-
}
220+
defer func() {
221+
if err != nil {
222+
lEp.rename(oldName)
223+
}
224+
}()
231225
}
226+
232227
return err
233228
}
234229

0 commit comments

Comments
 (0)