cloudapi: Add /distributions to return distro:arch:image-type

This adds support for listing all of the supported distributions,
their arches, the image types, and their repository details.

This returns 3 nested json objects. The keys for the first layer are the
distribution names. The 2nd layer's keys are the architectures supported
by that distribution, and the 3rd layer's keys are the image types
supported by that distribution:architecture pair. The value of the 3rd
layer is the repository information.

Resolves: RHEL-60133
This commit is contained in:
Brian C. Lane 2024-09-25 17:07:25 -07:00 committed by Brian C. Lane
parent 4b9f1a4956
commit 44ac65b70c
4 changed files with 355 additions and 197 deletions

2
go.mod
View file

@ -47,6 +47,7 @@ require (
github.com/osbuild/images v0.112.0
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20240814102216-0239db53236d
github.com/osbuild/pulp-client v0.1.0
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.20.2
github.com/segmentio/ksuid v1.0.4
github.com/sirupsen/logrus v1.9.3
@ -201,7 +202,6 @@ require (
github.com/opencontainers/selinux v1.11.1 // indirect
github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/proglottis/gpgme v0.1.3 // indirect

View file

@ -1479,3 +1479,38 @@ func (h *apiHandlers) PostSearchPackages(ctx echo.Context) error {
Packages: packageListToPackageDetails(packages),
})
}
// GetDistributionList returns the list of all supported distribution repositories
// It is arranged by distro name -> architecture -> image type
func (h *apiHandlers) GetDistributionList(ctx echo.Context) error {
distros := make(map[string]map[string]map[string][]rpmmd.RepoConfig)
distroNames := h.server.repos.ListDistros()
sort.Strings(distroNames)
for _, distroName := range distroNames {
distro := h.server.distros.GetDistro(distroName)
if distro == nil {
continue
}
for _, archName := range distro.ListArches() {
arch, _ := distro.GetArch(archName)
for _, imageType := range arch.ListImageTypes() {
repos, err := h.server.repos.ReposByImageTypeName(distroName, archName, imageType)
if err != nil {
continue
}
if _, ok := distros[distroName]; !ok {
distros[distroName] = make(map[string]map[string][]rpmmd.RepoConfig)
}
if _, ok := distros[distroName][archName]; !ok {
distros[distroName][archName] = make(map[string][]rpmmd.RepoConfig)
}
distros[distroName][archName][imageType] = repos
}
}
}
return ctx.JSON(http.StatusOK, distros)
}

View file

