cloudapi/v2: introduce compose status
In addition to individual image status, have an overall status that captures success or failure of the compose as a whole. This is not as fine grained, and only distinguishes between "pending", "failure" and "success". This captures other jobs than the image builds, which is relevant for the koji composes, which consists also of koji-init and koji-finalize, in addition to the build jobs.
This commit is contained in:
parent
c892ccfde0
commit
c1dc9d7284
4 changed files with 151 additions and 76 deletions
|
|
@ -22,6 +22,15 @@ const (
|
|||
BearerScopes = "Bearer.Scopes"
|
||||
)
|
||||
|
||||
// Defines values for ComposeStatusValue.
|
||||
const (
|
||||
ComposeStatusValueFailure ComposeStatusValue = "failure"
|
||||
|
||||
ComposeStatusValuePending ComposeStatusValue = "pending"
|
||||
|
||||
ComposeStatusValueSuccess ComposeStatusValue = "success"
|
||||
)
|
||||
|
||||
// Defines values for ImageStatusValue.
|
||||
const (
|
||||
ImageStatusValueBuilding ImageStatusValue = "building"
|
||||
|
|
@ -165,10 +174,14 @@ type ComposeStatus struct {
|
|||
// Embedded struct due to allOf(#/components/schemas/ObjectReference)
|
||||
ObjectReference `yaml:",inline"`
|
||||
// Embedded fields due to inline allOf schema
|
||||
ImageStatus ImageStatus `json:"image_status"`
|
||||
KojiStatus *KojiStatus `json:"koji_status,omitempty"`
|
||||
ImageStatus ImageStatus `json:"image_status"`
|
||||
KojiStatus *KojiStatus `json:"koji_status,omitempty"`
|
||||
Status ComposeStatusValue `json:"status"`
|
||||
}
|
||||
|
||||
// ComposeStatusValue defines model for ComposeStatusValue.
|
||||
type ComposeStatusValue string
|
||||
|
||||
// Customizations defines model for Customizations.
|
||||
type Customizations struct {
|
||||
Packages *[]string `json:"packages,omitempty"`
|
||||
|
|
@ -539,67 +552,67 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
|||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
|
|
|||
|
|
@ -350,12 +350,22 @@ components:
|
|||
- $ref: '#/components/schemas/ObjectReference'
|
||||
- type: object
|
||||
required:
|
||||
- status
|
||||
- image_status
|
||||
properties:
|
||||
status:
|
||||
$ref: '#/components/schemas/ComposeStatusValue'
|
||||
image_status:
|
||||
$ref: '#/components/schemas/ImageStatus'
|
||||
koji_status:
|
||||
$ref: '#/components/schemas/KojiStatus'
|
||||
ComposeStatusValue:
|
||||
type: string
|
||||
enum:
|
||||
- success
|
||||
- failure
|
||||
- pending
|
||||
example: success
|
||||
ImageStatus:
|
||||
required:
|
||||
- status
|
||||
|
|
|
|||
|
|
@ -700,6 +700,7 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error {
|
|||
Id: jobId.String(),
|
||||
Kind: "ComposeStatus",
|
||||
},
|
||||
Status: composeStatusFromOSBuildJobStatus(status, &result),
|
||||
ImageStatus: ImageStatus{
|
||||
Status: imageStatusFromOSBuildJobStatus(status, &result),
|
||||
UploadStatus: us,
|
||||
|
|
@ -707,7 +708,7 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error {
|
|||
})
|
||||
} else if jobType == "koji-finalize" {
|
||||
var result worker.KojiFinalizeJobResult
|
||||
_, deps, err := h.server.workers.JobStatus(jobId, &result)
|
||||
finalizeStatus, deps, err := h.server.workers.JobStatus(jobId, &result)
|
||||
if err != nil {
|
||||
return HTTPError(ErrorMalformedOSBuildJobResult)
|
||||
}
|
||||
|
|
@ -731,6 +732,7 @@ func (h *apiHandlers) GetComposeStatus(ctx echo.Context, id string) error {
|
|||
Id: jobId.String(),
|
||||
Kind: "ComposeStatus",
|
||||
},
|
||||
Status: composeStatusFromKojiJobStatus(finalizeStatus, &initResult, []worker.OSBuildKojiJobResult{buildResult}, &result),
|
||||
ImageStatus: ImageStatus{
|
||||
Status: imageStatusFromKojiJobStatus(buildJobStatus, &initResult, &buildResult),
|
||||
},
|
||||
|
|
@ -773,7 +775,7 @@ func imageStatusFromKojiJobStatus(js *worker.JobStatus, initResult *worker.KojiI
|
|||
return ImageStatusValueFailure
|
||||
}
|
||||
|
||||
if initResult.KojiError != "" {
|
||||
if initResult.JobError != nil {
|
||||
return ImageStatusValueFailure
|
||||
}
|
||||
|
||||
|
|
@ -785,11 +787,53 @@ func imageStatusFromKojiJobStatus(js *worker.JobStatus, initResult *worker.KojiI
|
|||
return ImageStatusValueBuilding
|
||||
}
|
||||
|
||||
if buildResult.OSBuildOutput != nil && buildResult.OSBuildOutput.Success && buildResult.KojiError == "" {
|
||||
return ImageStatusValueSuccess
|
||||
if buildResult.JobError != nil {
|
||||
return ImageStatusValueFailure
|
||||
}
|
||||
|
||||
return ImageStatusValueFailure
|
||||
return ImageStatusValueSuccess
|
||||
}
|
||||
|
||||
func composeStatusFromOSBuildJobStatus(js *worker.JobStatus, result *worker.OSBuildJobResult) ComposeStatusValue {
|
||||
if js.Canceled {
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
|
||||
if js.Finished.IsZero() {
|
||||
return ComposeStatusValuePending
|
||||
}
|
||||
|
||||
if result.Success {
|
||||
return ComposeStatusValueSuccess
|
||||
}
|
||||
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
|
||||
func composeStatusFromKojiJobStatus(js *worker.JobStatus, initResult *worker.KojiInitJobResult, buildResults []worker.OSBuildKojiJobResult, result *worker.KojiFinalizeJobResult) ComposeStatusValue {
|
||||
if js.Canceled {
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
|
||||
if js.Finished.IsZero() {
|
||||
return ComposeStatusValuePending
|
||||
}
|
||||
|
||||
if initResult.JobError != nil {
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
|
||||
for _, buildResult := range buildResults {
|
||||
if buildResult.JobError != nil {
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
}
|
||||
|
||||
if result.JobError != nil {
|
||||
return ComposeStatusValueFailure
|
||||
}
|
||||
|
||||
return ComposeStatusValueSuccess
|
||||
}
|
||||
|
||||
// ComposeMetadata handles a /composes/{id}/metadata GET request
|
||||
|
|
|
|||
|
|
@ -315,7 +315,8 @@ func TestComposeStatusSuccess(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "building"}
|
||||
"image_status": {"status": "building"},
|
||||
"status": "pending"
|
||||
}`, jobId, jobId))
|
||||
|
||||
res, err := json.Marshal(&worker.OSBuildJobResult{
|
||||
|
|
@ -330,7 +331,8 @@ func TestComposeStatusSuccess(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "success"}
|
||||
"image_status": {"status": "success"},
|
||||
"status": "success"
|
||||
}`, jobId, jobId))
|
||||
|
||||
test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "GET", fmt.Sprintf("/api/image-builder-composer/v2/composes/%v/metadata", jobId), ``, http.StatusInternalServerError, `
|
||||
|
|
@ -379,7 +381,8 @@ func TestComposeStatusFailure(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "building"}
|
||||
"image_status": {"status": "building"},
|
||||
"status": "pending"
|
||||
}`, jobId, jobId))
|
||||
|
||||
err = wrksrv.FinishJob(token, nil)
|
||||
|
|
@ -389,7 +392,8 @@ func TestComposeStatusFailure(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "failure"}
|
||||
"image_status": {"status": "failure"},
|
||||
"status": "failure"
|
||||
}`, jobId, jobId))
|
||||
}
|
||||
|
||||
|
|
@ -429,7 +433,8 @@ func TestComposeLegacyError(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "building"}
|
||||
"image_status": {"status": "building"},
|
||||
"status": "pending"
|
||||
}`, jobId, jobId))
|
||||
|
||||
jobResult, err := json.Marshal(worker.OSBuildJobResult{TargetErrors: []string{"Osbuild failed"}})
|
||||
|
|
@ -442,7 +447,8 @@ func TestComposeLegacyError(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "failure"}
|
||||
"image_status": {"status": "failure"},
|
||||
"status": "failure"
|
||||
}`, jobId, jobId))
|
||||
}
|
||||
|
||||
|
|
@ -482,7 +488,8 @@ func TestComposeJobError(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "building"}
|
||||
"image_status": {"status": "building"},
|
||||
"status": "pending"
|
||||
}`, jobId, jobId))
|
||||
|
||||
jobErr := worker.JobResult{
|
||||
|
|
@ -498,7 +505,8 @@ func TestComposeJobError(t *testing.T) {
|
|||
"href": "/api/image-builder-composer/v2/composes/%v",
|
||||
"kind": "ComposeStatus",
|
||||
"id": "%v",
|
||||
"image_status": {"status": "failure"}
|
||||
"image_status": {"status": "failure"},
|
||||
"status": "failure"
|
||||
}`, jobId, jobId))
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue