Add and implement an API endpoint that returns the manifests for a given osbuild-koji job. The route returns an array of manifests, one for each image in the request. Retrieves the arguments of each Build Job to extract the Manifest.
197 lines
6.3 KiB
Go
197 lines
6.3 KiB
Go
// Package api provides primitives to interact the openapi HTTP API.
|
|
//
|
|
// Code generated by github.com/deepmap/oapi-codegen DO NOT EDIT.
|
|
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/deepmap/oapi-codegen/pkg/runtime"
|
|
"github.com/labstack/echo/v4"
|
|
"net/http"
|
|
)
|
|
|
|
// ComposeLogs defines model for ComposeLogs.
|
|
type ComposeLogs struct {
|
|
ImageLogs []interface{} `json:"image_logs"`
|
|
KojiImportLogs interface{} `json:"koji_import_logs"`
|
|
KojiInitLogs interface{} `json:"koji_init_logs"`
|
|
}
|
|
|
|
// ComposeRequest defines model for ComposeRequest.
|
|
type ComposeRequest struct {
|
|
Distribution string `json:"distribution"`
|
|
ImageRequests []ImageRequest `json:"image_requests"`
|
|
Koji Koji `json:"koji"`
|
|
Name string `json:"name"`
|
|
Release string `json:"release"`
|
|
Version string `json:"version"`
|
|
}
|
|
|
|
// ComposeResponse defines model for ComposeResponse.
|
|
type ComposeResponse struct {
|
|
Id string `json:"id"`
|
|
KojiBuildId int `json:"koji_build_id"`
|
|
}
|
|
|
|
// ComposeStatus defines model for ComposeStatus.
|
|
type ComposeStatus struct {
|
|
ImageStatuses []ImageStatus `json:"image_statuses"`
|
|
KojiBuildId *int `json:"koji_build_id,omitempty"`
|
|
KojiTaskId int `json:"koji_task_id"`
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
// ImageRequest defines model for ImageRequest.
|
|
type ImageRequest struct {
|
|
Architecture string `json:"architecture"`
|
|
ImageType string `json:"image_type"`
|
|
Repositories []Repository `json:"repositories"`
|
|
}
|
|
|
|
// ImageStatus defines model for ImageStatus.
|
|
type ImageStatus struct {
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
// Koji defines model for Koji.
|
|
type Koji struct {
|
|
Server string `json:"server"`
|
|
TaskId int `json:"task_id"`
|
|
}
|
|
|
|
// Repository defines model for Repository.
|
|
type Repository struct {
|
|
Baseurl string `json:"baseurl"`
|
|
Gpgkey *string `json:"gpgkey,omitempty"`
|
|
}
|
|
|
|
// Status defines model for Status.
|
|
type Status struct {
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
// PostComposeJSONBody defines parameters for PostCompose.
|
|
type PostComposeJSONBody ComposeRequest
|
|
|
|
// PostComposeRequestBody defines body for PostCompose for application/json ContentType.
|
|
type PostComposeJSONRequestBody PostComposeJSONBody
|
|
|
|
// ServerInterface represents all server handlers.
|
|
type ServerInterface interface {
|
|
// Create compose
|
|
// (POST /compose)
|
|
PostCompose(ctx echo.Context) error
|
|
// The status of a compose
|
|
// (GET /compose/{id})
|
|
GetComposeId(ctx echo.Context, id string) error
|
|
// Get logs for a compose.
|
|
// (GET /compose/{id}/logs)
|
|
GetComposeIdLogs(ctx echo.Context, id string) error
|
|
// Get the manifests for a compose.
|
|
// (GET /compose/{id}/manifests)
|
|
GetComposeIdManifests(ctx echo.Context, id string) error
|
|
// status
|
|
// (GET /status)
|
|
GetStatus(ctx echo.Context) error
|
|
}
|
|
|
|
// ServerInterfaceWrapper converts echo contexts to parameters.
|
|
type ServerInterfaceWrapper struct {
|
|
Handler ServerInterface
|
|
}
|
|
|
|
// PostCompose converts echo context to params.
|
|
func (w *ServerInterfaceWrapper) PostCompose(ctx echo.Context) error {
|
|
var err error
|
|
|
|
// Invoke the callback with all the unmarshalled arguments
|
|
err = w.Handler.PostCompose(ctx)
|
|
return err
|
|
}
|
|
|
|
// GetComposeId converts echo context to params.
|
|
func (w *ServerInterfaceWrapper) GetComposeId(ctx echo.Context) error {
|
|
var err error
|
|
// ------------- Path parameter "id" -------------
|
|
var id string
|
|
|
|
err = runtime.BindStyledParameter("simple", false, "id", ctx.Param("id"), &id)
|
|
if err != nil {
|
|
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err))
|
|
}
|
|
|
|
// Invoke the callback with all the unmarshalled arguments
|
|
err = w.Handler.GetComposeId(ctx, id)
|
|
return err
|
|
}
|
|
|
|
// GetComposeIdLogs converts echo context to params.
|
|
func (w *ServerInterfaceWrapper) GetComposeIdLogs(ctx echo.Context) error {
|
|
var err error
|
|
// ------------- Path parameter "id" -------------
|
|
var id string
|
|
|
|
err = runtime.BindStyledParameter("simple", false, "id", ctx.Param("id"), &id)
|
|
if err != nil {
|
|
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err))
|
|
}
|
|
|
|
// Invoke the callback with all the unmarshalled arguments
|
|
err = w.Handler.GetComposeIdLogs(ctx, id)
|
|
return err
|
|
}
|
|
|
|
// GetComposeIdManifests converts echo context to params.
|
|
func (w *ServerInterfaceWrapper) GetComposeIdManifests(ctx echo.Context) error {
|
|
var err error
|
|
// ------------- Path parameter "id" -------------
|
|
var id string
|
|
|
|
err = runtime.BindStyledParameter("simple", false, "id", ctx.Param("id"), &id)
|
|
if err != nil {
|
|
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err))
|
|
}
|
|
|
|
// Invoke the callback with all the unmarshalled arguments
|
|
err = w.Handler.GetComposeIdManifests(ctx, id)
|
|
return err
|
|
}
|
|
|
|
// GetStatus converts echo context to params.
|
|
func (w *ServerInterfaceWrapper) GetStatus(ctx echo.Context) error {
|
|
var err error
|
|
|
|
// Invoke the callback with all the unmarshalled arguments
|
|
err = w.Handler.GetStatus(ctx)
|
|
return err
|
|
}
|
|
|
|
// This is a simple interface which specifies echo.Route addition functions which
|
|
// are present on both echo.Echo and echo.Group, since we want to allow using
|
|
// either of them for path registration
|
|
type EchoRouter interface {
|
|
CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route
|
|
}
|
|
|
|
// RegisterHandlers adds each server route to the EchoRouter.
|
|
func RegisterHandlers(router EchoRouter, si ServerInterface) {
|
|
|
|
wrapper := ServerInterfaceWrapper{
|
|
Handler: si,
|
|
}
|
|
|
|
router.POST("/compose", wrapper.PostCompose)
|
|
router.GET("/compose/:id", wrapper.GetComposeId)
|
|
router.GET("/compose/:id/logs", wrapper.GetComposeIdLogs)
|
|
router.GET("/compose/:id/manifests", wrapper.GetComposeIdManifests)
|
|
router.GET("/status", wrapper.GetStatus)
|
|
|
|
}
|