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=739c34014afcbbdb98b52417e2902b8f6a1057b6;hb=80b5cdcc604a1d13918c30e4a1bb389a4b834fc3;hp=f0f17c0a74011d303db83b4eda3499da448d547c;hpb=90f34a652cd45f0c313d0426d89359c8cf9f29ba;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..739c34014 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,13 @@ 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 +76,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; @@ -91,16 +93,13 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP 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 +138,21 @@ 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); + pceProvider = new PceProvider(lgServRPS, pathComputationService, new PceServiceRPCImpl(pathComputationService)); 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 +161,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( @@ -236,16 +235,16 @@ 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; } @@ -263,19 +262,27 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP 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(