Fix keeping order on process update

This commit is contained in:
Ingo Oppermann 2023-05-03 10:50:33 +02:00
parent d97a2709d8
commit 6759ebc950
No known key found for this signature in database
GPG Key ID: 2AB32426E9DD229E
2 changed files with 52 additions and 1 deletions

View File

@ -1041,6 +1041,8 @@ func (r *restream) UpdateProcess(id string, config *app.Config) error {
}
}
t.process.Order = task.process.Order
if err := r.stopProcess(id); err != nil {
return err
}
@ -1053,7 +1055,6 @@ func (r *restream) UpdateProcess(id string, config *app.Config) error {
//t.process.CreatedAt = task.process.CreatedAt
t.process.UpdatedAt = time.Now().Unix()
task.parser.TransferReportHistory(t.parser)
t.process.Order = task.process.Order
r.tasks[t.id] = t

View File

@ -256,6 +256,56 @@ func TestUpdateProcess(t *testing.T) {
require.NotEqual(t, updatedAt, process.UpdatedAt)
}
func TestUpdateProcessLogHistoryTransfer(t *testing.T) {
rs, err := getDummyRestreamer(nil, nil, nil, nil)
require.NoError(t, err)
p := getDummyProcess()
require.NotNil(t, p)
p.ID = "process1"
err = rs.AddProcess(p)
require.Equal(t, nil, err)
rs.StartProcess(p.ID)
require.Eventually(t, func() bool {
state, _ := rs.GetProcessState(p.ID)
return state.State == "running"
}, 10*time.Second, time.Second)
log, err := rs.GetProcessLog(p.ID)
require.NoError(t, err)
require.Equal(t, 0, len(log.History))
p = getDummyProcess()
require.NotNil(t, p)
p.ID = "process2"
err = rs.UpdateProcess("process1", p)
require.NoError(t, err)
_, err = rs.GetProcess(p.ID)
require.NoError(t, err)
state, _ := rs.GetProcessState(p.ID)
require.Equal(t, "start", state.Order)
require.Eventually(t, func() bool {
state, _ := rs.GetProcessState(p.ID)
return state.State == "running"
}, 10*time.Second, time.Second)
log, err = rs.GetProcessLog(p.ID)
require.NoError(t, err)
require.Equal(t, 1, len(log.History))
err = rs.StopProcess(p.ID)
require.NoError(t, err)
}
func TestGetProcess(t *testing.T) {
rs, err := getDummyRestreamer(nil, nil, nil, nil)
require.NoError(t, err)