From dedfce61a3c66407d649f86253fbe42a403bd7f8 Mon Sep 17 00:00:00 2001 From: Luiz Aoqui Date: Mon, 22 Nov 2021 15:39:08 -0500 Subject: [PATCH 1/2] don't emit scaling event error when a deployment is underway --- nomad/job_endpoint.go | 26 +------------------------- nomad/job_endpoint_test.go | 16 ---------------- 2 files changed, 1 insertion(+), 41 deletions(-) diff --git a/nomad/job_endpoint.go b/nomad/job_endpoint.go index f98a6e4f2709..f5037c68a1e4 100644 --- a/nomad/job_endpoint.go +++ b/nomad/job_endpoint.go @@ -1094,31 +1094,7 @@ func (j *Job) Scale(args *structs.JobScaleRequest, reply *structs.JobRegisterRes } if deployment != nil && deployment.Active() && deployment.JobCreateIndex == job.CreateIndex { - msg := "job scaling blocked due to active deployment" - _, _, err := j.srv.raftApply( - structs.ScalingEventRegisterRequestType, - &structs.ScalingEventRequest{ - Namespace: job.Namespace, - JobID: job.ID, - TaskGroup: groupName, - ScalingEvent: &structs.ScalingEvent{ - Time: now, - PreviousCount: prevCount, - Message: msg, - Error: true, - Meta: map[string]interface{}{ - "OriginalMessage": args.Message, - "OriginalCount": *args.Count, - "OriginalMeta": args.Meta, - }, - }, - }, - ) - if err != nil { - // just log the error, this was a best-effort attempt - j.logger.Error("scaling event create failed during block scaling action", "error", err) - } - return structs.NewErrRPCCoded(400, msg) + return structs.NewErrRPCCoded(400, "job scaling blocked due to active deployment") } // Commit the job update diff --git a/nomad/job_endpoint_test.go b/nomad/job_endpoint_test.go index 3c3c30281d66..7a2cd8d1b3d1 100644 --- a/nomad/job_endpoint_test.go +++ b/nomad/job_endpoint_test.go @@ -6695,22 +6695,6 @@ func TestJobEndpoint_Scale_DeploymentBlocking(t *testing.T) { require.NotEmpty(resp.EvalID) require.Greater(resp.EvalCreateIndex, resp.JobModifyIndex) } - - events, _, _ := state.ScalingEventsByJob(nil, job.Namespace, job.ID) - require.Equal(1, len(events[groupName])) - latestEvent := events[groupName][0] - if dLatest.Active() { - require.True(latestEvent.Error) - require.Nil(latestEvent.Count) - require.Contains(latestEvent.Message, "blocked due to active deployment") - require.Equal(latestEvent.Meta["OriginalCount"], newCount) - require.Equal(latestEvent.Meta["OriginalMessage"], scalingMessage) - require.Equal(latestEvent.Meta["OriginalMeta"], scalingMetadata) - } else { - require.False(latestEvent.Error) - require.NotNil(latestEvent.Count) - require.Equal(newCount, *latestEvent.Count) - } } } From b0fc3229d3dc8d1ad16915396c4be19c34fc63a5 Mon Sep 17 00:00:00 2001 From: Luiz Aoqui Date: Mon, 22 Nov 2021 15:44:15 -0500 Subject: [PATCH 2/2] changelog: add entry for #11556 --- .changelog/11556.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/11556.txt diff --git a/.changelog/11556.txt b/.changelog/11556.txt new file mode 100644 index 000000000000..6eded345dae4 --- /dev/null +++ b/.changelog/11556.txt @@ -0,0 +1,3 @@ +```release-note:improvement +scaling: Don't emit scaling action with error in case of active deployment +```