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=d6e44ad9a80c9e26135e5101e5ef44e0a049791f;hb=46b020d25342f0ca86d83f6a503d7565f67f829e;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..d6e44ad9a 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; @@ -58,16 +58,16 @@ import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOpe import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl; import org.opendaylight.transportpce.servicehandler.catalog.CatalogDataStoreOperationsImpl; +import org.opendaylight.transportpce.servicehandler.impl.ServiceHandlerProvider; import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerImpl; -import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerProvider; -import org.opendaylight.transportpce.servicehandler.listeners.NetworkModelListenerImpl; -import org.opendaylight.transportpce.servicehandler.listeners.PceListenerImpl; -import org.opendaylight.transportpce.servicehandler.listeners.RendererListenerImpl; +import org.opendaylight.transportpce.servicehandler.listeners.NetworkModelNotificationHandler; +import org.opendaylight.transportpce.servicehandler.listeners.PceNotificationHandler; +import org.opendaylight.transportpce.servicehandler.listeners.RendererNotificationHandler; import org.opendaylight.transportpce.servicehandler.listeners.ServiceListener; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl; import org.opendaylight.transportpce.tapi.impl.TapiProvider; -import org.opendaylight.transportpce.tapi.listeners.TapiNetworkModelListenerImpl; +import org.opendaylight.transportpce.tapi.listeners.TapiNetworkModelNotificationHandler; import org.opendaylight.transportpce.tapi.topology.TapiNetworkModelService; import org.opendaylight.transportpce.tapi.topology.TapiNetworkModelServiceImpl; import org.opendaylight.transportpce.tapi.topology.TapiNetworkUtilsImpl; @@ -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; + 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( @@ -172,44 +169,45 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP portMapping); ServiceDataStoreOperations serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(lgServBDB); - RendererListenerImpl rendererListenerImpl = - new RendererListenerImpl(pathComputationService, lgServBNPS, networkModelService); - PceListenerImpl pceListenerImpl = new PceListenerImpl( + RendererNotificationHandler rendererNotificationHandler = + new RendererNotificationHandler(pathComputationService, lgServBNPS, networkModelService); + PceNotificationHandler pceListenerImpl = new PceNotificationHandler( rendererServiceOperations, pathComputationService, lgServBNPS, serviceDataStoreOperations); - NetworkModelListenerImpl networkModelListenerImpl = new NetworkModelListenerImpl( + NetworkModelNotificationHandler networkModelNotificationHandler = new NetworkModelNotificationHandler( lgServBNPS, serviceDataStoreOperations); - OrgOpenroadmServiceService servicehandler = new ServicehandlerImpl( + ServicehandlerImpl servicehandler = new ServicehandlerImpl(lgServRPS, pathComputationService, rendererServiceOperations, lgServBNPS, pceListenerImpl, - rendererListenerImpl, networkModelListenerImpl, serviceDataStoreOperations, + rendererNotificationHandler, networkModelNotificationHandler, serviceDataStoreOperations, new CatalogDataStoreOperationsImpl(networkTransaction)); - servicehandlerProvider = new ServicehandlerProvider( - lgServBDB, lgServRPS, + rpcRegistrations.add(servicehandler.getRegisteredRpc()); + servicehandlerProvider = new ServiceHandlerProvider( + lgServBDB, lgServNS, serviceDataStoreOperations, pceListenerImpl, - rendererListenerImpl, networkModelListenerImpl, lgServBNPS, - servicehandler, + rendererNotificationHandler, networkModelNotificationHandler, new ServiceListener( servicehandler, serviceDataStoreOperations, lgServBNPS)); 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( + new TapiNetworkModelNotificationHandler( networkTransaction, lgServBNPS), tapiLink, 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 +234,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; } @@ -253,29 +249,36 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP private TapiProvider initTapi( LightyServices lightyServices, OrgOpenroadmServiceService servicehandler, NetworkTransactionService networkTransactionService, ServiceDataStoreOperations serviceDataStoreOperations, - TapiNetworkModelListenerImpl tapiNetworkModelListenerImpl, TapiLink tapiLink, + TapiNetworkModelNotificationHandler tapiNetworkModelNotificationHandler, TapiLink tapiLink, TapiNetworkModelService tapiNetworkModelService) { return new TapiProvider( lightyServices.getBindingDataBroker(), lightyServices.getRpcProviderService(), lightyServices.getNotificationService(), lightyServices.getBindingNotificationPublishService(), networkTransactionService, servicehandler, serviceDataStoreOperations, - new TapiNetworkUtilsImpl(networkTransactionService, tapiLink), - tapiNetworkModelListenerImpl, tapiNetworkModelService); + tapiNetworkModelNotificationHandler, 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(