X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=blobdiff_plain;f=lighty%2Fsrc%2Fmain%2Fjava%2Fio%2Flighty%2Fcontrollers%2Ftpce%2Fmodule%2FTransportPCEImpl.java;h=f977f15d3470a90722a1f4fa23ef26b7e4249052;hp=7555aad808aaf709ab5f69578b9208d7e2fb1899;hb=49a7298494b14c83bb5ac0a33abb5bf1340b6f13;hpb=bfea62e2a8396424a527f0cad1521b8c16a13c90;ds=sidebyside 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 7555aad80..f977f15d3 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,18 +9,20 @@ package io.lighty.controllers.tpce.module; import io.lighty.core.controller.api.AbstractLightyModule; import io.lighty.core.controller.api.LightyServices; +import java.util.Arrays; +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; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl221; import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl; -import org.opendaylight.transportpce.common.fixedflex.FixedFlexImpl; import org.opendaylight.transportpce.common.mapping.MappingUtils; import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl; import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.mapping.PortMappingImpl; import org.opendaylight.transportpce.common.mapping.PortMappingVersion121; import org.opendaylight.transportpce.common.mapping.PortMappingVersion221; +import org.opendaylight.transportpce.common.mapping.PortMappingVersion710; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.common.network.RequestProcessor; @@ -28,10 +30,15 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl221; +import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl710; +import org.opendaylight.transportpce.nbinotifications.impl.NbiNotificationsProvider; import org.opendaylight.transportpce.networkmodel.NetConfTopologyListener; import org.opendaylight.transportpce.networkmodel.NetworkModelProvider; import org.opendaylight.transportpce.networkmodel.NetworkUtilsImpl; import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery; +import org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener; +import org.opendaylight.transportpce.networkmodel.service.FrequenciesService; +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; @@ -40,14 +47,15 @@ import org.opendaylight.transportpce.olm.power.PowerMgmt; import org.opendaylight.transportpce.olm.power.PowerMgmtImpl; import org.opendaylight.transportpce.olm.service.OlmPowerService; import org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumer; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl; import org.opendaylight.transportpce.pce.impl.PceProvider; import org.opendaylight.transportpce.pce.service.PathComputationService; import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl; -import org.opendaylight.transportpce.renderer.NetworkModelWavelengthService; -import org.opendaylight.transportpce.renderer.NetworkModelWavelengthServiceImpl; import org.opendaylight.transportpce.renderer.RendererProvider; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221; +import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory; // Adding OTN interface import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221; @@ -59,17 +67,18 @@ import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererS import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperationsImpl; import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; +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.service.ServiceDataStoreOperations; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl; -import org.opendaylight.transportpce.servicehandler.service.ServiceHandlerOperations; -import org.opendaylight.transportpce.servicehandler.service.ServiceHandlerOperationsImpl; import org.opendaylight.transportpce.tapi.impl.TapiProvider; import org.opendaylight.transportpce.tapi.utils.TapiListener; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.TransportpceNetworkutilsService; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.TransportpceOlmService; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.OrgOpenroadmServiceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,19 +103,21 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP private final TapiProvider tapiProvider; // service-handler beans private final ServicehandlerProvider servicehandlerProvider; + // nbi-notifications beans + private NbiNotificationsProvider nbiNotificationsProvider; + /** + * List of publisher topics. + */ + private final List publisherTopicList = + Arrays.asList("PceListener", "ServiceHandlerOperations", "ServiceHandler", "RendererListener"); - public TransportPCEImpl(LightyServices lightyServices) { + public TransportPCEImpl(LightyServices lightyServices, boolean activateNbiNotification) { LOG.info("Initializing transaction providers ..."); deviceTransactionManager = new DeviceTransactionManagerImpl(lightyServices.getBindingMountPointService(), MAX_DURATION_TO_SUBMIT_TRANSACTION); RequestProcessor requestProcessor = new RequestProcessor(lightyServices.getBindingDataBroker()); networkTransaction = new NetworkTransactionImpl(requestProcessor); - LOG.info("Creating PCE beans ..."); - PathComputationService pathComputationService = new PathComputationServiceImpl(networkTransaction, - lightyServices.getBindingNotificationPublishService()); - pceProvider = new PceProvider(lightyServices.getRpcProviderService(), pathComputationService); - LOG.info("Creating network-model beans ..."); R2RLinkDiscovery linkDiscoveryImpl = new R2RLinkDiscovery(lightyServices.getBindingDataBroker(), deviceTransactionManager, networkTransaction); @@ -116,11 +127,27 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils); PortMapping portMapping = initPortMapping(lightyServices, openRoadmInterfaces); NetworkModelService networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl, - portMapping); + portMapping, lightyServices.getBindingNotificationPublishService()); + FrequenciesService networkModelWavelengthService = + new FrequenciesServiceImpl(lightyServices.getBindingDataBroker()); NetConfTopologyListener netConfTopologyListener = new NetConfTopologyListener(networkModelService, - lightyServices.getBindingDataBroker(), deviceTransactionManager); + lightyServices.getBindingDataBroker(), deviceTransactionManager, portMapping); + PortMappingListener portMappingListener = new PortMappingListener(networkModelService); networkModelProvider = new NetworkModelProvider(networkTransaction, lightyServices.getBindingDataBroker(), - lightyServices.getRpcProviderService(), networkutilsServiceImpl, netConfTopologyListener); + lightyServices.getRpcProviderService(), networkutilsServiceImpl, netConfTopologyListener, + lightyServices.getNotificationService(), networkModelWavelengthService, portMappingListener); + + LOG.info("Creating PCE beans ..."); + // TODO: pass those parameters through command line + GnpyConsumer gnpyConsumer = new GnpyConsumerImpl("http://127.0.0.1:8008", + "gnpy", "gnpy", lightyServices.getAdapterContext().currentSerializer()); + PathComputationService pathComputationService = new PathComputationServiceImpl( + networkTransaction, + lightyServices.getBindingNotificationPublishService(), + gnpyConsumer, + portMapping + ); + pceProvider = new PceProvider(lightyServices.getRpcProviderService(), pathComputationService); LOG.info("Creating OLM beans ..."); CrossConnect crossConnect = initCrossConnect(mappingUtils); @@ -139,21 +166,35 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP openRoadmInterfaces, crossConnect, portMapping, networkModelService); OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory, crossConnect, openRoadmInterfaces, deviceTransactionManager, networkModelService); - NetworkModelWavelengthService networkModelWavelengthService = new NetworkModelWavelengthServiceImpl( - lightyServices.getBindingDataBroker()); - rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, networkModelWavelengthService, - deviceRendererService, otnDeviceRendererService); + rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService, + otnDeviceRendererService); LOG.info("Creating service-handler beans ..."); RendererServiceOperations rendererServiceOperations = new RendererServiceOperationsImpl(deviceRendererService, - olmPowerServiceRpc, lightyServices.getBindingDataBroker(), networkModelWavelengthService, + otnDeviceRendererService, olmPowerServiceRpc, lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService()); + ServiceDataStoreOperations serviceDataStoreOperations = new ServiceDataStoreOperationsImpl( + lightyServices.getBindingDataBroker()); + RendererListenerImpl rendererListenerImpl = new RendererListenerImpl(pathComputationService, + lightyServices.getBindingNotificationPublishService()); + PceListenerImpl pceListenerImpl = new PceListenerImpl(rendererServiceOperations, pathComputationService, + lightyServices.getBindingNotificationPublishService(), serviceDataStoreOperations); + NetworkModelListenerImpl networkModelListenerImpl = new NetworkModelListenerImpl( + lightyServices.getBindingNotificationPublishService(), serviceDataStoreOperations); + ServicehandlerImpl servicehandler = new ServicehandlerImpl(lightyServices.getBindingDataBroker(), + pathComputationService, rendererServiceOperations, lightyServices.getBindingNotificationPublishService(), + pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, serviceDataStoreOperations, "N/A"); servicehandlerProvider = new ServicehandlerProvider(lightyServices.getBindingDataBroker(), - lightyServices.getRpcProviderService(), lightyServices.getNotificationService(), pathComputationService, - rendererServiceOperations, networkModelWavelengthService, - lightyServices.getBindingNotificationPublishService()); - tapiProvider = initTapi(lightyServices, rendererServiceOperations, networkModelWavelengthService, - pathComputationService); + lightyServices.getRpcProviderService(), lightyServices.getNotificationService(), + serviceDataStoreOperations, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, + servicehandler); + tapiProvider = initTapi(lightyServices, servicehandler); + if (activateNbiNotification) { + LOG.info("Creating nbi-notifications beans ..."); + nbiNotificationsProvider = new NbiNotificationsProvider( + publisherTopicList, null, null, lightyServices.getRpcProviderService(), + lightyServices.getNotificationService(), lightyServices.getAdapterContext().currentSerializer()); + } } @Override @@ -170,12 +211,18 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP servicehandlerProvider.init(); LOG.info("Initializing tapi provider ..."); tapiProvider.init(); + if(nbiNotificationsProvider != null) { + LOG.info("Initializing nbi-notifications provider ..."); + nbiNotificationsProvider.init(); + } LOG.info("Init done."); return true; } @Override protected boolean stopProcedure() { + nbiNotificationsProvider.close(); + LOG.info("Shutting down nbi-notifications provider ..."); tapiProvider.close(); LOG.info("Shutting down service-handler provider ..."); servicehandlerProvider.close(); @@ -199,24 +246,11 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP * * @param lightyServices LightyServices * @param rendererServiceOperations RendererServiceOperations - * @param networkModelWavelengthService NetworkModelWavelengthService * @return TapiProvider instance */ - private TapiProvider initTapi(LightyServices lightyServices, RendererServiceOperations rendererServiceOperations, - NetworkModelWavelengthService networkModelWavelengthService, - PathComputationService pathComputationService) { - RendererListenerImpl rendererListenerImpl = new RendererListenerImpl(pathComputationService, - lightyServices.getBindingNotificationPublishService()); - ServiceDataStoreOperations serviceDataStoreOperations = new ServiceDataStoreOperationsImpl( - lightyServices.getBindingDataBroker()); - PceListenerImpl pceListenerImpl = new PceListenerImpl(rendererServiceOperations, pathComputationService, - lightyServices.getBindingNotificationPublishService(), serviceDataStoreOperations); - ServiceHandlerOperations serviceHandlerOperations = new ServiceHandlerOperationsImpl( - lightyServices.getBindingDataBroker(), pathComputationService, rendererServiceOperations, - lightyServices.getBindingNotificationPublishService(), pceListenerImpl, rendererListenerImpl, - networkModelWavelengthService); + private TapiProvider initTapi(LightyServices lightyServices, OrgOpenroadmServiceService servicehandler) { return new TapiProvider(lightyServices.getBindingDataBroker(), lightyServices.getRpcProviderService(), - serviceHandlerOperations, new TapiListener()); + servicehandler, new TapiListener()); } /** @@ -224,19 +258,17 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP * * @param lightyServices LightyServices * @param olmPowerServiceRpc TransportpceOlmService - * @param networkModelWavelengthService NetworkModelWavelengthService * @param deviceRendererService DeviceRendererService * @param otnDeviceRendererService OtnDeviceRendererService * @return RendererProvider instance */ private RendererProvider initRenderer(LightyServices lightyServices, TransportpceOlmService olmPowerServiceRpc, - NetworkModelWavelengthService networkModelWavelengthService, DeviceRendererService deviceRendererService, - OtnDeviceRendererService otnDeviceRendererService) { + DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService) { DeviceRendererRPCImpl deviceRendererRPC = new DeviceRendererRPCImpl(deviceRendererService, otnDeviceRendererService); RendererServiceOperationsImpl rendererServiceOperations = new RendererServiceOperationsImpl( - deviceRendererService, olmPowerServiceRpc, lightyServices.getBindingDataBroker(), - networkModelWavelengthService, lightyServices.getBindingNotificationPublishService()); + deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc, + lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService()); return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererRPC, rendererServiceOperations); } @@ -252,12 +284,12 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP private OpenRoadmInterfaceFactory initOpenRoadmFactory(MappingUtils mappingUtils, OpenRoadmInterfaces openRoadmInterfaces, PortMapping portMapping) { OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces); - OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces, - new FixedFlexImpl()); + OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces); + OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces); OpenRoadmOtnInterface221 openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping, openRoadmInterfaces); return new OpenRoadmInterfaceFactory(mappingUtils, openRoadmInterface121, openRoadmInterface221, - openRoadmOtnInterface221); + openRoadmInterface710, openRoadmOtnInterface221); } /** @@ -268,11 +300,14 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP * @return PortMapping instance */ private PortMapping initPortMapping(LightyServices lightyServices, OpenRoadmInterfaces openRoadmInterfaces) { + PortMappingVersion710 portMappingVersion710 = new PortMappingVersion710(lightyServices.getBindingDataBroker(), + deviceTransactionManager, openRoadmInterfaces); PortMappingVersion221 portMappingVersion221 = new PortMappingVersion221(lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaces); PortMappingVersion121 portMappingVersion121 = new PortMappingVersion121(lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaces); - return new PortMappingImpl(lightyServices.getBindingDataBroker(), portMappingVersion221, portMappingVersion121); + return new PortMappingImpl(lightyServices.getBindingDataBroker(), portMappingVersion710, + portMappingVersion221, portMappingVersion121); } /** @@ -286,8 +321,10 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP deviceTransactionManager); OpenRoadmInterfacesImpl221 openRoadmInterfacesImpl221 = new OpenRoadmInterfacesImpl221( deviceTransactionManager); + OpenRoadmInterfacesImpl710 openRoadmInterfacesImpl710 = new OpenRoadmInterfacesImpl710( + deviceTransactionManager); return new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils, openRoadmInterfacesImpl121, - openRoadmInterfacesImpl221); + openRoadmInterfacesImpl221, openRoadmInterfacesImpl710); } /** @@ -301,4 +338,4 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP CrossConnectImpl221 crossConnectImpl221 = new CrossConnectImpl221(deviceTransactionManager); return new CrossConnectImpl(deviceTransactionManager, mappingUtils, crossConnectImpl121, crossConnectImpl221); } -} \ No newline at end of file +}