X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=lighty%2Fsrc%2Fmain%2Fjava%2Fio%2Flighty%2Fcontrollers%2Ftpce%2Fmodule%2FTransportPCEImpl.java;h=e629a152c95ca98ae171c7446e4ca47bdea7ce82;hb=8be42823a12d414dfa491305f4912bb642b6d5e2;hp=f0f17c0a74011d303db83b4eda3499da448d547c;hpb=4493d1c0c0e16a522532a49a14638e2dbdc2f90d;p=transportpce.git diff --git a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java index f0f17c0a7..e629a152c 100644 --- a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java +++ b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java @@ -9,6 +9,8 @@ package io.lighty.controllers.tpce.module; import io.lighty.core.controller.api.AbstractLightyModule; import io.lighty.core.controller.api.LightyServices; +import java.util.ArrayList; +import java.util.List; import org.opendaylight.transportpce.common.crossconnect.CrossConnect; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl121; @@ -38,14 +40,12 @@ import org.opendaylight.transportpce.networkmodel.service.FrequenciesServiceImpl import org.opendaylight.transportpce.networkmodel.service.NetworkModelService; import org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl; import org.opendaylight.transportpce.olm.OlmPowerServiceRpcImpl; -import org.opendaylight.transportpce.olm.OlmProvider; import org.opendaylight.transportpce.olm.power.PowerMgmtImpl; import org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl; import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl; -import org.opendaylight.transportpce.pce.impl.PceProvider; +import org.opendaylight.transportpce.pce.impl.PceServiceRPCImpl; import org.opendaylight.transportpce.pce.service.PathComputationService; import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl; -import org.opendaylight.transportpce.renderer.RendererProvider; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory; // Adding OTN interface import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService; @@ -75,6 +75,7 @@ import org.opendaylight.transportpce.tapi.utils.TapiLink; import org.opendaylight.transportpce.tapi.utils.TapiLinkImpl; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.OrgOpenroadmServiceService; +import org.opendaylight.yangtools.concepts.Registration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -87,20 +88,15 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP // because implementation has additional public methods ... private final DeviceTransactionManagerImpl deviceTransactionManager; private final NetworkTransactionService networkTransaction; - // pce beans - private final PceProvider pceProvider; // network model beans private final NetworkModelProvider networkModelProvider; - // OLM beans - private final OlmProvider olmProvider; - // renderer beans - private final RendererProvider rendererProvider; // service-handler beans private final ServicehandlerProvider servicehandlerProvider; // T-api private TapiProvider tapiProvider; // nbi-notifications beans private NbiNotificationsProvider nbiNotificationsProvider; + private List rpcRegistrations = new ArrayList<>(); public TransportPCEImpl( LightyServices lightyServices, boolean activateNbiNotification, boolean activateTapi, @@ -139,20 +135,22 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP new GnpyConsumerImpl( "http://127.0.0.1:8008", "gnpy", "gnpy", lightyServices.getAdapterContext().currentSerializer()), portMapping); - pceProvider = new PceProvider(lgServRPS, pathComputationService); - + rpcRegistrations.add( + new PceServiceRPCImpl(lgServRPS, pathComputationService) + .getRegisteredRpc()); LOG.info("Creating OLM beans ..."); MappingUtils mappingUtils = new MappingUtilsImpl(lgServBDB); CrossConnect crossConnect = initCrossConnect(mappingUtils); OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils, portMapping); - TransportpceOlmService olmPowerServiceRpc = new OlmPowerServiceRpcImpl( + OlmPowerServiceRpcImpl olmPowerServiceRpc = new OlmPowerServiceRpcImpl( new OlmPowerServiceImpl( lgServBDB, new PowerMgmtImpl( openRoadmInterfaces, crossConnect, deviceTransactionManager, portMapping, Long.valueOf(olmtimer1).longValue(), Long.valueOf(olmtimer2).longValue()), - deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces)); - olmProvider = new OlmProvider(lgServRPS, olmPowerServiceRpc); + deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces), + lgServRPS); + rpcRegistrations.add(olmPowerServiceRpc.getRegisteredRpc()); LOG.info("Creating renderer beans ..."); initOpenRoadmFactory(mappingUtils, openRoadmInterfaces, portMapping); DeviceRendererService deviceRendererService = new DeviceRendererServiceImpl( @@ -161,8 +159,7 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP mappingUtils, portMapping); OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl( crossConnect, openRoadmInterfaces, deviceTransactionManager, mappingUtils, portMapping); - rendererProvider = initRenderer( - lightyServices, olmPowerServiceRpc, deviceRendererService, otnDeviceRendererService, portMapping); + initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService, otnDeviceRendererService, portMapping); LOG.info("Creating service-handler beans ..."); RendererServiceOperations rendererServiceOperations = new RendererServiceOperationsImpl( @@ -179,13 +176,14 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP lgServBNPS, serviceDataStoreOperations); NetworkModelListenerImpl networkModelListenerImpl = new NetworkModelListenerImpl( lgServBNPS, serviceDataStoreOperations); - OrgOpenroadmServiceService servicehandler = new ServicehandlerImpl( + ServicehandlerImpl servicehandler = new ServicehandlerImpl(lgServRPS, pathComputationService, rendererServiceOperations, lgServBNPS, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, serviceDataStoreOperations, new CatalogDataStoreOperationsImpl(networkTransaction)); + rpcRegistrations.add(servicehandler.getRegisteredRpc()); servicehandlerProvider = new ServicehandlerProvider( - lgServBDB, lgServRPS, + lgServBDB, lgServNS, serviceDataStoreOperations, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, lgServBNPS, servicehandler, @@ -194,7 +192,7 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP if (activateTapi) { LOG.info("Creating tapi beans ..."); TapiLink tapiLink = new TapiLinkImpl(networkTransaction); - new TapiNetworkUtilsImpl(networkTransaction, tapiLink); + new TapiNetworkUtilsImpl(lgServRPS, networkTransaction, tapiLink); tapiProvider = initTapi( lightyServices, servicehandler, networkTransaction, serviceDataStoreOperations, new TapiNetworkModelListenerImpl( @@ -203,13 +201,14 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP new TapiNetworkModelServiceImpl( networkTransaction, deviceTransactionManager, tapiLink, lgServBNPS)); + rpcRegistrations.addAll(tapiProvider.getRegisteredRpcs()); } if (activateNbiNotification) { LOG.info("Creating nbi-notifications beans ..."); nbiNotificationsProvider = new NbiNotificationsProvider( - null, null, lgServRPS, - lgServNS, lightyServices.getAdapterContext().currentSerializer(), - networkTransaction); + lgServRPS, lgServNS, + lightyServices.getAdapterContext().currentSerializer(), + networkTransaction, null); } } @@ -236,16 +235,14 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP LOG.info("Shutting down service-handler provider ..."); } servicehandlerProvider.close(); - LOG.info("Shutting down renderer provider ..."); - rendererProvider.close(); - LOG.info("Shutting down OLM provider ..."); - olmProvider.close(); LOG.info("Shutting down network-model provider ..."); networkModelProvider.close(); - LOG.info("Shutting down PCE provider ..."); - pceProvider.close(); LOG.info("Shutting down transaction providers ..."); deviceTransactionManager.preDestroy(); + LOG.info("Closing registered RPCs..."); + for (Registration reg : rpcRegistrations) { + reg.close(); + } LOG.info("Shutdown done."); return true; } @@ -259,23 +256,30 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP lightyServices.getBindingDataBroker(), lightyServices.getRpcProviderService(), lightyServices.getNotificationService(), lightyServices.getBindingNotificationPublishService(), networkTransactionService, servicehandler, serviceDataStoreOperations, - new TapiNetworkUtilsImpl(networkTransactionService, tapiLink), tapiNetworkModelListenerImpl, tapiNetworkModelService); } - private RendererProvider initRenderer( + private void initRenderer( LightyServices lightyServices, TransportpceOlmService olmPowerServiceRpc, DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService, PortMapping portMapping) { - return new RendererProvider( - lightyServices.getRpcProviderService(), deviceRendererService, - otnDeviceRendererService, - new DeviceRendererRPCImpl(deviceRendererService, otnDeviceRendererService), + rpcRegistrations.add( + new DeviceRendererRPCImpl( + lightyServices.getRpcProviderService(), + deviceRendererService, + otnDeviceRendererService) + .getRegisteredRpc()); + rpcRegistrations.add( new TransportPCEServicePathRPCImpl( - new RendererServiceOperationsImpl( - deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc, - lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(), - portMapping))); + new RendererServiceOperationsImpl( + deviceRendererService, + otnDeviceRendererService, + olmPowerServiceRpc, + lightyServices.getBindingDataBroker(), + lightyServices.getBindingNotificationPublishService(), + portMapping), + lightyServices.getRpcProviderService()) + .getRegisteredRpc()); } private OpenRoadmInterfaceFactory initOpenRoadmFactory(