X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=capifcore%2Finternal%2Fprovidermanagement%2Fprovidermanagement.go;h=0213e89f83da61572ca63b1ccc4f4e9e05f48804;hb=fe5863c7537e25426382bd1e376882c5c7d81a4a;hp=87f297a476eed49bee44c6c628681c0722777235;hpb=3ff31a181cad84bc2f5554f8440390bedb42711c;p=nonrtric%2Fplt%2Fsme.git diff --git a/capifcore/internal/providermanagement/providermanagement.go b/capifcore/internal/providermanagement/providermanagement.go index 87f297a..0213e89 100644 --- a/capifcore/internal/providermanagement/providermanagement.go +++ b/capifcore/internal/providermanagement/providermanagement.go @@ -99,13 +99,7 @@ func (pm *ProviderManager) PostRegistrations(ctx echo.Context) error { return sendCoreError(ctx, http.StatusBadRequest, "Provider missing required ApiProvDomInfo") } - pm.lock.Lock() - defer pm.lock.Unlock() - - newProvider.ApiProvDomId = pm.getDomainId(newProvider.ApiProvDomInfo) - - pm.registerFunctions(newProvider.ApiProvFuncs) - pm.onboardedProviders[*newProvider.ApiProvDomId] = newProvider + pm.prepareNewProvider(&newProvider) uri := ctx.Request().Host + ctx.Request().URL.String() ctx.Response().Header().Set(echo.HeaderLocation, ctx.Scheme()+`://`+path.Join(uri, *newProvider.ApiProvDomId)) @@ -118,19 +112,33 @@ func (pm *ProviderManager) PostRegistrations(ctx echo.Context) error { return nil } -func (pm *ProviderManager) DeleteRegistrationsRegistrationId(ctx echo.Context, registrationId string) error { +func (pm *ProviderManager) prepareNewProvider(newProvider *provapi.APIProviderEnrolmentDetails) { pm.lock.Lock() defer pm.lock.Unlock() + newProvider.ApiProvDomId = pm.getDomainId(newProvider.ApiProvDomInfo) + + pm.registerFunctions(newProvider.ApiProvFuncs) + pm.onboardedProviders[*newProvider.ApiProvDomId] = *newProvider +} + +func (pm *ProviderManager) DeleteRegistrationsRegistrationId(ctx echo.Context, registrationId string) error { + log.Debug(pm.onboardedProviders) if _, ok := pm.onboardedProviders[registrationId]; ok { - log.Debug("Deleting provider", registrationId) - delete(pm.onboardedProviders, registrationId) + pm.deleteProvider(registrationId) } return ctx.NoContent(http.StatusNoContent) } +func (pm *ProviderManager) deleteProvider(registrationId string) { + log.Debug("Deleting provider", registrationId) + pm.lock.Lock() + defer pm.lock.Unlock() + delete(pm.onboardedProviders, registrationId) +} + func (pm *ProviderManager) PutRegistrationsRegistrationId(ctx echo.Context, registrationId string) error { pm.lock.Lock() defer pm.lock.Unlock()