From 7da72dd8d4d777ff66b4fb9c85cadab28ab3f453 Mon Sep 17 00:00:00 2001 From: DenisGNoonan Date: Thu, 4 Jul 2024 17:01:28 +0100 Subject: [PATCH] NONRTRIC-1021: Add API-name to Kong-route Issue-ID: NONRTRIC-1021 Change-Id: I4c6d7a9b7e6e49d9192536b7698e4778078203d5 Signed-off-by: DenisGNoonan --- .../internal/publishserviceapi/typeupdate.go | 33 +++++++++++++--------- servicemanager/main.go | 2 +- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/servicemanager/internal/publishserviceapi/typeupdate.go b/servicemanager/internal/publishserviceapi/typeupdate.go index d7246bd..3b46a0f 100644 --- a/servicemanager/internal/publishserviceapi/typeupdate.go +++ b/servicemanager/internal/publishserviceapi/typeupdate.go @@ -77,15 +77,16 @@ func (sd *ServiceAPIDescription) createKongRoutes(kongControlPlaneURL string, ap client := resty.New() profiles := *sd.AefProfiles - for _, profile := range profiles { + for i, profile := range profiles { log.Debugf("createKongRoutes, AefId %s", profile.AefId) - for _, version := range profile.Versions { + for j, version := range profile.Versions { log.Debugf("createKongRoutes, apiVersion \"%s\"", version.ApiVersion) - for _, resource := range *version.Resources { - statusCode, err = sd.createKongRoute(kongControlPlaneURL, client, resource, apfId, profile.AefId, version.ApiVersion) + for k, resource := range *version.Resources { + statusCode, err = sd.createKongRoute(kongControlPlaneURL, client, &resource, apfId, profile.AefId, version.ApiVersion) if (err != nil) || (statusCode != http.StatusCreated) { return statusCode, err } + (*profiles[i].Versions[j].Resources)[k] = resource } } } @@ -95,7 +96,7 @@ func (sd *ServiceAPIDescription) createKongRoutes(kongControlPlaneURL string, ap func (sd *ServiceAPIDescription) createKongRoute( kongControlPlaneURL string, client *resty.Client, - resource Resource, + resource *Resource, apfId string, aefId string, apiVersion string ) (int, error) { @@ -114,9 +115,13 @@ func (sd *ServiceAPIDescription) createKongRoute( log.Debugf("createKongRoute, routeName %s", routeName) log.Debugf("createKongRoute, aefId %s", aefId) - uri := buildUriWithVersion(apiVersion, resource.Uri) + uri := buildUri(apiVersion, resource.Uri) log.Debugf("createKongRoute, uri %s", uri) + routeUri := buildUri(sd.ApiName, uri) + log.Debugf("createKongRoute, routeUri %s", routeUri) + resource.Uri = routeUri + statusCode, err := sd.createKongService(kongControlPlaneURL, serviceName, uri, tags) if (err != nil) || (statusCode != http.StatusCreated) { return statusCode, err @@ -127,7 +132,7 @@ func (sd *ServiceAPIDescription) createKongRoute( // Define the route information for Kong kongRouteInfo := map[string]interface{}{ "name": routeName, - "paths": []string{uri}, + "paths": []string{routeUri}, "methods": resource.Operations, "tags": tags, "strip_path": true, @@ -159,15 +164,15 @@ func (sd *ServiceAPIDescription) createKongRoute( return resp.StatusCode(), nil } -func buildUriWithVersion(apiVersion string, uri string) string { - if apiVersion != "" { - if apiVersion[0] != '/' { - apiVersion = "/" + apiVersion +func buildUri(prependUri string, uri string) string { + if prependUri != "" { + if prependUri[0] != '/' { + prependUri = "/" + prependUri } - if apiVersion[len(apiVersion)-1] != '/' && uri[0] != '/' { - apiVersion = apiVersion + "/" + if prependUri[len(prependUri)-1] != '/' && uri[0] != '/' { + prependUri = prependUri + "/" } - uri = apiVersion + uri + uri = prependUri + uri } return uri } diff --git a/servicemanager/main.go b/servicemanager/main.go index 5b949aa..b90782c 100644 --- a/servicemanager/main.go +++ b/servicemanager/main.go @@ -155,7 +155,7 @@ func keepServerAlive() { } func hello(c echo.Context) error { - return c.String(http.StatusOK, "Hello, World!") + return c.String(http.StatusOK, "Hello World, from Service Manager!") } func getSwagger(c echo.Context) error { -- 2.16.6