X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=nokiav2%2Fdriver%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fvfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm%2Fnokia%2Fonap%2Fcore%2FSelfRegistrationManager.java;h=0c57c3760526156215273cf428323d40347a0e00;hb=refs%2Fchanges%2F59%2F38259%2F4;hp=3fda6192255e8c36ac878d5aaead5f4f8cc8e602;hpb=817338bc7da3127ff01e6736d284a081461f484b;p=vfc%2Fnfvo%2Fdriver%2Fvnfm%2Fsvnfm.git diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java index 3fda6192..0c57c376 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java @@ -16,14 +16,12 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core; -import com.nokia.cbam.lcn.v32.ApiException; import com.nokia.cbam.lcn.v32.api.SubscriptionsApi; import com.nokia.cbam.lcn.v32.model.*; -import org.onap.msb.sdk.discovery.common.RouteException; -import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo; -import org.onap.msb.sdk.discovery.entity.MicroServiceInfo; -import org.onap.msb.sdk.discovery.entity.Node; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions; +import java.util.ArrayList; +import org.onap.msb.model.MicroServiceFullInfo; +import org.onap.msb.model.MicroServiceInfo; +import org.onap.msb.model.Node; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.CbamRestApiProvider; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.DriverProperties; import org.slf4j.Logger; @@ -31,11 +29,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.HashSet; - import static com.nokia.cbam.lcn.v32.model.SubscriptionAuthentication.TypeEnum.NONE; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.buildFatalFailure; +import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions.systemFunctions; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.CbamRestApiProvider.NOKIA_LCN_API_VERSION; import static org.slf4j.LoggerFactory.getLogger; @@ -90,17 +86,20 @@ public class SelfRegistrationManager { public void deRegister() { try { logger.info("Cancelling micro service registration"); - msbApiProvider.getMsbClient().cancelMicroServiceInfo(SERVICE_NAME, DRIVER_VERSION); - } catch (RouteException e) { + systemFunctions().blockingFirst(msbApiProvider.getMsbApi().deleteMicroService(SERVICE_NAME, DRIVER_VERSION, null, null)); + } catch (Exception e) { //ONAP throws 500 internal server error, but deletes the micro service + boolean serviceFoundAfterDelete = false; try { - msbApiProvider.getMsbClient().queryMicroServiceInfo(SERVICE_NAME, DRIVER_VERSION); - //the micro service still exists - throw buildFatalFailure(logger, "Unable to deRegister Nokia VNFM driver", e); - } catch (RouteException e1) { + msbApiProvider.getMsbApi().getMicroService_0(SERVICE_NAME, DRIVER_VERSION, null, null, null, null, null); + serviceFoundAfterDelete = true; + } catch (Exception e1) { logger.info("Unable to query " + SERVICE_NAME + " from MSB (so the service was successfully deleted)", e1); // the micro service was deleted (even though 500 HTTP code was reported) } + if (serviceFoundAfterDelete) { + throw buildFatalFailure(logger, "Unable to deRegister Nokia VNFM driver", e); + } } deleteSubscription(driverProperties.getVnfmId()); } @@ -109,7 +108,7 @@ public class SelfRegistrationManager { * @return the swagger API definition */ public byte[] getSwaggerApiDefinition() { - return SystemFunctions.systemFunctions().loadFile(SWAGGER_API_DEFINITION); + return systemFunctions().loadFile(SWAGGER_API_DEFINITION); } private String getDriverVnfmUrl() { @@ -121,12 +120,13 @@ public class SelfRegistrationManager { SubscriptionsApi lcnApi = cbamRestApiProvider.getCbamLcnApi(vnfmId); try { String callbackUrl = getDriverVnfmUrl() + DriverProperties.LCN_URL; - for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION)) { + for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION).blockingFirst()) { if (subscription.getCallbackUrl().equals(callbackUrl)) { - lcnApi.subscriptionsSubscriptionIdDelete(subscription.getId(), NOKIA_LCN_API_VERSION); + logger.info("Deleting subscription with {} identifier", subscription.getId()); + systemFunctions().blockingFirst(lcnApi.subscriptionsSubscriptionIdDelete(subscription.getId(), NOKIA_LCN_API_VERSION)); } } - } catch (ApiException e) { + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to delete CBAM LCN subscription", e); } } @@ -136,21 +136,20 @@ public class SelfRegistrationManager { MicroServiceInfo microServiceInfo = new MicroServiceInfo(); microServiceInfo.setUrl(DriverProperties.BASE_URL); //the PATH should not be set - microServiceInfo.setProtocol("REST"); - microServiceInfo.setVisualRange(INTERNAL_SERVICE); + microServiceInfo.setProtocol(MicroServiceInfo.ProtocolEnum.REST); + microServiceInfo.setVisualRange(MicroServiceInfo.VisualRangeEnum._1); microServiceInfo.setServiceName(SERVICE_NAME); microServiceInfo.setVersion(DRIVER_VERSION); - //FIXME set enable_ssl to false after the field has been added to MSB SDK https://jira.onap.org/browse/MSB-151 - //currently defaults to false, which is good + microServiceInfo.setEnableSsl(false); Node node = new Node(); - microServiceInfo.setNodes(new HashSet<>()); + microServiceInfo.setNodes(new ArrayList<>()); microServiceInfo.getNodes().add(node); node.setIp(driverMsbExternalIp); node.setPort(driverPort); node.setTtl("0"); try { - return msbApiProvider.getMsbClient().registerMicroServiceInfo(microServiceInfo); - } catch (RouteException e) { + return msbApiProvider.getMsbApi().addMicroService(microServiceInfo, true, false).blockingFirst(); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to register Nokia VNFM driver", e); } } @@ -160,8 +159,9 @@ public class SelfRegistrationManager { logger.info("Subscribing to CBAM LCN {} with callback to {}", driverProperties.getCbamLcnUrl(), callbackUrl); SubscriptionsApi lcnApi = cbamRestApiProvider.getCbamLcnApi(vnfmId); try { - for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION)) { + for (Subscription subscription : lcnApi.subscriptionsGet(NOKIA_LCN_API_VERSION).blockingFirst()) { if (subscription.getCallbackUrl().equals(callbackUrl)) { + logger.warn("The subscription with {} identifier has the same callback URL", subscription.getId()); return; } } @@ -177,8 +177,9 @@ public class SelfRegistrationManager { SubscriptionAuthentication subscriptionAuthentication = new SubscriptionAuthentication(); subscriptionAuthentication.setType(NONE); request.setAuthentication(subscriptionAuthentication); - lcnApi.subscriptionsPost(request, NOKIA_LCN_API_VERSION); - } catch (ApiException e) { + Subscription createdSubscription = lcnApi.subscriptionsPost(request, NOKIA_LCN_API_VERSION).blockingFirst(); + logger.info("Subscribed to LCN with {} identifier", createdSubscription.getId()); + } catch (Exception e) { throw buildFatalFailure(logger, "Unable to subscribe to CBAM LCN", e); } }