From 380d59d2f672fd7c974d1091c36c0bd4a24336b8 Mon Sep 17 00:00:00 2001 From: JamesMurkin Date: Tue, 16 Apr 2024 13:49:12 +0100 Subject: [PATCH] [Lookout] Make jobs.annotations column not nullable (#3519) * [Lookout] Make jobs.annotations column not nullable Signed-off-by: JamesMurkin * Fix tests Signed-off-by: JamesMurkin * Use explicit constraint + newer postgres image Signed-off-by: JamesMurkin * Fix constraint validation Signed-off-by: JamesMurkin * Update constraint name Signed-off-by: JamesMurkin * Fix tests Signed-off-by: JamesMurkin --------- Signed-off-by: JamesMurkin --- docker-compose.yaml | 2 +- internal/armada/queryapi/query_api_test.go | 4 +++- internal/lookoutingesterv2/lookoutdb/insertion_test.go | 3 +++ .../schema/migrations/006_annotations_constraint.sql | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 internal/lookoutv2/schema/migrations/006_annotations_constraint.sql diff --git a/docker-compose.yaml b/docker-compose.yaml index a564b2a8d05..cd43d7dcc70 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -23,7 +23,7 @@ services: postgres: container_name: postgres - image: postgres:12.13-alpine + image: postgres:15.6-alpine environment: - POSTGRES_PASSWORD=psw ports: diff --git a/internal/armada/queryapi/query_api_test.go b/internal/armada/queryapi/query_api_test.go index 7ffa7b03fc4..731bbb248d0 100644 --- a/internal/armada/queryapi/query_api_test.go +++ b/internal/armada/queryapi/query_api_test.go @@ -1,6 +1,7 @@ package queryapi import ( + "encoding/json" "testing" "time" @@ -283,6 +284,7 @@ func TestGetJobStatus(t *testing.T) { } func newJob(jobId string, state int16) database.Job { + annotations, _ := json.Marshal(map[string]string{}) return database.Job{ JobID: jobId, Queue: "testQueue", @@ -310,7 +312,7 @@ func newJob(jobId string, state int16) database.Job { LatestRunID: nil, CancelReason: nil, Namespace: pointer.String("testNamespace"), - Annotations: nil, + Annotations: annotations, } } diff --git a/internal/lookoutingesterv2/lookoutdb/insertion_test.go b/internal/lookoutingesterv2/lookoutdb/insertion_test.go index 5a4dddf84e3..a25d21db294 100644 --- a/internal/lookoutingesterv2/lookoutdb/insertion_test.go +++ b/internal/lookoutingesterv2/lookoutdb/insertion_test.go @@ -324,6 +324,7 @@ func TestUpdateJobsWithTerminal(t *testing.T) { LastTransitionTimeSeconds: baseTime.Unix(), JobProto: []byte(jobProto), PriorityClass: pointer.String(priorityClass), + Annotations: map[string]string{}, }, { JobId: "job2", @@ -341,6 +342,7 @@ func TestUpdateJobsWithTerminal(t *testing.T) { LastTransitionTimeSeconds: baseTime.Unix(), JobProto: []byte(jobProto), PriorityClass: pointer.String(priorityClass), + Annotations: map[string]string{}, }, { JobId: "job3", @@ -358,6 +360,7 @@ func TestUpdateJobsWithTerminal(t *testing.T) { LastTransitionTimeSeconds: baseTime.Unix(), JobProto: []byte(jobProto), PriorityClass: pointer.String(priorityClass), + Annotations: map[string]string{}, }, } diff --git a/internal/lookoutv2/schema/migrations/006_annotations_constraint.sql b/internal/lookoutv2/schema/migrations/006_annotations_constraint.sql new file mode 100644 index 00000000000..4b8ba1baf62 --- /dev/null +++ b/internal/lookoutv2/schema/migrations/006_annotations_constraint.sql @@ -0,0 +1,2 @@ +ALTER TABLE job ADD CONSTRAINT job_annotations_not_null CHECK (annotations IS NOT NULL) NOT VALID; +ALTER TABLE job VALIDATE CONSTRAINT job_annotations_not_null;