X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=capifcore%2Finternal%2Fpublishservice%2Fpublishservice.go;h=2b7f52d90add9065493199afd9434e66801a69a4;hb=b4da1f981ba6717f5ec52e15ad1db257b5d6b7f3;hp=8b2c427c1071cb3b0e0c273bebfe0b3b4e6d451a;hpb=ae8001da50fc2f29c76888d194f9ab2a24f573f7;p=nonrtric%2Fplt%2Fsme.git diff --git a/capifcore/internal/publishservice/publishservice.go b/capifcore/internal/publishservice/publishservice.go index 8b2c427..2b7f52d 100644 --- a/capifcore/internal/publishservice/publishservice.go +++ b/capifcore/internal/publishservice/publishservice.go @@ -21,6 +21,7 @@ package publishservice import ( + "fmt" "net/http" "path" "strings" @@ -120,14 +121,25 @@ func (ps *PublishService) IsAPIPublished(aefId, path string) bool { } func (ps *PublishService) GetApfIdServiceApis(ctx echo.Context, apfId string) error { - return ctx.NoContent(http.StatusNotImplemented) + serviceDescriptions, ok := ps.publishedServices[apfId] + if ok { + err := ctx.JSON(http.StatusOK, serviceDescriptions) + if err != nil { + // Something really bad happened, tell Echo that our handler failed + return err + } + } else { + return sendCoreError(ctx, http.StatusNotFound, fmt.Sprintf("Provider %s not registered", apfId)) + } + + return nil } func (ps *PublishService) PostApfIdServiceApis(ctx echo.Context, apfId string) error { var newServiceAPIDescription publishserviceapi.ServiceAPIDescription err := ctx.Bind(&newServiceAPIDescription) if err != nil { - return sendCoreError(ctx, http.StatusBadRequest, "Invalid format for service") + return sendCoreError(ctx, http.StatusBadRequest, "Invalid format for service "+apfId) } ps.lock.Lock() @@ -136,14 +148,14 @@ func (ps *PublishService) PostApfIdServiceApis(ctx echo.Context, apfId string) e registeredFuncs := ps.serviceRegister.GetAefsForPublisher(apfId) for _, profile := range *newServiceAPIDescription.AefProfiles { if !slices.Contains(registeredFuncs, profile.AefId) { - return sendCoreError(ctx, http.StatusNotFound, "Function not registered, "+profile.AefId) + return sendCoreError(ctx, http.StatusNotFound, fmt.Sprintf("Function %s not registered", profile.AefId)) } } newId := "api_id_" + newServiceAPIDescription.ApiName newServiceAPIDescription.ApiId = &newId - shouldReturn, returnValue := ps.installHelmChart(newServiceAPIDescription, err, ctx, newId) + shouldReturn, returnValue := ps.installHelmChart(newServiceAPIDescription, ctx) if shouldReturn { return returnValue } @@ -166,14 +178,14 @@ func (ps *PublishService) PostApfIdServiceApis(ctx echo.Context, apfId string) e return nil } -func (ps *PublishService) installHelmChart(newServiceAPIDescription publishserviceapi.ServiceAPIDescription, err error, ctx echo.Context, newId string) (bool, error) { +func (ps *PublishService) installHelmChart(newServiceAPIDescription publishserviceapi.ServiceAPIDescription, ctx echo.Context) (bool, error) { info := strings.Split(*newServiceAPIDescription.Description, ",") if len(info) == 5 { - err = ps.helmManager.InstallHelmChart(info[1], info[2], info[3], info[4]) + err := ps.helmManager.InstallHelmChart(info[1], info[2], info[3], info[4]) if err != nil { - return true, sendCoreError(ctx, http.StatusBadRequest, "Unable to install Helm chart due to: "+err.Error()) + return true, sendCoreError(ctx, http.StatusBadRequest, fmt.Sprintf("Unable to install Helm chart %s due to: %s", info[3], err.Error())) } - log.Info("Installed service: ", newId) + log.Debug("Installed service: ", newServiceAPIDescription.ApiId) } return false, nil } @@ -186,7 +198,7 @@ func (ps *PublishService) DeleteApfIdServiceApisServiceApiId(ctx echo.Context, a info := strings.Split(*description.Description, ",") if len(info) == 5 { ps.helmManager.UninstallHelmChart(info[1], info[3]) - log.Info("Deleted service: ", serviceApiId) + log.Debug("Deleted service: ", serviceApiId) } ps.lock.Lock() defer ps.lock.Unlock()