kojiapi: prefix all routes with /api/composer-koji/v1

The cloud API will be moved to `/api/composer/v1` in the future.

Mention this in the `servers` section of the openapi.yml (relative URLs
are allowed) too, even though our generator does not consider it.
This commit is contained in:
Lars Karlitski 2020-09-23 22:27:48 +02:00 committed by Tom Gundersen
parent a8ba969f6e
commit 40d8440660
5 changed files with 11 additions and 7 deletions

View file

@ -192,7 +192,7 @@ func TestKojiAPIAuth(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
defer ckp.remove() defer ckp.remove()
testRoute(t, "https://localhost/status", ckp, c.success) testRoute(t, "https://localhost/api/composer-koji/v1/status", ckp, c.success)
}) })
} }
}) })
@ -208,7 +208,7 @@ func TestKojiAPIAuth(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
defer ckp.remove() defer ckp.remove()
testRoute(t, "https://localhost/status", ckp, false) testRoute(t, "https://localhost/api/composer-koji/v1/status", ckp, false)
}) })
t.Run("self-signed certificate", func(t *testing.T) { t.Run("self-signed certificate", func(t *testing.T) {
@ -217,7 +217,7 @@ func TestKojiAPIAuth(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
defer ckp.remove() defer ckp.remove()
testRoute(t, "https://localhost/status", ckp, false) testRoute(t, "https://localhost/api/composer-koji/v1/status", ckp, false)
}) })
} }

View file

@ -1,3 +1,5 @@
//go:generate go run github.com/deepmap/oapi-codegen/cmd/oapi-codegen -package=api -generate types,server -o api.gen.go openapi.yml //go:generate go run github.com/deepmap/oapi-codegen/cmd/oapi-codegen -package=api -generate types,server -o api.gen.go openapi.yml
package api package api
const BasePath = "/api/composer-koji/v1"

View file

@ -1,11 +1,13 @@
openapi: 3.0.1 openapi: 3.0.1
info: info:
version: '1'
title: OSBuild Composer - Koji title: OSBuild Composer - Koji
version: '1'
description: Service to build and push images to Koji. description: Service to build and push images to Koji.
license: license:
name: Apache 2.0 name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0.html' url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
servers:
- url: /api/composer-koji/v1
paths: paths:
/status: /status:
get: get:

View file

@ -44,7 +44,7 @@ func NewServer(logger *log.Logger, workers *worker.Server, rpmMetadata rpmmd.RPM
e.Binder = binder{} e.Binder = binder{}
e.StdLogger = logger e.StdLogger = logger
api.RegisterHandlers(e, &apiHandlers{s}) api.RegisterHandlers(e.Group(api.BasePath), &apiHandlers{s})
s.server = &http.Server{ s.server = &http.Server{
ErrorLog: logger, ErrorLog: logger,

View file

@ -42,7 +42,7 @@ def main(distro):
cr = compose_request(distro, "https://localhost:4343/kojihub") cr = compose_request(distro, "https://localhost:4343/kojihub")
print(json.dumps(cr)) print(json.dumps(cr))
r = requests.post("https://localhost/compose", json=cr, r = requests.post("https://localhost/api/composer-koji/v1/compose", json=cr,
cert=("/etc/osbuild-composer/worker-crt.pem", "/etc/osbuild-composer/worker-key.pem"), cert=("/etc/osbuild-composer/worker-crt.pem", "/etc/osbuild-composer/worker-key.pem"),
verify="/etc/osbuild-composer/ca-crt.pem") verify="/etc/osbuild-composer/ca-crt.pem")
if r.status_code != 201: if r.status_code != 201:
@ -54,7 +54,7 @@ def main(distro):
compose_id = r.json()["id"] compose_id = r.json()["id"]
while True: while True:
r = requests.get(f"https://localhost/compose/{compose_id}", r = requests.get(f"https://localhost/api/composer-koji/v1/compose/{compose_id}",
cert=("/etc/osbuild-composer/worker-crt.pem", "/etc/osbuild-composer/worker-key.pem"), cert=("/etc/osbuild-composer/worker-crt.pem", "/etc/osbuild-composer/worker-key.pem"),
verify="/etc/osbuild-composer/ca-crt.pem") verify="/etc/osbuild-composer/ca-crt.pem")
if r.status_code != 200: if r.status_code != 200: