// Retrieve all published APIs.
func (ps *PublishService) GetApfIdServiceApis(ctx echo.Context, apfId string) error {
- if !ps.serviceRegister.IsPublishingFunctionRegistered(apfId) {
- errorMsg := fmt.Sprintf("Unable to get the service due to %s api is only available for publishers", apfId)
- return sendCoreError(ctx, http.StatusNotFound, errorMsg)
- }
+ ps.lock.Lock()
+ serviceDescriptions, ok := ps.publishedServices[apfId]
+ ps.lock.Unlock()
- serviceDescriptions := ps.publishedServices[apfId]
- err := ctx.JSON(http.StatusOK, serviceDescriptions)
- if err != nil {
- // Something really bad happened, tell Echo that our handler failed
- return err
+ if ok {
+ err := ctx.JSON(http.StatusOK, serviceDescriptions)
+ if err != nil {
+ // Something really bad happened, tell Echo that our handler failed
+ return err
+ }
+ } else {
+ if !ps.serviceRegister.IsPublishingFunctionRegistered(apfId) {
+ errorMsg := fmt.Sprintf("Unable to get the service due to %s api is only available for publishers", apfId)
+ return sendCoreError(ctx, http.StatusNotFound, errorMsg)
+ }
+
+ serviceDescriptions = []publishapi.ServiceAPIDescription{}
+ err := ctx.JSON(http.StatusOK, serviceDescriptions)
+ if err != nil {
+ // Something really bad happened, tell Echo that our handler failed
+ return err
+ }
}
return nil
}
func (ps *PublishService) installHelmChart(newServiceAPIDescription publishapi.ServiceAPIDescription, ctx echo.Context) (bool, error) {
info := strings.Split(*newServiceAPIDescription.Description, ",")
- if len(info) == 5 {
+ if (len(info) == 5) && (ps.helmManager != nil) {
err := ps.helmManager.InstallHelmChart(info[1], info[2], info[3], info[4])
if err != nil {
return true, sendCoreError(ctx, http.StatusBadRequest, fmt.Sprintf("Unable to install Helm chart %s due to: %s", info[3], err.Error()))
pos, description := getServiceDescription(serviceApiId, serviceDescriptions)
if description != nil {
info := strings.Split(*description.Description, ",")
- if len(info) == 5 {
+ if (len(info) == 5) && (ps.helmManager != nil) {
ps.helmManager.UninstallHelmChart(info[1], info[3])
log.Debug("Deleted service: ", serviceApiId)
}