@ -7,6 +7,7 @@ import (
"bytes"
"compress/gzip"
"encoding/base64"
"encoding/json"
"fmt"
"net/http"
"net/url"
@ -16,6 +17,7 @@ import (
"github.com/deepmap/oapi-codegen/pkg/runtime"
"github.com/getkin/kin-openapi/openapi3"
"github.com/labstack/echo/v4"
"github.com/pkg/errors"
)
const (
@ -696,6 +698,17 @@ type Directory struct {
User *interface{} `json:"user,omitempty"`
}
// DistributionList defines model for DistributionList.
type DistributionList struct {
// Distribution name
Map *DistributionList_Map `json:"map,omitempty"`
}
// Distribution name
type DistributionList_Map struct {
AdditionalProperties map[string]interface{} `json:"-"`
}
// Error defines model for Error.
type Error struct {
// Embedded struct due to allOf(#/components/schemas/ObjectReference)
@ -1313,6 +1326,59 @@ type PostDepsolveBlueprintJSONRequestBody PostDepsolveBlueprintJSONBody
// PostSearchPackagesJSONRequestBody defines body for PostSearchPackages for application/json ContentType.
type PostSearchPackagesJSONRequestBody PostSearchPackagesJSONBody
// Getter for additional properties for DistributionList_Map. Returns the specified
// element and whether it was found
func (a DistributionList_Map) Get(fieldName string) (value interface{}, found bool) {
if a.AdditionalProperties != nil {
value, found = a.AdditionalProperties[fieldName]
}
return
}
// Setter for additional properties for DistributionList_Map
func (a *DistributionList_Map) Set(fieldName string, value interface{}) {
if a.AdditionalProperties == nil {
a.AdditionalProperties = make(map[string]interface{})
}
a.AdditionalProperties[fieldName] = value
}
// Override default JSON handling for DistributionList_Map to handle AdditionalProperties
func (a *DistributionList_Map) UnmarshalJSON(b []byte) error {
object := make(map[string]json.RawMessage)
err := json.Unmarshal(b, &object)
if err != nil {
return err
}
if len(object) != 0 {
a.AdditionalProperties = make(map[string]interface{})
for fieldName, fieldBuf := range object {
var fieldVal interface{}
err := json.Unmarshal(fieldBuf, &fieldVal)
if err != nil {
return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
}
a.AdditionalProperties[fieldName] = fieldVal
}
}
return nil
}
// Override default JSON handling for DistributionList_Map to handle AdditionalProperties
func (a DistributionList_Map) MarshalJSON() ([]byte, error) {
var err error
object := make(map[string]json.RawMessage)
for fieldName, field := range a.AdditionalProperties {
object[fieldName], err = json.Marshal(field)
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
}
}
return json.Marshal(object)
}
// ServerInterface represents all server handlers.
type ServerInterface interface {
// The status of a cloned compose
@ -1345,6 +1411,9 @@ type ServerInterface interface {
// Depsolve one or more blueprints
// (POST /depsolve/blueprint)
PostDepsolveBlueprint(ctx echo.Context) error
// Get all of the supported distribution repository details
// (GET /distributions)
GetDistributionList(ctx echo.Context) error
// Get a list of all possible errors
// (GET /errors)
GetErrorList(ctx echo.Context, params GetErrorListParams) error
@ -1515,6 +1584,17 @@ func (w *ServerInterfaceWrapper) PostDepsolveBlueprint(ctx echo.Context) error {
return err
}
// GetDistributionList converts echo context to params.
func (w *ServerInterfaceWrapper) GetDistributionList(ctx echo.Context) error {
var err error
ctx.Set(BearerScopes, []string{""})
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.GetDistributionList(ctx)
return err
}
// GetErrorList converts echo context to params.
func (w *ServerInterfaceWrapper) GetErrorList(ctx echo.Context) error {
var err error
@ -1620,6 +1700,7 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
router.GET(baseURL+"/composes/:id/metadata", wrapper.GetComposeMetadata)
router.GET(baseURL+"/composes/:id/sboms", wrapper.GetComposeSBOMs)
router.POST(baseURL+"/depsolve/blueprint", wrapper.PostDepsolveBlueprint)
router.GET(baseURL+"/distributions", wrapper.GetDistributionList)
router.GET(baseURL+"/errors", wrapper.GetErrorList)
router.GET(baseURL+"/errors/:id", wrapper.GetError)
router.GET(baseURL+"/openapi", wrapper.GetOpenapi)
@ -1630,202 +1711,204 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"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",
"TjjeAAA=",
"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",
"0o+Hmjf8w2nWjfP12/8PAAD//8sZBmaa4QAA",
}
// GetSwagger returns the content of the embedded swagger specification file

View file

@ -526,6 +526,27 @@ paths:
schema:
$ref: '#/components/schemas/Error'
/distributions:
get:
operationId: getDistributionList
summary: |-
Get all of the supported distribution repository details
security:
- Bearer: []
responses:
'200':
description: Distribution repositories
content:
application/json:
schema:
$ref: '#/components/schemas/DistributionList'
'500':
description: Unexpected error occurred
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/errors/{id}:
get:
operationId: getError
@ -689,6 +710,25 @@ components:
items:
$ref: '#/components/schemas/ComposeStatus'
DistributionList:
properties:
map:
type: object
description: Distribution name
additionalProperties:
map:
type: object
description: Architecture name
additionalProperties:
map:
type: object
description: Image type name
additionalProperties:
type: array
description: Repository used for this distro:arch:image-type
items:
$ref: '#/components/schemas/BlueprintRepository'
ComposeStatus:
allOf:
- $ref: '#/components/schemas/ObjectReference'