preserve worker last_seen on sparse updates
(cherry picked from commit c4f85ebbae065c007a1d879989eb0162dd026b49)
This commit is contained in:
parent
3083b541df
commit
37ef939532
|
|
@ -104,7 +104,9 @@ func (controller *Controller) updateWorker(ctx *gin.Context) responder.Responder
|
||||||
return responder.Error(err)
|
return responder.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
dbWorker.LastSeen = userWorker.LastSeen
|
if !userWorker.LastSeen.IsZero() {
|
||||||
|
dbWorker.LastSeen = userWorker.LastSeen
|
||||||
|
}
|
||||||
dbWorker.SchedulingPaused = userWorker.SchedulingPaused
|
dbWorker.SchedulingPaused = userWorker.SchedulingPaused
|
||||||
|
|
||||||
if err := txn.SetWorker(*dbWorker); err != nil {
|
if err := txn.SetWorker(*dbWorker); err != nil {
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,41 @@ func TestPortForwarding(t *testing.T) {
|
||||||
require.Contains(t, string(unameOutput), cases.Title(language.English).String(runtime.GOOS))
|
require.Contains(t, string(unameOutput), cases.Title(language.English).String(runtime.GOOS))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSparseWorkerUpdatePreservesLastSeen(t *testing.T) {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
devClient, _, _ := devcontroller.StartIntegrationTestEnvironmentWithAdditionalOpts(
|
||||||
|
t,
|
||||||
|
false,
|
||||||
|
nil,
|
||||||
|
true,
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
|
||||||
|
lastSeen := time.Now().Add(-time.Minute).UTC().Truncate(time.Microsecond)
|
||||||
|
_, err := devClient.Workers().Create(ctx, v1.Worker{
|
||||||
|
Meta: v1.Meta{
|
||||||
|
Name: "sparse-update-worker",
|
||||||
|
},
|
||||||
|
LastSeen: lastSeen,
|
||||||
|
MachineID: "sparse-update-machine",
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
_, err = devClient.Workers().Update(ctx, v1.Worker{
|
||||||
|
Meta: v1.Meta{
|
||||||
|
Name: "sparse-update-worker",
|
||||||
|
},
|
||||||
|
SchedulingPaused: true,
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
worker, err := devClient.Workers().Get(ctx, "sparse-update-worker")
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, lastSeen, worker.LastSeen)
|
||||||
|
require.True(t, worker.SchedulingPaused)
|
||||||
|
}
|
||||||
|
|
||||||
// TestSchedulerHealthCheckingNonExistentWorker ensures that scheduler
|
// TestSchedulerHealthCheckingNonExistentWorker ensures that scheduler
|
||||||
// will eventually fail VMs that are scheduled on a worker that was
|
// will eventually fail VMs that are scheduled on a worker that was
|
||||||
// deleted from the API.
|
// deleted from the API.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue