Skip to content

Commit 99e7cea

Browse files
authored
Merge create and update shadow to one action (#311)
1 parent d35ad92 commit 99e7cea

File tree

2 files changed

+15
-21
lines changed

2 files changed

+15
-21
lines changed

service/node.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,12 @@ func (n *NodeServiceImpl) Create(tx interface{}, namespace string, node *specV1.
121121
return nil, err
122122
}
123123

124-
shadow, err := n.Shadow.Create(tx, models.NewShadowFromNode(res))
125-
if err != nil {
126-
return nil, err
127-
}
128-
129124
_, err = n.SysAppService.GenApps(tx, namespace, node)
130125
if err != nil {
131126
return nil, err
132127
}
133128

134-
if err = n.updateNodeAndAppIndex(tx, namespace, res, shadow); err != nil {
129+
if err = n.insertOrUpdateNodeAndAppIndex(tx, namespace, res, models.NewShadowFromNode(res), true); err != nil {
135130
return nil, err
136131
}
137132
return res, err
@@ -154,7 +149,7 @@ func (n *NodeServiceImpl) Update(namespace string, node *specV1.Node) (*specV1.N
154149
return nil, err
155150
}
156151

157-
if err = n.updateNodeAndAppIndex(nil, namespace, res, shadow); err != nil {
152+
if err = n.insertOrUpdateNodeAndAppIndex(nil, namespace, res, shadow, false); err != nil {
158153
return nil, err
159154
}
160155
return res, nil
@@ -363,7 +358,7 @@ func (n *NodeServiceImpl) GetDesire(namespace, name string) (*specV1.Desire, err
363358
return &shadow.Desire, nil
364359
}
365360

366-
func (n *NodeServiceImpl) updateNodeAndAppIndex(tx interface{}, namespace string, node *specV1.Node, shadow *models.Shadow) error {
361+
func (n *NodeServiceImpl) insertOrUpdateNodeAndAppIndex(tx interface{}, namespace string, node *specV1.Node, shadow *models.Shadow, flag bool) error {
367362
apps, err := n.app.ListApplication(tx, namespace, &models.ListOptions{})
368363
if err != nil {
369364
log.L().Error("list application error", log.Error(err))
@@ -374,9 +369,16 @@ func (n *NodeServiceImpl) updateNodeAndAppIndex(tx interface{}, namespace string
374369

375370
node.Desire = desire
376371

377-
if _, err = n.updateDesire(tx, shadow, desire); err != nil {
378-
log.L().Error("update node desired node failed", log.Error(err))
379-
return err
372+
if flag {
373+
shadow.Desire = desire
374+
if _, err = n.Shadow.Create(tx, shadow); err != nil {
375+
return err
376+
}
377+
} else {
378+
if _, err = n.updateDesire(tx, shadow, desire); err != nil {
379+
log.L().Error("update node desired node failed", log.Error(err))
380+
return err
381+
}
380382
}
381383

382384
if err = n.indexService.RefreshAppsIndexByNode(tx, namespace, node.Name, appNames); err != nil {

service/node_test.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ func TestDefaultNodeService_Create(t *testing.T) {
152152
app: mockObject.app,
153153
}
154154
node := genNodeTestCase()
155-
shadow := genShadowTestCase()
156155
apps := &models.ApplicationList{
157156
Items: []models.AppItem{
158157
{Namespace: node.Namespace, Name: "app01", Version: "1", Selector: "test=example"},
@@ -169,13 +168,6 @@ func TestDefaultNodeService_Create(t *testing.T) {
169168
assert.NotNil(t, err)
170169

171170
mockObject.node.EXPECT().CreateNode(nil, node.Namespace, node).Return(node, nil).AnyTimes()
172-
mockObject.shadow.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil, fmt.Errorf("error"))
173-
_, err = ns.Create(nil, node.Namespace, node)
174-
assert.NotNil(t, err)
175-
176-
mockObject.shadow.EXPECT().Create(gomock.Any(), gomock.Any()).Return(shadow, nil).AnyTimes()
177-
mockObject.shadow.EXPECT().Get(gomock.Any(), gomock.Any(), gomock.Any()).Return(shadow, nil).AnyTimes()
178-
179171
mockSysAppService.EXPECT().GenApps(nil, node.Namespace, gomock.Any()).Return(nil, fmt.Errorf("error"))
180172
_, err = ns.Create(nil, node.Namespace, node)
181173
assert.NotNil(t, err)
@@ -186,11 +178,11 @@ func TestDefaultNodeService_Create(t *testing.T) {
186178
assert.NotNil(t, err)
187179

188180
mockObject.app.EXPECT().ListApplication(nil, node.Namespace, gomock.Any()).Return(apps, nil).AnyTimes()
189-
mockObject.shadow.EXPECT().UpdateDesire(gomock.Any(), gomock.Any()).Return(nil, fmt.Errorf("error"))
181+
mockObject.shadow.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil, fmt.Errorf("error"))
190182
_, err = ns.Create(nil, node.Namespace, node)
191183
assert.NotNil(t, err)
192184

193-
mockObject.shadow.EXPECT().UpdateDesire(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()
185+
mockObject.shadow.EXPECT().Create(gomock.Any(), gomock.Any()).Return(nil, nil).AnyTimes()
194186
mockIndexService.EXPECT().RefreshAppsIndexByNode(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(fmt.Errorf("error"))
195187
_, err = ns.Create(nil, node.Namespace, node)
196188
assert.NotNil(t, err)

0 commit comments

Comments
 (0)