From fc8af28231aae15513e9f028eaa85e98508c3bea Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Tue, 24 May 2022 14:10:38 +0200 Subject: [PATCH] worker/server: delete `CheckBuildDependencies()` Replace all uses of `CheckBuildDependencies()` with `JobDependencyChainErrors()` and delete `CheckBuildDependencies()`. --- internal/cloudapi/v2/handler.go | 24 ++++++++++-------------- internal/worker/server.go | 28 ---------------------------- 2 files changed, 10 insertions(+), 42 deletions(-) diff --git a/internal/cloudapi/v2/handler.go b/internal/cloudapi/v2/handler.go index e4276fbbc..484b8a5e0 100644 --- a/internal/cloudapi/v2/handler.go +++ b/internal/cloudapi/v2/handler.go @@ -510,16 +510,14 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error { if jobType == worker.JobTypeOSBuild { var result worker.OSBuildJobResult - status, deps, err := h.server.workers.OSBuildJobStatus(jobId, &result) + status, _, err := h.server.workers.OSBuildJobStatus(jobId, &result) if err != nil { return HTTPError(ErrorMalformedOSBuildJobResult) } - if result.JobError != nil && result.JobError.IsDependencyError() { - err = h.server.workers.CheckBuildDependencies(deps[0], result.JobError) - if err != nil { - return HTTPError(ErrorGettingBuildDependencyStatus) - } + jobError, err := h.server.workers.JobDependencyChainErrors(jobId) + if err != nil { + return HTTPError(ErrorGettingBuildDependencyStatus) } var us *UploadStatus @@ -580,7 +578,7 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error { Status: composeStatusFromOSBuildJobStatus(status, &result), ImageStatus: ImageStatus{ Status: imageStatusFromOSBuildJobStatus(status, &result), - Error: composeStatusErrorFromJobError(result.JobError), + Error: composeStatusErrorFromJobError(jobError), UploadStatus: us, }, }) @@ -602,20 +600,18 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error { var buildJobStatuses []ImageStatus for i := 1; i < len(deps); i++ { var buildJobResult worker.OSBuildKojiJobResult - buildJobStatus, buildDeps, err := h.server.workers.OSBuildKojiJobStatus(deps[i], &buildJobResult) + buildJobStatus, _, err := h.server.workers.OSBuildKojiJobStatus(deps[i], &buildJobResult) if err != nil { return HTTPError(ErrorMalformedOSBuildJobResult) } - if buildJobResult.JobError != nil && buildJobResult.JobError.IsDependencyError() { - err = h.server.workers.CheckBuildDependencies(buildDeps[1], buildJobResult.JobError) - if err != nil { - return HTTPError(ErrorGettingBuildDependencyStatus) - } + buildJobError, err := h.server.workers.JobDependencyChainErrors(deps[i]) + if err != nil { + return HTTPError(ErrorGettingBuildDependencyStatus) } buildJobResults = append(buildJobResults, buildJobResult) buildJobStatuses = append(buildJobStatuses, ImageStatus{ Status: imageStatusFromKojiJobStatus(buildJobStatus, &initResult, &buildJobResult), - Error: composeStatusErrorFromJobError(buildJobResult.JobError), + Error: composeStatusErrorFromJobError(buildJobError), }) } response := ComposeStatus{ diff --git a/internal/worker/server.go b/internal/worker/server.go index db4b9ef88..04e02ddc3 100644 --- a/internal/worker/server.go +++ b/internal/worker/server.go @@ -146,34 +146,6 @@ func (s *Server) enqueue(jobType string, job interface{}, dependencies []uuid.UU return s.jobs.Enqueue(jobType, job, dependencies, channel) } -func (s *Server) CheckBuildDependencies(dep uuid.UUID, jobErr *clienterrors.Error) error { - var manifestJR ManifestJobByIDResult - _, deps, err := s.ManifestJobStatus(dep, &manifestJR) - if err != nil { - return err - } - - if manifestJobErr := manifestJR.JobError; manifestJobErr != nil { - if !manifestJobErr.IsDependencyError() { - jobErr.Details = manifestJobErr - return nil - } - if len(deps) > 1 { - return fmt.Errorf("Unexpected number of dependencies received") - } - - var depsolveJR DepsolveJobResult - _, _, err := s.DepsolveJobStatus(deps[0], &depsolveJR) - if err != nil { - return err - } - - jobErr.Details = depsolveJR.JobError - } - - return nil -} - // DependencyChainErrors recursively gathers all errors from job's dependencies, // which caused it to fail. If the job didn't fail, `nil` is returned. func (s *Server) JobDependencyChainErrors(id uuid.UUID) (*clienterrors.Error, error) {