kojiapi: don't rely on common.State
This is similar to the previous commit, which did this change in package cloudapi. Use constants instead of string literals for compose status, and derive the status from worker.JobStatus directly, instead of via common.State.
This commit is contained in:
parent
31f4d9efe8
commit
7441012e62
1 changed files with 34 additions and 25 deletions
|
|
@ -14,7 +14,6 @@ import (
|
|||
"github.com/labstack/echo/v4"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/blueprint"
|
||||
"github.com/osbuild/osbuild-composer/internal/common"
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
"github.com/osbuild/osbuild-composer/internal/kojiapi/api"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
|
|
@ -223,34 +222,44 @@ func splitExtension(filename string) string {
|
|||
return "." + strings.Join(filenameParts[1:], ".")
|
||||
}
|
||||
|
||||
func composeStateToStatus(state common.ComposeState) string {
|
||||
switch state {
|
||||
case common.CFailed:
|
||||
func composeStatusFromJobStatus(js *worker.JobStatus) string {
|
||||
if js.Canceled {
|
||||
return "failure"
|
||||
case common.CFinished:
|
||||
return "success"
|
||||
case common.CRunning:
|
||||
return "pending"
|
||||
case common.CWaiting:
|
||||
return "pending"
|
||||
default:
|
||||
panic("invalid compose state")
|
||||
}
|
||||
|
||||
if js.Started.IsZero() {
|
||||
return "pending"
|
||||
}
|
||||
|
||||
if js.Finished.IsZero() {
|
||||
return "pending"
|
||||
}
|
||||
|
||||
if js.Result.OSBuildOutput != nil && js.Result.OSBuildOutput.Success {
|
||||
return "success"
|
||||
}
|
||||
|
||||
return "failure"
|
||||
}
|
||||
|
||||
func composeStateToImageStatus(state common.ComposeState) string {
|
||||
switch state {
|
||||
case common.CFailed:
|
||||
func imageStatusFromJobStatus(js *worker.JobStatus) string {
|
||||
if js.Canceled {
|
||||
return "failure"
|
||||
case common.CFinished:
|
||||
return "success"
|
||||
case common.CRunning:
|
||||
return "building"
|
||||
case common.CWaiting:
|
||||
return "pending"
|
||||
default:
|
||||
panic("invalid compose state")
|
||||
}
|
||||
|
||||
if js.Started.IsZero() {
|
||||
return "pending"
|
||||
}
|
||||
|
||||
if js.Finished.IsZero() {
|
||||
return "building"
|
||||
}
|
||||
|
||||
if js.Result.OSBuildOutput != nil && js.Result.OSBuildOutput.Success {
|
||||
return "success"
|
||||
}
|
||||
|
||||
return "failure"
|
||||
}
|
||||
|
||||
// GetComposeId handles a /compose/{id} GET request
|
||||
|
|
@ -266,10 +275,10 @@ func (h *apiHandlers) GetComposeId(ctx echo.Context, idstr string) error {
|
|||
}
|
||||
|
||||
response := api.ComposeStatus{
|
||||
Status: composeStateToStatus(status.State),
|
||||
Status: composeStatusFromJobStatus(status),
|
||||
ImageStatuses: []api.ImageStatus{
|
||||
{
|
||||
Status: composeStateToImageStatus(status.State),
|
||||
Status: imageStatusFromJobStatus(status),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue