Skip to content

Commit 713e7d3

Browse files
authored
fix(api): worker model migration should not set need registration (#5196)
1 parent afff946 commit 713e7d3

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
lines changed

engine/api/workermodel/crud.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"strings"
7+
"time"
78

89
"github.com/go-gorp/gorp"
910

@@ -104,6 +105,13 @@ func Update(ctx context.Context, db gorp.SqlExecutor, old *sdk.Model, data sdk.M
104105
model := sdk.Model(*old)
105106
model.Update(data)
106107

108+
// model need to be register when modified
109+
model.UserLastModified = time.Now()
110+
model.NeedRegistration = true
111+
model.NbSpawnErr = 0
112+
model.LastSpawnErr = nil
113+
model.LastSpawnErrLogs = nil
114+
107115
// update model in db
108116
if err := UpdateDB(ctx, db, &model); err != nil {
109117
return nil, sdk.WrapError(err, "cannot update worker model")

engine/api/workermodel/crud_test.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ func TestUpdateModel(t *testing.T) {
131131
cpy.GroupID = g2.ID
132132
res, err = workermodel.Update(context.TODO(), db, res, cpy)
133133
require.Error(t, err)
134-
135134
}
136135

137136
// create a worker model aaa
@@ -363,3 +362,37 @@ func TestCopyModelTypeData_OldRestricted(t *testing.T) {
363362
PatternName: "my-pattern",
364363
}))
365364
}
365+
366+
func TestUpdateModel_NeedRegister(t *testing.T) {
367+
db, store, end := test.SetupPG(t, bootstrap.InitiliazeDB)
368+
defer end()
369+
370+
g := assets.InsertTestGroup(t, db, sdk.RandomString(10))
371+
372+
u, _ := assets.InsertLambdaUser(t, db)
373+
374+
name := sdk.RandomString(10)
375+
m, err := workermodel.Create(context.TODO(), db, sdk.Model{
376+
Type: sdk.Docker,
377+
Name: name,
378+
GroupID: g.ID,
379+
ModelDocker: sdk.ModelDocker{},
380+
}, u)
381+
require.NoError(t, err)
382+
require.NoError(t, workermodel.UpdateRegistration(context.TODO(), db, store, m.ID))
383+
384+
m, err = workermodel.LoadByID(context.TODO(), db, m.ID)
385+
require.NoError(t, err)
386+
require.False(t, m.NeedRegistration)
387+
require.True(t, m.LastRegistration.After(m.UserLastModified))
388+
389+
mUpdated, err := workermodel.Update(context.TODO(), db, m, sdk.Model{
390+
Type: sdk.Docker,
391+
Name: name,
392+
GroupID: g.ID,
393+
ModelDocker: sdk.ModelDocker{},
394+
})
395+
require.NoError(t, err)
396+
require.True(t, mUpdated.NeedRegistration)
397+
require.True(t, mUpdated.UserLastModified.After(m.LastRegistration))
398+
}

engine/api/workermodel/dao.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,12 +232,6 @@ func UpdateDB(ctx context.Context, db gorp.SqlExecutor, model *sdk.Model) error
232232
return err
233233
}
234234

235-
dbmodel.UserLastModified = time.Now()
236-
dbmodel.NeedRegistration = true
237-
dbmodel.NbSpawnErr = 0
238-
dbmodel.LastSpawnErr = nil
239-
dbmodel.LastSpawnErrLogs = nil
240-
241235
needSaveRegistryPassword, dockerRegistryPassword, err := replaceDockerRegistryPassword(db, &dbmodel)
242236
if err != nil {
243237
return err

0 commit comments

Comments
 (0)