From 9629e70ed71b9475a85f98daf8cf55dec634c61c Mon Sep 17 00:00:00 2001 From: Mohammadreza Khani Date: Sat, 18 Jan 2025 01:32:24 +0330 Subject: [PATCH] fix(savepoint): wrong savepoint path in download savepoint route --- internal/managed_job/savepoint.go | 4 ++++ internal/rest/controller/crd.go | 10 +++++++++- internal/rest/types/savepoint.go | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/managed_job/savepoint.go b/internal/managed_job/savepoint.go index 3c84a3d..9e61c1c 100644 --- a/internal/managed_job/savepoint.go +++ b/internal/managed_job/savepoint.go @@ -89,3 +89,7 @@ func (job ManagedJob) TriggerSavepoint() error { err = job.trackSavepoint() return err } + +func (job ManagedJob) GetLastSavepointPath() *string { + return job.def.Status.LastSavepointPath +} diff --git a/internal/rest/controller/crd.go b/internal/rest/controller/crd.go index 17f1f60..ba4f3fc 100644 --- a/internal/rest/controller/crd.go +++ b/internal/rest/controller/crd.go @@ -14,6 +14,7 @@ import ( "io" "os" "path/filepath" + "strings" "github.com/danielgtaylor/huma/v2" "go.uber.org/zap" @@ -128,7 +129,14 @@ func TriggerSavepoint(ctx context.Context, req *JobTriggerSavepointReq) (*JobTri } func DownloadSavepoint(ctx context.Context, req *types.SavepointDownloadReq) (*huma.StreamResponse, error) { - folderPath := req.SavepointPath // Change this to your folder path + mgr := managed_job.GetManager() + job := mgr.GetJob(k8sTypes.UID(req.JobUID)) + lastSavepointPath := job.GetLastSavepointPath() + + if lastSavepointPath == nil { + return nil, huma.Error404NotFound("there is no savepoint path is registered for the job") + } + folderPath := strings.TrimLeft(*lastSavepointPath, "file:") // Change this to your folder path // Create a temporary zip file zipFilePath, err := filepath.Abs("./savepoint.zip") diff --git a/internal/rest/types/savepoint.go b/internal/rest/types/savepoint.go index a6416cb..4adec27 100644 --- a/internal/rest/types/savepoint.go +++ b/internal/rest/types/savepoint.go @@ -1,7 +1,7 @@ package types type SavepointDownloadReq struct { - SavepointPath string `query:"savepoint-path"` + JobUID string `query:"jobUID"` } type SavepointDownloadResp struct {