From 9ed6b6d931419c65f6c515d34e72eb569e359ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 2 Jun 2022 12:17:54 +0200 Subject: [PATCH] Manager: adjust code for `WorkerStatusChangeRequest` extraction See preceeding OpenAPI change. --- internal/manager/api_impl/worker_mgt.go | 10 ++-- internal/manager/api_impl/worker_mgt_test.go | 52 ++++++++++--------- internal/manager/api_impl/workers.go | 3 -- internal/manager/api_impl/workers_test.go | 26 +++++----- internal/manager/webupdates/worker_updates.go | 6 ++- 5 files changed, 50 insertions(+), 47 deletions(-) diff --git a/internal/manager/api_impl/worker_mgt.go b/internal/manager/api_impl/worker_mgt.go index 1681edca..87612e4e 100644 --- a/internal/manager/api_impl/worker_mgt.go +++ b/internal/manager/api_impl/worker_mgt.go @@ -84,12 +84,12 @@ func (f *Flamenco) RequestWorkerStatusChange(e echo.Context, workerUUID string) // Store the status change. logger = logger.With(). Str("status", string(dbWorker.Status)). - Str("requested", string(change.StatusRequested)). + Str("requested", string(change.Status)). Bool("lazy", change.IsLazy). Logger() logger.Info().Msg("worker status change requested") - dbWorker.StatusRequested = change.StatusRequested + dbWorker.StatusRequested = change.Status dbWorker.LazyStatusRequest = change.IsLazy if err := f.persist.SaveWorker(e.Request().Context(), dbWorker); err != nil { logger.Error().Err(err).Msg("error saving worker after status change request") @@ -111,8 +111,10 @@ func workerSummary(w persistence.Worker) api.WorkerSummary { Version: w.Software, } if w.StatusRequested != "" { - summary.StatusRequested = &w.StatusRequested - summary.LazyStatusRequest = &w.LazyStatusRequest + summary.StatusChange = &api.WorkerStatusChangeRequest{ + Status: w.StatusRequested, + IsLazy: w.LazyStatusRequest, + } } return summary } diff --git a/internal/manager/api_impl/worker_mgt_test.go b/internal/manager/api_impl/worker_mgt_test.go index ab182cfc..19f383be 100644 --- a/internal/manager/api_impl/worker_mgt_test.go +++ b/internal/manager/api_impl/worker_mgt_test.go @@ -38,18 +38,20 @@ func TestFetchWorkers(t *testing.T) { workers := api.WorkerList{ Workers: []api.WorkerSummary{ { - Id: worker1.UUID, - Nickname: worker1.Name, - Status: worker1.Status, - StatusRequested: nil, - Version: worker1.Software, + Id: worker1.UUID, + Nickname: worker1.Name, + Status: worker1.Status, + Version: worker1.Software, }, { - Id: worker2.UUID, - Nickname: worker2.Name, - Status: worker2.Status, - StatusRequested: &worker2.StatusRequested, - Version: worker2.Software, + Id: worker2.UUID, + Nickname: worker2.Name, + Status: worker2.Status, + Version: worker2.Software, + StatusChange: &api.WorkerStatusChangeRequest{ + Status: worker2.StatusRequested, + IsLazy: false, + }, }, }, } @@ -110,11 +112,11 @@ func TestFetchWorker(t *testing.T) { assert.NoError(t, err) assertResponseJSON(t, echo, http.StatusOK, api.Worker{ WorkerSummary: api.WorkerSummary{ - Id: workerUUID, - Nickname: "дрон", - Version: "3.0", - Status: api.WorkerStatusAwake, - StatusRequested: &requestedStatus, + Id: workerUUID, + Nickname: "дрон", + Version: "3.0", + Status: api.WorkerStatusAwake, + StatusChange: &api.WorkerStatusChangeRequest{Status: requestedStatus}, }, IpAddress: "fe80::5054:ff:fede:2ad7", Platform: "linux", @@ -141,18 +143,20 @@ func TestRequestWorkerStatusChange(t *testing.T) { // Expect a broadcast of the change mf.broadcaster.EXPECT().BroadcastWorkerUpdate(api.SocketIOWorkerUpdate{ - Id: worker.UUID, - Nickname: worker.Name, - Status: prevStatus, - StatusRequested: &requestStatus, - LazyStatusRequest: ptr(true), - Updated: worker.UpdatedAt, - Version: worker.Software, + Id: worker.UUID, + Nickname: worker.Name, + Status: prevStatus, + Updated: worker.UpdatedAt, + Version: worker.Software, + StatusChange: &api.WorkerStatusChangeRequest{ + Status: requestStatus, + IsLazy: true, + }, }) echo := mf.prepareMockedJSONRequest(api.WorkerStatusChangeRequest{ - StatusRequested: requestStatus, - IsLazy: true, + Status: requestStatus, + IsLazy: true, }) err := mf.flamenco.RequestWorkerStatusChange(echo, workerUUID) assert.NoError(t, err) diff --git a/internal/manager/api_impl/workers.go b/internal/manager/api_impl/workers.go index e5ee4ecb..6b2d5bd1 100644 --- a/internal/manager/api_impl/workers.go +++ b/internal/manager/api_impl/workers.go @@ -94,9 +94,6 @@ func (f *Flamenco) SignOn(e echo.Context) error { if prevStatus != "" { update.PreviousStatus = &prevStatus } - if w.StatusRequested != "" { - update.StatusRequested = &w.StatusRequested - } f.broadcaster.BroadcastWorkerUpdate(update) resp := api.WorkerStateChange{} diff --git a/internal/manager/api_impl/workers_test.go b/internal/manager/api_impl/workers_test.go index f0e18b81..54a95188 100644 --- a/internal/manager/api_impl/workers_test.go +++ b/internal/manager/api_impl/workers_test.go @@ -99,13 +99,12 @@ func TestWorkerSignOn(t *testing.T) { prevStatus := worker.Status mf.broadcaster.EXPECT().BroadcastWorkerUpdate(api.SocketIOWorkerUpdate{ - Id: worker.UUID, - Nickname: "Lazy Boi", - PreviousStatus: &prevStatus, - Status: api.WorkerStatusStarting, - StatusRequested: nil, - Updated: worker.UpdatedAt, - Version: "3.0-testing", + Id: worker.UUID, + Nickname: "Lazy Boi", + PreviousStatus: &prevStatus, + Status: api.WorkerStatusStarting, + Updated: worker.UpdatedAt, + Version: "3.0-testing", }) mf.persistence.EXPECT().SaveWorker(gomock.Any(), &worker).Return(nil) @@ -206,13 +205,12 @@ func TestWorkerStateChanged(t *testing.T) { // Expect a broadcast of the change mf.broadcaster.EXPECT().BroadcastWorkerUpdate(api.SocketIOWorkerUpdate{ - Id: worker.UUID, - Nickname: worker.Name, - PreviousStatus: &prevStatus, - Status: api.WorkerStatusAwake, - StatusRequested: nil, - Updated: worker.UpdatedAt, - Version: worker.Software, + Id: worker.UUID, + Nickname: worker.Name, + PreviousStatus: &prevStatus, + Status: api.WorkerStatusAwake, + Updated: worker.UpdatedAt, + Version: worker.Software, }) // Expect the Worker to be saved with the new status diff --git a/internal/manager/webupdates/worker_updates.go b/internal/manager/webupdates/worker_updates.go index 85f10b7c..c93eb01f 100644 --- a/internal/manager/webupdates/worker_updates.go +++ b/internal/manager/webupdates/worker_updates.go @@ -22,8 +22,10 @@ func NewWorkerUpdate(worker *persistence.Worker) api.SocketIOWorkerUpdate { } if worker.StatusRequested != "" { - workerUpdate.StatusRequested = &worker.StatusRequested - workerUpdate.LazyStatusRequest = &worker.LazyStatusRequest + workerUpdate.StatusChange = &api.WorkerStatusChangeRequest{ + Status: worker.StatusRequested, + IsLazy: worker.LazyStatusRequest, + } } return workerUpdate