diff --git a/internal/cloudapi/v2/handler.go b/internal/cloudapi/v2/handler.go index bd085ae8f..0e558f705 100644 --- a/internal/cloudapi/v2/handler.go +++ b/internal/cloudapi/v2/handler.go @@ -298,9 +298,22 @@ func (h *apiHandlers) PostCompose(ctx echo.Context) error { if ir.Ostree.Url != nil { ostreeOptions.URL = *ir.Ostree.Url } + if ir.Ostree.Contenturl != nil { + // URL must be set if content url is specified + if ir.Ostree.Url == nil { + return HTTPError(ErrorInvalidOSTreeParams) + } + + // Contenturl is set on imageoptions directly, as it's not + // needed in the resolve job + imageOptions.OSTree.ContentURL = *ir.Ostree.Contenturl + } if ir.Ostree.Parent != nil { ostreeOptions.Parent = *ir.Ostree.Parent } + if ir.Ostree.Rhsm != nil { + ostreeOptions.RHSM = *ir.Ostree.Rhsm + } } if ostreeOptions.Ref == "" { ostreeOptions.Ref = imageType.OSTreeRef() diff --git a/internal/cloudapi/v2/openapi.v2.gen.go b/internal/cloudapi/v2/openapi.v2.gen.go index 157da2cfd..bbbd3b590 100644 --- a/internal/cloudapi/v2/openapi.v2.gen.go +++ b/internal/cloudapi/v2/openapi.v2.gen.go @@ -433,10 +433,19 @@ type List struct { // OSTree defines model for OSTree. type OSTree struct { + // A URL which, if set, is used for fetching content. Implies that `url` is set as well, + // which will be used for metadata only. + Contenturl *string `json:"contenturl,omitempty"` + // Can be either a commit (example: 02604b2da6e954bd34b8b82a835e5a77d2b60ffa), or a branch-like reference (example: rhel/8/x86_64/edge) Parent *string `json:"parent,omitempty"` Ref *string `json:"ref,omitempty"` - Url *string `json:"url,omitempty"` + + // Determines whether a valid subscription manager (candlepin) identity is required to + // access this repository. Consumer certificates will be used as client certificates when + // fetching metadata and content. + Rhsm *bool `json:"rhsm,omitempty"` + Url *string `json:"url,omitempty"` } // ObjectReference defines model for ObjectReference. @@ -792,119 +801,122 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", + "/3HxqRyFbQAA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/internal/cloudapi/v2/openapi.v2.yml b/internal/cloudapi/v2/openapi.v2.yml index 1b97b312c..a45da182e 100644 --- a/internal/cloudapi/v2/openapi.v2.yml +++ b/internal/cloudapi/v2/openapi.v2.yml @@ -1048,6 +1048,11 @@ components: properties: url: type: string + contenturl: + type: string + description: | + A URL which, if set, is used for fetching content. Implies that `url` is set as well, + which will be used for metadata only. ref: type: string example: 'rhel/8/x86_64/edge' @@ -1058,6 +1063,13 @@ components: 02604b2da6e954bd34b8b82a835e5a77d2b60ffa), or a branch-like reference (example: rhel/8/x86_64/edge) example: 'rhel/8/x86_64/edge' + rhsm: + type: boolean + default: false + description: | + Determines whether a valid subscription manager (candlepin) identity is required to + access this repository. Consumer certificates will be used as client certificates when + fetching metadata and content. Subscription: type: object required: diff --git a/internal/cloudapi/v2/server.go b/internal/cloudapi/v2/server.go index b409997ae..eb746e019 100644 --- a/internal/cloudapi/v2/server.go +++ b/internal/cloudapi/v2/server.go @@ -450,11 +450,9 @@ func generateManifest(ctx context.Context, workers *worker.Server, depsolveJobID return } - options.OSTree = distro.OSTreeImageOptions{ - ImageRef: result.Specs[0].Ref, - FetchChecksum: result.Specs[0].Checksum, - URL: result.Specs[0].URL, - } + options.OSTree.ImageRef = result.Specs[0].Ref + options.OSTree.FetchChecksum = result.Specs[0].Checksum + options.OSTree.URL = result.Specs[0].URL } manifest, err := imageType.Manifest(b, options, repos, depsolveResults.PackageSpecs, containerSpecs, seed) diff --git a/internal/cloudapi/v2/v2_test.go b/internal/cloudapi/v2/v2_test.go index 21d44f916..6f1c8267a 100644 --- a/internal/cloudapi/v2/v2_test.go +++ b/internal/cloudapi/v2/v2_test.go @@ -456,6 +456,34 @@ func TestCompose(t *testing.T) { "href": "/api/image-builder-composer/v2/compose", "kind": "ComposeId" }`, "id") + + // ref + parent + url + contenturl + rhsm + test.TestRoute(t, srv.Handler("/api/image-builder-composer/v2"), false, "POST", "/api/image-builder-composer/v2/compose", fmt.Sprintf(` + { + "distribution": "%s", + "image_request":{ + "architecture": "%s", + "image_type": "edge-commit", + "repositories": [{ + "baseurl": "somerepo.org", + "rhsm": false + }], + "upload_options": { + "region": "eu-central-1" + }, + "ostree": { + "parent": "%s", + "url": "%s", + "ref": "a/new/ref", + "contenturl": "%s", + "rhsm": true + } + } + }`, test_distro.TestDistroName, test_distro.TestArch3Name, ostreeRepoOther.OSTreeRef, ostreeRepoOther.Server.URL, fmt.Sprintf("%s/content", ostreeRepoOther.Server.URL)), http.StatusCreated, ` + { + "href": "/api/image-builder-composer/v2/compose", + "kind": "ComposeId" + }`, "id") } func TestComposeStatusSuccess(t *testing.T) {