worker/server: delete CheckBuildDependencies()

Replace all uses of `CheckBuildDependencies()` with
`JobDependencyChainErrors()` and delete `CheckBuildDependencies()`.
This commit is contained in:
Tomas Hozza 2022-05-24 14:10:38 +02:00 committed by Tom Gundersen
parent fa37005a32
commit fc8af28231
2 changed files with 10 additions and 42 deletions

View file

@ -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{

View file

@ -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) {