cloudapi: add multiple upload_targets to ImageRequest

Add an upload_targets field to the image request.  This lets the API
caller specify multiple upload targets and upload options to be used.
If the upload target type does not match the upload options, the request
is invalid.

For backwards compatibility, the upload targets field is optional.  If
it is not specified, the default upload target and upload options for
the image type are assumed, which is the same as the old behaviour.

Adding an explicit selection to the request makes it possible to support
multiple upload targets for the same image type.  We plan to support
ostree commits being uploaded to both aws.s3 and pulp.

To report on the multiple upload requests, we add an upload_statuses
field to the ImageStatus response.
This commit is contained in:
Achilleas Koutsou 2023-10-13 18:06:21 +02:00 committed by Sanne Raymaekers
parent 952c7a483b
commit 24b4647a14
2 changed files with 200 additions and 151 deletions

View file

@ -559,12 +559,19 @@ type ImageRequest struct {
// defined by the image type.
Size *uint64 `json:"size,omitempty"`
// Options for a given upload destination.
// This should really be oneOf but AWSS3UploadOptions is a subset of
// AWSEC2UploadOptions. This means that all AWSEC2UploadOptions objects
// are also valid AWSS3UploadOptionas objects which violates the oneOf
// rules. Therefore, we have to use anyOf here but be aware that it isn't
// possible to mix and match more schemas together.
UploadOptions *UploadOptions `json:"upload_options,omitempty"`
// The type and options for multiple upload targets. Each item defines
// a separate upload destination with its own options. Multiple
// different targets as well as multiple targets of the same kind are
// supported.
UploadTargets *[]UploadTarget `json:"upload_targets,omitempty"`
}
// ImageStatus defines model for ImageStatus.
@ -754,6 +761,7 @@ type Timezone struct {
Timezone *string `json:"timezone,omitempty"`
}
// Options for a given upload destination.
// This should really be oneOf but AWSS3UploadOptions is a subset of
// AWSEC2UploadOptions. This means that all AWSEC2UploadOptions objects
// are also valid AWSS3UploadOptionas objects which violates the oneOf
@ -771,6 +779,19 @@ type UploadStatus struct {
// UploadStatusValue defines model for UploadStatusValue.
type UploadStatusValue string
// UploadTarget defines model for UploadTarget.
type UploadTarget struct {
Type UploadTypes `json:"type"`
// Options for a given upload destination.
// This should really be oneOf but AWSS3UploadOptions is a subset of
// AWSEC2UploadOptions. This means that all AWSEC2UploadOptions objects
// are also valid AWSS3UploadOptionas objects which violates the oneOf
// rules. Therefore, we have to use anyOf here but be aware that it isn't
// possible to mix and match more schemas together.
UploadOptions UploadOptions `json:"upload_options"`
}
// UploadTypes defines model for UploadTypes.
type UploadTypes string
@ -1060,155 +1081,157 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"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",
"+/7/BwAA//9LlYnqHZIAAA==",
"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",
"fPcyuA87GmYdnG/f//8AAAD//7HsIbZIlAAA",
}
// GetSwagger returns the content of the embedded swagger specification file

View file

@ -767,7 +767,20 @@ components:
$ref: '#/components/schemas/Repository'
ostree:
$ref: '#/components/schemas/OSTree'
upload_targets:
type: array
description: |
The type and options for multiple upload targets. Each item defines
a separate upload destination with its own options. Multiple
different targets as well as multiple targets of the same kind are
supported.
items:
$ref: '#/components/schemas/UploadTarget'
upload_options:
description: |
Top level upload options for a single upload target. If this is
defined, it is used with the default target type for the image type
and is combined with the targets defined in upload_targets.
$ref: '#/components/schemas/UploadOptions'
size:
x-go-type: uint64
@ -901,12 +914,24 @@ components:
properties:
selected:
type: array
items:
items:
type: string
unselected:
type: array
items:
items:
type: string
UploadTarget:
type: object
required:
- type
- upload_options
properties:
type:
$ref: '#/components/schemas/UploadTypes'
description: |
The name of the upload target that matches the upload_options.
upload_options:
$ref: '#/components/schemas/UploadOptions'
UploadOptions:
anyOf:
- $ref: '#/components/schemas/AWSEC2UploadOptions'
@ -917,6 +942,7 @@ components:
- $ref: '#/components/schemas/LocalUploadOptions'
- $ref: '#/components/schemas/OCIUploadOptions'
description: |
Options for a given upload destination.
This should really be oneOf but AWSS3UploadOptions is a subset of
AWSEC2UploadOptions. This means that all AWSEC2UploadOptions objects
are also valid AWSS3UploadOptionas objects which violates the oneOf