<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-api</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-artifacts</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencyManagement>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-common</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>5.0.3</version>
+ <version>5.0.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-dmaap-client</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<description>client to send message to Dmaap message router</description>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>features-transportpce</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: TransportPCE :: Features</name>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce-dmaap-client</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce :: dmaap-client</name>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce-inventory</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce :: Inventory</name>
<properties>
<mdsal.version>11.0.7</mdsal.version>
- <netconf.version>5.0.3</netconf.version>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <netconf.version>5.0.4</netconf.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
<transportpce.db.host>localhost:3306</transportpce.db.host>
<transportpce.db.database>transportpce</transportpce.db.database>
<transportpce.db.username>root</transportpce.db.username>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce-nbinotifications</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce :: nbinotifications</name>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce-swagger</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce :: swagger</name>
<properties>
- <netconf.version>5.0.3</netconf.version>
+ <netconf.version>5.0.4</netconf.version>
<configfile.directory>etc/opendaylight/karaf</configfile.directory>
<skip.karaf.featureTest>false</skip.karaf.featureTest>
</properties>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce-tapi</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce :: tapi</name>
<properties>
<mdsal.version>11.0.7</mdsal.version>
- <netconf.version>5.0.3</netconf.version>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <netconf.version>5.0.4</netconf.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
<skip.karaf.featureTest>false</skip.karaf.featureTest>
</properties>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>odl-transportpce</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>feature</packaging>
<name>OpenDaylight :: transportpce</name>
<properties>
- <netconf.version>5.0.3</netconf.version>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <netconf.version>5.0.4</netconf.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
<configfile.directory>etc/opendaylight/karaf</configfile.directory>
<skip.karaf.featureTest>false</skip.karaf.featureTest>
</properties>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>features-aggregator</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<name>${project.artifactId}</name>
<packaging>pom</packaging>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-inventory</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>5.0.3</version>
+ <version>5.0.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-karaf</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
cd $(dirname "$0")
export JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED"
-#./build_lighty_core.sh
-mvn clean install -B -U -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -s ../tests/odl_settings.xml
+./build_lighty_core.sh
+mvn clean install -B -U -q -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -s ../tests/odl_settings.xml
unzip -q target/tpce-bin.zip -d target
cd ..
git clone https://github.com/PantheonTechnologies/lighty-core.git
cd lighty-core
-#git checkout master
-git checkout 15.1.x
+git checkout main
+#git checkout 18.0.x
export JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED"
-mvn clean install -B -U -DskipTests -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
+mvn clean install -B -U -q -DskipTests -Dmaven.javadoc.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
<parent>
<groupId>io.lighty.core</groupId>
<artifactId>lighty-app-parent</artifactId>
- <version>17.1.0</version>
+ <version>18.0.0-SNAPSHOT</version>
<relativePath/>
</parent>
<groupId>io.lighty.controllers</groupId>
<artifactId>tpce</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<application.main.class>io.lighty.controllers.tpce.Main</application.main.class>
<application.attach.zip>true</application.attach.zip>
<maven.deploy.skip>true</maven.deploy.skip>
- <transportpce.version>7.0.0-SNAPSHOT</transportpce.version>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.version>7.0.1-SNAPSHOT</transportpce.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
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;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121;
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.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;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710;
import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServiceImpl;
import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
import org.opendaylight.transportpce.tapi.topology.TapiPortMappingListener;
import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiListener;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.TransportpceNetworkutilsService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.TransportpceTapinetworkutilsService;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OrgOpenroadmServiceService;
import org.slf4j.Logger;
LOG.info("Creating network-model beans ...");
R2RLinkDiscovery linkDiscoveryImpl = new R2RLinkDiscovery(lightyServices.getBindingDataBroker(),
deviceTransactionManager, networkTransaction);
- TransportpceNetworkutilsService networkutilsServiceImpl = new NetworkUtilsImpl(
- lightyServices.getBindingDataBroker());
PortMapping portMapping = initPortMapping(lightyServices);
- NetworkModelService networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl,
- portMapping, lightyServices.getBindingNotificationPublishService());
- FrequenciesService networkModelWavelengthService =
- new FrequenciesServiceImpl(lightyServices.getBindingDataBroker());
- NetConfTopologyListener netConfTopologyListener = new NetConfTopologyListener(networkModelService,
+ NetworkModelService networkModelService = new NetworkModelServiceImpl(lightyServices.getBindingDataBroker(),
+ deviceTransactionManager, networkTransaction, portMapping,
+ lightyServices.getBindingNotificationPublishService());
+ FrequenciesService networkModelWavelengthService = new FrequenciesServiceImpl(
+ lightyServices.getBindingDataBroker());
+ new NetConfTopologyListener(networkModelService,
lightyServices.getBindingDataBroker(), deviceTransactionManager, portMapping);
- PortMappingListener portMappingListener = new PortMappingListener(networkModelService);
+ new PortMappingListener(networkModelService);
networkModelProvider = new NetworkModelProvider(networkTransaction, lightyServices.getBindingDataBroker(),
- lightyServices.getRpcProviderService(), networkutilsServiceImpl, netConfTopologyListener,
- lightyServices.getNotificationService(), networkModelWavelengthService, portMappingListener);
+ lightyServices.getRpcProviderService(), networkModelService, deviceTransactionManager, portMapping,
+ lightyServices.getNotificationService(), networkModelWavelengthService);
LOG.info("Creating PCE beans ...");
// TODO: pass those parameters through command line
MappingUtils mappingUtils = new MappingUtilsImpl(lightyServices.getBindingDataBroker());
CrossConnect crossConnect = initCrossConnect(mappingUtils);
OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils, portMapping);
- PowerMgmt powerMgmt = new PowerMgmtImpl(lightyServices.getBindingDataBroker(), openRoadmInterfaces,
- crossConnect, deviceTransactionManager, portMapping, olmtimer1, olmtimer2);
+ PowerMgmt powerMgmt = new PowerMgmtImpl(openRoadmInterfaces, crossConnect, deviceTransactionManager,
+ portMapping, Long.valueOf(olmtimer1).longValue(), Long.valueOf(olmtimer2).longValue());
OlmPowerService olmPowerService = new OlmPowerServiceImpl(lightyServices.getBindingDataBroker(), powerMgmt,
deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces);
TransportpceOlmService olmPowerServiceRpc = new OlmPowerServiceRpcImpl(olmPowerService);
olmProvider = new OlmProvider(lightyServices.getRpcProviderService(), olmPowerServiceRpc);
LOG.info("Creating renderer beans ...");
- OpenRoadmInterfaceFactory openRoadmInterfaceFactory = initOpenRoadmFactory(mappingUtils, openRoadmInterfaces,
- portMapping);
+ initOpenRoadmFactory(mappingUtils, openRoadmInterfaces, portMapping);
DeviceRendererService deviceRendererService = new DeviceRendererServiceImpl(
- lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaceFactory,
- openRoadmInterfaces, crossConnect, portMapping);
- OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory,
- crossConnect, openRoadmInterfaces, deviceTransactionManager, networkModelService);
+ lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaces, crossConnect,
+ mappingUtils, portMapping);
+ OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(crossConnect,
+ openRoadmInterfaces, deviceTransactionManager, mappingUtils, portMapping);
rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService,
otnDeviceRendererService, portMapping);
@Override
protected boolean initProcedure() {
- LOG.info("Initializing PCE provider ...");
- pceProvider.init();
- LOG.info("Initializing network-model provider ...");
- networkModelProvider.init();
- LOG.info("Initializing OLM provider ...");
- olmProvider.init();
- LOG.info("Initializing renderer provider ...");
- rendererProvider.init();
LOG.info("Initializing service-handler provider ...");
servicehandlerProvider.init();
if (tapiProvider != null) {
LOG.info("Shutting down PCE provider ...");
pceProvider.close();
LOG.info("Shutting down transaction providers ...");
- networkTransaction.close();
deviceTransactionManager.preDestroy();
LOG.info("Shutdown done.");
return true;
deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc,
lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(),
portMapping);
- return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererRPC,
- rendererServiceOperations);
+ return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererService,
+ otnDeviceRendererService, rendererServiceOperations);
}
private OpenRoadmInterfaceFactory initOpenRoadmFactory(MappingUtils mappingUtils,
OpenRoadmInterfaces openRoadmInterfaces, PortMapping portMapping) {
- OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces);
- OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces);
- OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
- OpenRoadmOtnInterface221 openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping,
- openRoadmInterfaces);
- OpenRoadmOtnInterface710 openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping,
- openRoadmInterfaces);
- return new OpenRoadmInterfaceFactory(mappingUtils, openRoadmInterface121, openRoadmInterface221,
- openRoadmInterface710, openRoadmOtnInterface221, openRoadmOtnInterface710);
+ return new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
}
private PortMapping initPortMapping(LightyServices lightyServices) {
deviceTransactionManager, portMapping);
return new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils, openRoadmInterfacesImpl121,
openRoadmInterfacesImpl221, openRoadmInterfacesImpl710);
+
}
private CrossConnect initCrossConnect(MappingUtils mappingUtils) {
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-nbinotifications</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
<kafka.version>3.0.0</kafka.version>
</properties>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-networkmodel</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>5.0.3</version>
+ <version>5.0.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
<!-- Sodium bump: javax.annotation.Nullable and friends -->
<dependency>
*/
package org.opendaylight.transportpce.networkmodel;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.api.NotificationService;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener;
import org.opendaylight.transportpce.networkmodel.listeners.ServiceHandlerListener;
import org.opendaylight.transportpce.networkmodel.service.FrequenciesService;
+import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
import org.opendaylight.transportpce.networkmodel.util.TpceNetwork;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.TransportpceNetworkutilsService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.servicehandler.rev201125.TransportpceServicehandlerListener;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
public class NetworkModelProvider {
private static final Logger LOG = LoggerFactory.getLogger(NetworkModelProvider.class);
private final NetConfTopologyListener topologyListener;
private ListenerRegistration<NetConfTopologyListener> dataTreeChangeListenerRegistration;
private ListenerRegistration<PortMappingListener> mappingListenerRegistration;
- private ObjectRegistration<TransportpceNetworkutilsService> networkutilsServiceRpcRegistration;
+ private @NonNull Registration networkutilsServiceRpcRegistration;
private TpceNetwork tpceNetwork;
private ListenerRegistration<TransportpceServicehandlerListener> serviceHandlerListenerRegistration;
private NotificationService notificationService;
private FrequenciesService frequenciesService;
private PortMappingListener portMappingListener;
- public NetworkModelProvider(NetworkTransactionService networkTransactionService, final DataBroker dataBroker,
- final RpcProviderService rpcProviderService, final TransportpceNetworkutilsService networkutilsService,
- final NetConfTopologyListener topologyListener, NotificationService notificationService,
- FrequenciesService frequenciesService, PortMappingListener portMappingListener) {
+ @Activate
+ public NetworkModelProvider(@Reference NetworkTransactionService networkTransactionService,
+ @Reference final DataBroker dataBroker,
+ @Reference final RpcProviderService rpcProviderService,
+ @Reference final NetworkModelService networkModelService,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference PortMapping portMapping,
+ @Reference NotificationService notificationService,
+ @Reference FrequenciesService frequenciesService) {
this.dataBroker = dataBroker;
this.rpcProviderService = rpcProviderService;
- this.networkutilsService = networkutilsService;
- this.topologyListener = topologyListener;
- this.tpceNetwork = new TpceNetwork(networkTransactionService);
this.notificationService = notificationService;
this.frequenciesService = frequenciesService;
- this.portMappingListener = portMappingListener;
+ this.networkutilsService = new NetworkUtilsImpl(dataBroker);
+ this.topologyListener = new NetConfTopologyListener(networkModelService, dataBroker, deviceTransactionManager,
+ portMapping);
+ this.tpceNetwork = new TpceNetwork(networkTransactionService);
+ this.portMappingListener = new PortMappingListener(networkModelService);
+ this.init();
}
/**
* Method called when the blueprint container is created.
*/
- public void init() {
+ private void init() {
LOG.info("NetworkModelProvider Session Initiated");
tpceNetwork.createLayer(NetworkUtils.CLLI_NETWORK_ID);
tpceNetwork.createLayer(NetworkUtils.UNDERLAY_NETWORK_ID);
InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), topologyListener);
mappingListenerRegistration = dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, MAPPING_II), portMappingListener);
- networkutilsServiceRpcRegistration =
- rpcProviderService.registerRpcImplementation(TransportpceNetworkutilsService.class, networkutilsService);
- TransportpceServicehandlerListener serviceHandlerListner =
- new ServiceHandlerListener(frequenciesService);
+ networkutilsServiceRpcRegistration = rpcProviderService
+ .registerRpcImplementation(TransportpceNetworkutilsService.class, networkutilsService);
+ TransportpceServicehandlerListener serviceHandlerListner = new ServiceHandlerListener(frequenciesService);
serviceHandlerListenerRegistration = notificationService.registerNotificationListener(serviceHandlerListner);
}
/**
* Method called when the blueprint container is destroyed.
*/
+ @Deactivate
public void close() {
LOG.info("NetworkModelProvider Closed");
if (dataTreeChangeListenerRegistration != null) {
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.Decimal64;
import org.opendaylight.yangtools.yang.common.Uint32;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
public class FrequenciesServiceImpl implements FrequenciesService {
private static final Logger LOG = LoggerFactory.getLogger(FrequenciesServiceImpl.class);
private final DataBroker dataBroker;
private final AvailFreqMapsKey availFreqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND);
- public FrequenciesServiceImpl(DataBroker dataBroker) {
+ @Activate
+ public FrequenciesServiceImpl(@Reference DataBroker dataBroker) {
this.dataBroker = dataBroker;
}
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.Uint32;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(immediate = true)
public class NetworkModelServiceImpl implements NetworkModelService {
private static final Logger LOG = LoggerFactory.getLogger(NetworkModelServiceImpl.class);
private Map<TopologyChangesKey, TopologyChanges> topologyChanges;
private TopologyUpdateResult notification = null;
- public NetworkModelServiceImpl(final NetworkTransactionService networkTransactionService,
- final R2RLinkDiscovery linkDiscovery, PortMapping portMapping,
- final NotificationPublishService notificationPublishService) {
+ @Activate
+ public NetworkModelServiceImpl(@Reference DataBroker dataBroker,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference final NetworkTransactionService networkTransactionService,
+ @Reference PortMapping portMapping,
+ @Reference final NotificationPublishService notificationPublishService) {
this.networkTransactionService = networkTransactionService;
- this.linkDiscovery = linkDiscovery;
+ this.linkDiscovery = new R2RLinkDiscovery(dataBroker, deviceTransactionManager, networkTransactionService);
this.portMapping = portMapping;
this.topologyShardMountedDevice = new HashMap<String, TopologyShard>();
this.otnTopologyShardMountedDevice = new HashMap<String, TopologyShard>();
this.notificationPublishService = notificationPublishService;
this.topologyChanges = new HashMap<TopologyChangesKey, TopologyChanges>();
- }
-
- public void init() {
- LOG.info("init ...");
- }
-
- public void close() {
+ LOG.debug("NetworkModelServiceImpl instantiated");
}
@Override
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!-- Copyright © 2016 Orange and others. All rights reserved. This program and the accompanying materials
- are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker" />
- <reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
- <reference id="deviceTransactionManager" interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
- <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
- <reference id="networkTransactionImpl" interface="org.opendaylight.transportpce.common.network.NetworkTransactionService" />
- <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils" />
- <reference id="notificationService" interface="org.opendaylight.mdsal.binding.api.NotificationService"/>
- <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
-
- <bean id="networkModelService" class="org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl">
- <argument ref="networkTransactionImpl" />
- <argument ref="linkDiscoveryImpl" />
- <argument ref="portMapping" />
- <argument ref="notificationPublishService" />
- </bean>
-
- <bean id="provider" class="org.opendaylight.transportpce.networkmodel.NetworkModelProvider"
- init-method="init" destroy-method="close">
- <argument ref="networkTransactionImpl" />
- <argument ref="dataBroker" />
- <argument ref="rpcProviderService" />
- <argument ref="networkutilsServiceImpl" />
- <argument ref="netconfTopologyListener" />
- <argument ref="notificationService" />
- <argument ref="frequenciesService" />
- <argument ref="portMappingListener" />
- </bean>
-
- <bean id="portMappingListener" class="org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener">
- <argument ref="networkModelService" />
- </bean>
-
- <bean id="netconfTopologyListener" class="org.opendaylight.transportpce.networkmodel.NetConfTopologyListener">
- <argument ref="networkModelService" />
- <argument ref="dataBroker" />
- <argument ref="deviceTransactionManager" />
- <argument ref="portMapping" />
- </bean>
-
- <bean id="networkutilsServiceImpl" class="org.opendaylight.transportpce.networkmodel.NetworkUtilsImpl">
- <argument ref="dataBroker" />
- </bean>
-
- <bean id="linkDiscoveryImpl" class="org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery">
- <argument ref="dataBroker" />
- <argument ref="deviceTransactionManager" />
- <argument ref="networkTransactionImpl" />
- </bean>
-
- <bean id="frequenciesService" class="org.opendaylight.transportpce.networkmodel.service.FrequenciesServiceImpl">
- <argument ref="dataBroker" />
- </bean>
-
- <service ref="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService" />
-
- <service ref="frequenciesService" interface="org.opendaylight.transportpce.networkmodel.service.FrequenciesService" />
-
-</blueprint>
import org.opendaylight.mdsal.binding.api.NotificationService;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.mdsal.common.api.CommitInfo;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
-import org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener;
import org.opendaylight.transportpce.networkmodel.service.FrequenciesService;
+import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.TransportpceNetworkutilsService;
@Mock
RpcProviderService rpcProviderService;
@Mock
- TransportpceNetworkutilsService networkutilsService;
+ NetworkModelService networkModelService;
@Mock
- NetConfTopologyListener topologyListener;
+ DeviceTransactionManager deviceTransactionManager;
+ @Mock
+ PortMapping portMapping;
@Mock
- private NotificationService notificationService;
+ NetConfTopologyListener topologyListener;
@Mock
- private FrequenciesService frequenciesService;
+ NotificationService notificationService;
@Mock
- private PortMappingListener portMappingListener;
+ FrequenciesService frequenciesService;
@Test
void networkmodelProviderInitTest() {
- NetworkModelProvider provider = new NetworkModelProvider(networkTransactionService, getDataBroker(),
- rpcProviderService, networkutilsService, topologyListener, notificationService,
- frequenciesService, portMappingListener);
Answer<FluentFuture<CommitInfo>> answer = new Answer<FluentFuture<CommitInfo>>() {
@Override
};
when(networkTransactionService.commit()).then(answer);
- provider.init();
+ new NetworkModelProvider(networkTransactionService, getDataBroker(),
+ rpcProviderService, networkModelService, deviceTransactionManager, portMapping, notificationService,
+ frequenciesService);
verify(rpcProviderService, times(1))
.registerRpcImplementation(any(), any(TransportpceNetworkutilsService.class));
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-olm</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.metatype.annotations</artifactId>
+ </dependency>
<!-- Testing Dependencies -->
<dependency>
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class OlmPowerServiceRpcImpl.
*/
+@Component
public class OlmPowerServiceRpcImpl implements TransportpceOlmService {
private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceRpcImpl.class);
private final OlmPowerService olmPowerService;
- public OlmPowerServiceRpcImpl(OlmPowerService olmPowerService) {
+ @Activate
+ public OlmPowerServiceRpcImpl(@Reference OlmPowerService olmPowerService) {
this.olmPowerService = olmPowerService;
}
import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class OlmProvider.
*/
+@Component
public class OlmProvider {
private static final Logger LOG = LoggerFactory.getLogger(OlmProvider.class);
- private final RpcProviderService rpcProviderService;
- private final TransportpceOlmService olmPowerServiceRpc;
private ObjectRegistration<TransportpceOlmService> olmRPCRegistration;
/**
* @param rpcProviderService
* the rpc provider service
*/
- public OlmProvider(final RpcProviderService rpcProviderService, final TransportpceOlmService olmPowerServiceRpc) {
- this.rpcProviderService = rpcProviderService;
- this.olmPowerServiceRpc = olmPowerServiceRpc;
- }
-
- /**
- * Method called when the blueprint container is created.
- */
- public void init() {
- LOG.info("OlmProvider Session Initiated");
- // Initializing Notification module
+ @Activate
+ public OlmProvider(@Reference final RpcProviderService rpcProviderService,
+ @Reference final TransportpceOlmService olmPowerServiceRpc) {
olmRPCRegistration = rpcProviderService.registerRpcImplementation(TransportpceOlmService.class,
- this.olmPowerServiceRpc);
+ olmPowerServiceRpc);
+ LOG.info("OlmProvider Session Initiated");
}
/**
* Method called when the blueprint container is destroyed.
*/
+ @Deactivate
public void close() {
LOG.info("OlmProvider Closed");
// Clean up the RPC service registration
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
-import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.common.fixedflex.GridConstant;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1;
import org.opendaylight.yangtools.yang.common.Decimal64;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(configurationPid = "org.opendaylight.transportpce")
public class PowerMgmtImpl implements PowerMgmt {
+
+ @ObjectClassDefinition
+ public @interface Configuration {
+ @AttributeDefinition
+ long timer1() default 120000;
+ @AttributeDefinition
+ long timer2() default 20000;
+ }
private static final Logger LOG = LoggerFactory.getLogger(PowerMgmtImpl.class);
- private final DataBroker db;
private final OpenRoadmInterfaces openRoadmInterfaces;
private final CrossConnect crossConnect;
private final DeviceTransactionManager deviceTransactionManager;
private static final String INTERFACE_NOT_PRESENT = "Interface {} on node {} is not present!";
private static final double MC_WIDTH_GRAN = 2 * GridConstant.GRANULARITY;
- private long timer1 = 120000;
+ private long timer1;
// openroadm spec value is 120000, functest value is 3000
- private long timer2 = 20000;
+ private long timer2;
// openroadm spec value is 20000, functest value is 2000
- public PowerMgmtImpl(DataBroker db, OpenRoadmInterfaces openRoadmInterfaces, CrossConnect crossConnect,
- DeviceTransactionManager deviceTransactionManager, PortMapping portMapping) {
- this.db = db;
- this.openRoadmInterfaces = openRoadmInterfaces;
- this.crossConnect = crossConnect;
- this.deviceTransactionManager = deviceTransactionManager;
- this.portMapping = portMapping;
+ @Activate
+ public PowerMgmtImpl(@Reference OpenRoadmInterfaces openRoadmInterfaces,
+ @Reference CrossConnect crossConnect,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference PortMapping portMapping, final Configuration configuration) {
+ this(openRoadmInterfaces, crossConnect, deviceTransactionManager, portMapping, configuration.timer1(),
+ configuration.timer2());
}
- public PowerMgmtImpl(DataBroker db, OpenRoadmInterfaces openRoadmInterfaces,
+ public PowerMgmtImpl(OpenRoadmInterfaces openRoadmInterfaces,
CrossConnect crossConnect, DeviceTransactionManager deviceTransactionManager,
- PortMapping portMapping, String timer1, String timer2) {
- this.db = db;
+ PortMapping portMapping, long timer1, long timer2) {
this.openRoadmInterfaces = openRoadmInterfaces;
this.crossConnect = crossConnect;
this.deviceTransactionManager = deviceTransactionManager;
this.portMapping = portMapping;
try {
- this.timer1 = Long.parseLong(timer1);
+ this.timer1 = Long.valueOf(timer1);
} catch (NumberFormatException e) {
this.timer1 = 120000;
LOG.warn("Failed to retrieve Olm timer1 value from configuration - using default value {}",
this.timer1, e);
}
try {
- this.timer2 = Long.parseLong(timer2);
+ this.timer2 = Long.valueOf(timer2);
} catch (NumberFormatException e) {
this.timer2 = 20000;
LOG.warn("Failed to retrieve Olm timer2 value from configuration - using default value {}",
this.timer2, e);
}
+ LOG.debug("PowerMgmtImpl instantiated with olm timers = {} - {}", this.timer1, this.timer2);
}
/**
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.common.Decimal64;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
public class OlmPowerServiceImpl implements OlmPowerService {
private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceImpl.class);
private final MappingUtils mappingUtils;
private final DeviceTransactionManager deviceTransactionManager;
private final PortMapping portMapping;
- public OlmPowerServiceImpl(DataBroker dataBroker, PowerMgmt powerMgmt,
- DeviceTransactionManager deviceTransactionManager, PortMapping portMapping,
- MappingUtils mappingUtils, OpenRoadmInterfaces openRoadmInterfaces) {
+ @Activate
+ public OlmPowerServiceImpl(@Reference DataBroker dataBroker,
+ @Reference PowerMgmt powerMgmt,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference PortMapping portMapping,
+ @Reference MappingUtils mappingUtils,
+ @Reference OpenRoadmInterfaces openRoadmInterfaces) {
this.dataBroker = dataBroker;
this.powerMgmt = powerMgmt;
this.portMapping = portMapping;
this.deviceTransactionManager = deviceTransactionManager;
this.mappingUtils = mappingUtils;
this.openRoadmInterfaces = openRoadmInterfaces;
+ LOG.debug("OlmPowerServiceImpl Instantiated");
}
- public void init() {
- LOG.info("init ...");
- }
-
- public void close() {
- LOG.info("close ...");
- }
-
-
@Override
public GetPmOutput getPm(GetPmInput pmInput) {
GetPmOutputBuilder pmOutputBuilder = new GetPmOutputBuilder();
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2016 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
-
- <cm:property-placeholder persistent-id="org.opendaylight.transportpce" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="timer1" value="" />
- <cm:property name="timer2" value="" />
- <!--The following values are used to speed-up tests with simulators without convergence times-->
- <!--cm:property name="timer1" value="3000" /-->
- <!--cm:property name="timer2" value="2000" /-->
- </cm:default-properties>
- </cm:property-placeholder>
-
-
- <reference id="dataBroker"
- interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
- <reference id="rpcProviderService"
- interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
- <reference id="openRoadmInterfaces"
- interface="org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces" />
- <reference id="crossConnect"
- interface="org.opendaylight.transportpce.common.crossconnect.CrossConnect" />
- <reference id="deviceTransactionManager"
- interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
- <reference id="portMapping"
- interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
- <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils" />
-
- <bean id="powerMgmt" class="org.opendaylight.transportpce.olm.power.PowerMgmtImpl" >
- <argument ref="dataBroker" />
- <argument ref="openRoadmInterfaces" />
- <argument ref="crossConnect" />
- <argument ref="deviceTransactionManager" />
- <argument ref="portMapping" />
- <argument value="${timer1}"/>
- <argument value="${timer2}"/>
- </bean>
-
- <bean id="olmPowerServiceImpl" class="org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl">
- <argument ref="dataBroker" />
- <argument ref="powerMgmt" />
- <argument ref="deviceTransactionManager" />
- <argument ref="portMapping" />
- <argument ref="mappingUtils" />
- <argument ref="openRoadmInterfaces" />
- </bean>
-
- <bean id="olmPowerServiceRpcImpl" class="org.opendaylight.transportpce.olm.OlmPowerServiceRpcImpl">
- <argument ref="olmPowerServiceImpl" />
- </bean>
-
- <bean id="provider" class="org.opendaylight.transportpce.olm.OlmProvider"
- init-method="init" destroy-method="close">
- <argument ref="rpcProviderService" />
- <argument ref="olmPowerServiceRpcImpl" />
- </bean>
-
- <service ref="olmPowerServiceRpcImpl"
- interface="org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService"/>
- </blueprint>
this.mappingUtils,this.openRoadmInterfacesImpl121,this.openRoadmInterfacesImpl22,
this.openRoadmInterfacesImpl710);
this.portMapping = Mockito.spy(this.portMapping);
- this.powerMgmt = new PowerMgmtImpl(getDataBroker(), this.openRoadmInterfaces, this.crossConnect,
- this.deviceTransactionManager, this.portMapping);
+ this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+ this.deviceTransactionManager, this.portMapping, 1000, 1000);
this.olmPowerService = new OlmPowerServiceImpl(getDataBroker(), this.powerMgmt,
this.deviceTransactionManager, this.portMapping,mappingUtils,openRoadmInterfaces);
this.olmPowerServiceRpc = new OlmPowerServiceRpcImpl(this.olmPowerService);
this.openRoadmInterfacesImpl710);
this.openRoadmInterfaces = Mockito.spy(this.openRoadmInterfaces);
this.portMapping = Mockito.spy(this.portMapping);
- this.powerMgmt = new PowerMgmtImpl(getDataBroker(), this.openRoadmInterfaces, this.crossConnect,
- this.deviceTransactionManager, this.portMapping);
+ this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+ this.deviceTransactionManager, this.portMapping, 1000, 1000);
}
@Test
this.mappingUtils, openRoadmInterfacesImpl121Spy, this.openRoadmInterfacesImpl22,
this.openRoadmInterfacesImpl710);
openRoadmInterfacesSpy = Mockito.spy(openRoadmInterfacesSpy);
- return new PowerMgmtImpl(getDataBroker(), openRoadmInterfacesSpy, crossConnectMock,
- this.deviceTransactionManager, this.portMapping);
+ return new PowerMgmtImpl(openRoadmInterfacesSpy, crossConnectMock,
+ this.deviceTransactionManager, this.portMapping, 0, 0);
}
private Nodes getXpdrNodesFromNodesBuilderDeg() {
import org.opendaylight.yangtools.yang.common.Decimal64;
public class PowerMgmtTest {
- private DataBroker dataBroker;
private OpenRoadmInterfaces openRoadmInterfaces;
private CrossConnect crossConnect;
private DeviceTransactionManager deviceTransactionManager;
@BeforeEach
void setUp() {
- this.dataBroker = Mockito.mock(DataBroker.class);
+ Mockito.mock(DataBroker.class);
this.openRoadmInterfaces = Mockito.mock(OpenRoadmInterfaces.class);
this.crossConnect = Mockito.mock((CrossConnectImpl.class));
this.deviceTransactionManager = Mockito.mock(DeviceTransactionManager.class);
this.portMapping = Mockito.mock(PortMapping.class);
- this.powerMgmt = new PowerMgmtImpl(this.dataBroker, this.openRoadmInterfaces, this.crossConnect,
- this.deviceTransactionManager, this.portMapping, "1000", "1000");
+ this.powerMgmt = new PowerMgmtImpl(this.openRoadmInterfaces, this.crossConnect,
+ this.deviceTransactionManager, this.portMapping, 1000, 1000);
}
@Test
this.portMapping, this.mappingUtils, this.openRoadmInterfaces);
}
- @Test
- void dummyTest() {
- OlmPowerServiceImpl olmPowerServiceImpl = (OlmPowerServiceImpl) this.olmPowerService;
- olmPowerServiceImpl.init();
- olmPowerServiceImpl.close();
- }
-
@Test
void testGetPm() {
when(this.mappingUtils.getOpenRoadmVersion(anyString()))
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-pce</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.metatype.annotations</artifactId>
+ </dependency>
<!-- Testing Dependencies -->
<dependency>
import org.opendaylight.transportpce.common.converter.JsonStringConverter;
import org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.Request;
import org.opendaylight.yang.gen.v1.gnpy.path.rev220615.Result;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(configurationPid = "org.opendaylight.transportpce.pce")
public class GnpyConsumerImpl implements GnpyConsumer {
+ @ObjectClassDefinition
+ public @interface Configuration {
+ @AttributeDefinition
+ String url() default "http://127.0.0.1:8008";
+ @AttributeDefinition
+ String username() default "gnpy";
+ @AttributeDefinition
+ String password() default "gnpy";
+ }
+
private static final Logger LOG = LoggerFactory.getLogger(GnpyConsumerImpl.class);
private final GnpyResource api;
+ @Activate
+ public GnpyConsumerImpl(final Configuration configuration,
+ @Reference BindingDOMCodecServices bindingDOMCodecServices) {
+ this(configuration.url(), configuration.username(), configuration.password(), bindingDOMCodecServices);
+ }
+
public GnpyConsumerImpl(String baseUrl, String username, String password,
BindingDOMCodecServices bindingDOMCodecServices) {
JsonStringConverter<Request> gnpyRequestConverter = new JsonStringConverter<>(bindingDOMCodecServices);
import org.opendaylight.transportpce.pce.service.PathComputationService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.TransportpcePceService;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* Class to register
* Pce Service & Notification.
*/
+@Component
public class PceProvider {
private static final Logger LOG = LoggerFactory.getLogger(PceProvider.class);
private final RpcProviderService rpcService;
- private final PathComputationService pathComputationService;
private ObjectRegistration<PceServiceRPCImpl> rpcRegistration;
- public PceProvider(RpcProviderService rpcProviderService, PathComputationService pathComputationService) {
+ @Activate
+ public PceProvider(@Reference RpcProviderService rpcProviderService,
+ @Reference PathComputationService pathComputationService) {
this.rpcService = rpcProviderService;
- this.pathComputationService = pathComputationService;
- }
-
- /*
- * Method called when the blueprint container is created.
- */
- public void init() {
LOG.info("PceProvider Session Initiated");
final PceServiceRPCImpl consumer = new PceServiceRPCImpl(pathComputationService);
rpcRegistration = rpcService.registerRpcImplementation(TransportpcePceService.class, consumer);
/*
* Method called when the blueprint container is destroyed.
*/
+ @Deactivate
public void close() {
LOG.info("PceProvider Closed");
rpcRegistration.close();
}
-
}
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.ServicePathNotificationTypes;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(immediate = true)
public class PathComputationServiceImpl implements PathComputationService {
private static final Logger LOG = LoggerFactory.getLogger(PathComputationServiceImpl.class);
private final GnpyConsumer gnpyConsumer;
private PortMapping portMapping;
- public PathComputationServiceImpl(NetworkTransactionService networkTransactionService,
- NotificationPublishService notificationPublishService,
- GnpyConsumer gnpyConsumer, PortMapping portMapping) {
+ @Activate
+ public PathComputationServiceImpl(@Reference NetworkTransactionService networkTransactionService,
+ @Reference NotificationPublishService notificationPublishService,
+ @Reference GnpyConsumer gnpyConsumer,
+ @Reference PortMapping portMapping) {
this.notificationPublishService = notificationPublishService;
this.networkTransactionService = networkTransactionService;
this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5));
this.gnpyConsumer = gnpyConsumer;
this.portMapping = portMapping;
- }
-
- public void init() {
- LOG.info("init ...");
- }
-
- public void close() {
- LOG.info("close.");
+ LOG.debug("PathComputationServiceImpl instantiated");
}
@SuppressFBWarnings(
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2017 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
-
-Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">
- <cm:property-placeholder persistent-id="org.opendaylight.transportpce.pce" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="url" value="http://127.0.0.1:8008" />
- <cm:property name="username" value="gnpy" />
- <cm:property name="password" value="gnpy" />
- </cm:default-properties>
- </cm:property-placeholder>
-
- <reference id="networkTransactionImpl" interface="org.opendaylight.transportpce.common.network.NetworkTransactionService" />
- <reference id="bindingDOMCodecServices" interface="org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices" />
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
- <reference id="rpcService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
- <reference id="notificationPublishService" interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
- <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping"/>
-
- <bean id="pceServiceImpl"
- class="org.opendaylight.transportpce.pce.service.PathComputationServiceImpl"
- init-method="init" destroy-method="close">
- <argument ref="networkTransactionImpl"/>
- <argument ref="notificationPublishService" />
- <argument ref="gnpyConsumer" />
- <argument ref="portMapping" />
- </bean>
-
- <bean id="gnpyConsumer"
- class="org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl">
- <argument value="${url}"/>
- <argument value="${username}"/>
- <argument value="${password}"/>
- <argument ref="bindingDOMCodecServices" />
- </bean>
-
- <bean id="provider"
- class="org.opendaylight.transportpce.pce.impl.PceProvider"
- init-method="init" destroy-method="close">
- <argument ref="rpcService" />
- <argument ref="pceServiceImpl" />
- </bean>
-
- <service ref="pceServiceImpl"
- interface="org.opendaylight.transportpce.pce.service.PathComputationService"/>
-
-</blueprint>
package org.opendaylight.transportpce.pce.impl;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
-import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.pce.service.PathComputationService;
-import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
-import org.opendaylight.transportpce.pce.utils.NotificationPublishServiceMock;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.TransportpcePceService;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
+@ExtendWith(MockitoExtension.class)
public class PceProviderTest extends AbstractTest {
+ @Mock
private RpcProviderService rpcService;
+ @Mock
private PathComputationService pathComputationService;
- private NotificationPublishService notificationPublishService;
- private NetworkTransactionImpl networkTransaction;
- private ObjectRegistration<TransportpcePceService> rpcRegistration;
- private PceProvider pceProvider;
-
- @BeforeEach
- void setUp() {
- rpcService = mock(RpcProviderService.class);
- notificationPublishService = new NotificationPublishServiceMock();
- networkTransaction = new NetworkTransactionImpl(getDataBroker());
- pathComputationService = new PathComputationServiceImpl(networkTransaction, notificationPublishService,
- null, null);
- pceProvider = new PceProvider(rpcService, pathComputationService);
- }
@Test
void testInit() {
- this.rpcRegistration = new ObjectRegistration<TransportpcePceService>() {
- @NonNull
- @Override
- public TransportpcePceService getInstance() {
- return new PceServiceRPCImpl(pathComputationService);
- }
-
- @Override
- public void close() {
-
- }
- };
- when(rpcService.registerRpcImplementation(eq(TransportpcePceService.class), any())).thenReturn(rpcRegistration);
- pceProvider.init();
- pceProvider.close();
+ new PceProvider(rpcService, pathComputationService);
+ verify(rpcService, times(1)).registerRpcImplementation(any(), any(TransportpcePceService.class));
}
}
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.Map;
-import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
pathComputationServiceImpl = new PathComputationServiceImpl(
networkTransactionService,
this.getNotificationPublishService(), null, null);
- pathComputationServiceImpl.init();
}
@Test
pathComputationServiceImpl.generateGnpyResponse(null,"path");
assertNotNull(pathComputationServiceImpl.pathComputationRerouteRequest(PceTestData.getPCEReroute()));
}
-
- @AfterEach
- void destroy() {
- pathComputationServiceImpl.close();
- }
}
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-aggregator</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<name>transportpce</name>
<packaging>pom</packaging>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-renderer</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ </dependency>
<!-- Testing Dependencies -->
<dependency>
package org.opendaylight.transportpce.renderer;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
+import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
+import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations;
import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl;
import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.TransportpceDeviceRendererService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
public class RendererProvider {
private static final Logger LOG = LoggerFactory.getLogger(RendererProvider.class);
private final RpcProviderService rpcProviderService;
private DeviceRendererRPCImpl deviceRendererRPCImpl;
+ private TransportPCEServicePathRPCImpl transportPCEServicePathRPCImpl;
private ObjectRegistration<DeviceRendererRPCImpl> deviceRendererRegistration;
private ObjectRegistration<TransportpceRendererService> tpceServiceRegistry;
- private RendererServiceOperations rendererServiceOperations;
- public RendererProvider(RpcProviderService rpcProviderService, DeviceRendererRPCImpl deviceRendererRPCImpl,
- RendererServiceOperations rendererServiceOperations) {
+ @Activate
+ public RendererProvider(@Reference RpcProviderService rpcProviderService,
+ @Reference DeviceRendererService deviceRenderer,
+ @Reference OtnDeviceRendererService otnDeviceRendererService,
+ @Reference RendererServiceOperations rendererServiceOperations) {
this.rpcProviderService = rpcProviderService;
- this.deviceRendererRPCImpl = deviceRendererRPCImpl;
- this.rendererServiceOperations = rendererServiceOperations;
- }
-
- /**
- * Method called when the blueprint container is created.
- */
- public void init() {
+ this.deviceRendererRPCImpl = new DeviceRendererRPCImpl(deviceRenderer, otnDeviceRendererService);
+ this.transportPCEServicePathRPCImpl = new TransportPCEServicePathRPCImpl(rendererServiceOperations);
LOG.info("RendererProvider Session Initiated");
- TransportPCEServicePathRPCImpl transportPCEServicePathRPCImpl =
- new TransportPCEServicePathRPCImpl(this.rendererServiceOperations);
this.deviceRendererRegistration = this.rpcProviderService
.registerRpcImplementation(TransportpceDeviceRendererService.class, deviceRendererRPCImpl);
this.tpceServiceRegistry = this.rpcProviderService
/**
* Method called when the blueprint container is destroyed.
*/
+ @Deactivate
public void close() {
LOG.info("RendererProvider Closed");
if (this.deviceRendererRegistration != null) {
this.tpceServiceRegistry.close();
}
}
-
-}
+}
\ No newline at end of file
import org.opendaylight.transportpce.common.fixedflex.GridConstant;
import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
import org.opendaylight.transportpce.common.mapping.MappingUtils;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
+import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.AEndApiInfo;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.ZEndApiInfo;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
private final OpenRoadmOtnInterface221 openRoadmOtnInterface221;
private final OpenRoadmOtnInterface710 openRoadmOtnInterface710;
- public OpenRoadmInterfaceFactory(MappingUtils mappingUtils, OpenRoadmInterface121 openRoadmInterface121,
- OpenRoadmInterface221 openRoadmInterface221, OpenRoadmInterface710 openRoadmInterface710,
- OpenRoadmOtnInterface221 openRoadmOTNInterface221, OpenRoadmOtnInterface710 openRoadmOtnInterface710) {
+ public OpenRoadmInterfaceFactory(MappingUtils mappingUtils, PortMapping portMapping,
+ OpenRoadmInterfaces openRoadmInterfaces) {
this.mappingUtils = mappingUtils;
- this.openRoadmInterface121 = openRoadmInterface121;
- this.openRoadmInterface221 = openRoadmInterface221;
- this.openRoadmInterface710 = openRoadmInterface710;
- this.openRoadmOtnInterface221 = openRoadmOTNInterface221;
- this.openRoadmOtnInterface710 = openRoadmOtnInterface710;
+ this.openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces);
+ this.openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces);
+ this.openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
+ this.openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping, openRoadmInterfaces);
+ this.openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping, openRoadmInterfaces);
}
public String createOpenRoadmEthInterface(String nodeId, String logicalConnPoint)
import org.opendaylight.transportpce.common.fixedflex.GridConstant;
import org.opendaylight.transportpce.common.fixedflex.GridUtils;
import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
+import org.opendaylight.transportpce.common.mapping.MappingUtils;
import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceKey;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.Nodes;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+@Component
public class DeviceRendererServiceImpl implements DeviceRendererService {
private static final String IS_NOT_MOUNTED_ON_THE_CONTROLLER = " is not mounted on the controller";
private static final Logger LOG = LoggerFactory.getLogger(DeviceRendererServiceImpl.class);
private final CrossConnect crossConnect;
private final PortMapping portMapping;
- public DeviceRendererServiceImpl(DataBroker dataBroker, DeviceTransactionManager deviceTransactionManager,
- OpenRoadmInterfaceFactory openRoadmInterfaceFactory, OpenRoadmInterfaces openRoadmInterfaces,
- CrossConnect crossConnect, PortMapping portMapping) {
+ @Activate
+ public DeviceRendererServiceImpl(@Reference DataBroker dataBroker,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference OpenRoadmInterfaces openRoadmInterfaces,
+ @Reference CrossConnect crossConnect,
+ @Reference MappingUtils mappingUtils,
+ @Reference PortMapping portMapping) {
this.dataBroker = dataBroker;
this.deviceTransactionManager = deviceTransactionManager;
- this.openRoadmInterfaceFactory = openRoadmInterfaceFactory;
this.openRoadmInterfaces = openRoadmInterfaces;
this.crossConnect = crossConnect;
this.portMapping = portMapping;
+ this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
}
@SuppressWarnings("rawtypes")
import org.opendaylight.transportpce.common.StringConstants;
import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.mapping.MappingUtils;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
-import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.OtnServicePathOutput;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.node.interfaces.NodeInterfaceKey;
import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.otn.renderer.nodes.Nodes;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component
public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
private static final Logger LOG = LoggerFactory.getLogger(OtnDeviceRendererServiceImpl.class);
private static final String PT_03 = "03";
private final OpenRoadmInterfaces openRoadmInterfaces;
private final DeviceTransactionManager deviceTransactionManager;
- public OtnDeviceRendererServiceImpl(OpenRoadmInterfaceFactory openRoadmInterfaceFactory, CrossConnect crossConnect,
- OpenRoadmInterfaces openRoadmInterfaces,
- DeviceTransactionManager deviceTransactionManager,
- NetworkModelService networkModelService) {
- this.openRoadmInterfaceFactory = openRoadmInterfaceFactory;
+ @Activate
+ public OtnDeviceRendererServiceImpl(@Reference CrossConnect crossConnect,
+ @Reference OpenRoadmInterfaces openRoadmInterfaces,
+ @Reference DeviceTransactionManager deviceTransactionManager,
+ @Reference MappingUtils mappingUtils,
+ @Reference PortMapping portMapping) {
this.crossConnect = crossConnect;
this.openRoadmInterfaces = openRoadmInterfaces;
this.deviceTransactionManager = deviceTransactionManager;
+ this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(mappingUtils, portMapping, openRoadmInterfaces);
}
//TODO Align log messages and returned results messages
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.Notification;
import org.opendaylight.yangtools.yang.common.Uint32;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Component(immediate = true)
public class RendererServiceOperationsImpl implements RendererServiceOperations {
private static final Logger LOG = LoggerFactory.getLogger(RendererServiceOperationsImpl.class);
private final PortMapping portMapping;
private ListeningExecutorService executor;
- public RendererServiceOperationsImpl(DeviceRendererService deviceRenderer,
- OtnDeviceRendererService otnDeviceRenderer, TransportpceOlmService olmService,
- DataBroker dataBroker, NotificationPublishService notificationPublishService, PortMapping portMapping) {
+ @Activate
+ public RendererServiceOperationsImpl(@Reference DeviceRendererService deviceRenderer,
+ @Reference OtnDeviceRendererService otnDeviceRenderer,
+ @Reference TransportpceOlmService olmService,
+ @Reference DataBroker dataBroker,
+ @Reference NotificationPublishService notificationPublishService,
+ @Reference PortMapping portMapping) {
this.deviceRenderer = deviceRenderer;
this.otnDeviceRenderer = otnDeviceRenderer;
this.olmService = olmService;
this.notificationPublishService = notificationPublishService;
this.portMapping = portMapping;
this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUMBER_OF_THREADS));
+ LOG.debug("RendererServiceOperationsImpl instantiated");
}
@Override
OtnDeviceRendererService otnDeviceRendererService) {
this.deviceRenderer = deviceRenderer;
this.otnDeviceRendererService = otnDeviceRendererService;
+ LOG.debug("DeviceRendererRPCImpl instantiated");
}
/**
public TransportPCEServicePathRPCImpl(RendererServiceOperations rendererServiceOperations) {
this.rendererServiceOperations = rendererServiceOperations;
+ LOG.debug("TransportPCEServicePathRPCImpl instantiated");
}
@Override
}
return ModelMappingUtils.createServiceImplementationRpcResponse(output);
}
-
}
-
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2016 Orange and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
- <reference id="notificationPublishService"
- interface="org.opendaylight.mdsal.binding.api.NotificationPublishService"/>
- <reference id="rpcProviderService" interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
- <reference id="deviceTransactionManager" interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager" />
- <reference id="openRoadmInterfaces" interface="org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces" />
- <reference id="portMapping" interface="org.opendaylight.transportpce.common.mapping.PortMapping" />
- <reference id="crossConnect" interface="org.opendaylight.transportpce.common.crossconnect.CrossConnect" />
- <reference id="mappingUtils" interface="org.opendaylight.transportpce.common.mapping.MappingUtils"/>
- <reference id="networkModelService" interface="org.opendaylight.transportpce.networkmodel.service.NetworkModelService"/>
- <reference id="olmService" interface="org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService"/>
-
- <bean id="openRoadmInterface121"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121">
- <argument ref="portMapping"/>
- <argument ref="openRoadmInterfaces"/>
- </bean>
-
- <bean id="openRoadmInterface221"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221">
- <argument ref="portMapping"/>
- <argument ref="openRoadmInterfaces"/>
- </bean>
-
- <bean id="openRoadmInterface710"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710">
- <argument ref="portMapping"/>
- <argument ref="openRoadmInterfaces"/>
- </bean>
-
- <bean id="openRoadmOtnInterface221"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221">
- <argument ref="portMapping"/>
- <argument ref="openRoadmInterfaces"/>
- </bean>
-
- <bean id="openRoadmOtnInterface710"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710">
- <argument ref="portMapping"/>
- <argument ref="openRoadmInterfaces"/>
- </bean>
-
- <bean id="openRoadmInterfaceFactory"
- class="org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory">
- <argument ref="mappingUtils"/>
- <argument ref="openRoadmInterface121"/>
- <argument ref="openRoadmInterface221"/>
- <argument ref="openRoadmInterface710"/>
- <argument ref="openRoadmOtnInterface221"/>
- <argument ref="openRoadmOtnInterface710"/>
- </bean>
-
- <bean id="deviceRenderer" class="org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServiceImpl" >
- <argument ref="dataBroker" />
- <argument ref="deviceTransactionManager" />
- <argument ref="openRoadmInterfaceFactory" />
- <argument ref="openRoadmInterfaces" />
- <argument ref="crossConnect" />
- <argument ref="portMapping" />
- </bean>
-
- <bean id="otnDeviceRenderer" class="org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererServiceImpl" >
- <argument ref="openRoadmInterfaceFactory" />
- <argument ref="crossConnect" />
- <argument ref="openRoadmInterfaces" />
- <argument ref="deviceTransactionManager" />
- <argument ref="networkModelService" />
- </bean>
-
- <bean id="deviceRendererRPCImpl" class="org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl" >
- <argument ref="deviceRenderer" />
- <argument ref="otnDeviceRenderer" />
- </bean>
-
- <bean id="rendererServiceOperations" class="org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperationsImpl" >
- <argument ref="deviceRenderer" />
- <argument ref="otnDeviceRenderer"/>
- <argument ref="olmService" />
- <argument ref="dataBroker" />
- <argument ref="notificationPublishService" />
- <argument ref="portMapping" />
- </bean>
-
- <bean id="rendererProvider" class="org.opendaylight.transportpce.renderer.RendererProvider"
- init-method="init" destroy-method="close">
- <argument ref="rpcProviderService" />
- <argument ref="deviceRendererRPCImpl" />
- <argument ref="rendererServiceOperations" />
- </bean>
-
- <service ref="deviceRenderer"
- interface="org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService" />
- <service ref="rendererServiceOperations"
- interface="org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations" />
- <service ref="otnDeviceRenderer"
- interface="org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService"/>
-
-</blueprint>
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
+import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
+import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations;
import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl;
import org.opendaylight.transportpce.renderer.rpcs.TransportPCEServicePathRPCImpl;
@Mock
RpcProviderService rpcProviderService;
@Mock
- private RendererServiceOperations rendererServiceOperations;
+ DeviceRendererService deviceRenderer;
@Mock
- DeviceRendererRPCImpl deviceRendererRPC;
+ OtnDeviceRendererService otnDeviceRendererService;
+ @Mock
+ RendererServiceOperations rendererServiceOperations;
@Test
void testInitMethodRegistersRendererToRpcService() {
- RendererProvider provider =
- new RendererProvider(rpcProviderService, deviceRendererRPC, rendererServiceOperations);
- provider.init();
+ new RendererProvider(rpcProviderService, deviceRenderer, otnDeviceRendererService, rendererServiceOperations);
verify(rpcProviderService, times(1))
.registerRpcImplementation(any(), any(TransportPCEServicePathRPCImpl.class));
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.renderer.openroadminterface.OpenRoadmInterface121;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710;
import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221;
-import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface710;
import org.opendaylight.transportpce.renderer.utils.CreateOtsOmsDataUtils;
import org.opendaylight.transportpce.renderer.utils.MountPointUtils;
import org.opendaylight.transportpce.test.AbstractTest;
this.openRoadmInterfaces = new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils,
openRoadmInterfacesImpl121, openRoadmInterfacesImpl221, openRoadmInterfacesImpl710);
this.openRoadmInterfaces = spy(this.openRoadmInterfaces);
- OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping,openRoadmInterfaces);
- OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping,openRoadmInterfaces);
- OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
- OpenRoadmOtnInterface221 openRoadmOTNInterface221 = new OpenRoadmOtnInterface221(portMapping,
- openRoadmInterfaces);
- OpenRoadmOtnInterface710 openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping,
- openRoadmInterfaces);
- this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(this.mappingUtils,openRoadmInterface121,
- openRoadmInterface221, openRoadmInterface710, openRoadmOTNInterface221, openRoadmOtnInterface710);
+ this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(this.mappingUtils, portMapping,
+ openRoadmInterfaces);
this.crossConnectImpl121 = new CrossConnectImpl121(this.deviceTransactionManager);
this.crossConnectImpl221 = new CrossConnectImpl221(this.deviceTransactionManager);
this.crossConnect = new CrossConnectImpl(this.deviceTransactionManager, this.mappingUtils,
this.crossConnectImpl121, this.crossConnectImpl221, this.crossConnectImpl710);
this.crossConnect = spy(this.crossConnect);
- this.deviceRendererService = new DeviceRendererServiceImpl(getDataBroker(),
- this.deviceTransactionManager, this.openRoadmInterfaceFactory, this.openRoadmInterfaces,
- this.crossConnect, portMapping);
+ this.deviceRendererService = new DeviceRendererServiceImpl(getDataBroker(), this.deviceTransactionManager,
+ this.openRoadmInterfaces, this.crossConnect, mappingUtils, portMapping);
}
@Test
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-servicehandler</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>transportpce-tapi</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>5.0.3</version>
+ <version>5.0.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<groupId>org.opendaylight.transportpce</groupId>
<artifactId>test-common</artifactId>
- <version>7.0.0-SNAPSHOT</version>
+ <version>7.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<properties>
- <transportpce.models.version>18.0.0</transportpce.models.version>
+ <transportpce.models.version>18.0.1</transportpce.models.version>
</properties>
<dependencyManagement>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>5.0.3</version>
+ <version>5.0.4</version>
<scope>import</scope>
<type>pom</type>
</dependency>
print("sample files content loaded")
cls.processes = test_utils.start_tpce()
+ time.sleep(5)
@classmethod
def tearDownClass(cls):
[tox]
minversion = 3.7.0
-envlist = buildcontroller,testsPCE,
- sims121,build_karaf_tests121,tests121,
- sims221,build_karaf_tests221,tests221,tests_tapi,
- sims71,build_karaf_tests71,tests71,
- build_karaf_tests_hybrid,tests_hybrid,
- docs
- docs-linkcheck
- checkbashisms
- pre-commit
- pylint
+envlist = buildcontroller
+ testsPCE,
+ sims121,build_karaf_tests121,tests121,
+ sims221,build_karaf_tests221,tests_tapi,tests221,
+ sims71,build_karaf_tests71,tests71,
+ build_karaf_tests_hybrid,tests_hybrid,
+ buildlighty,
+ docs
+ docs-linkcheck
+ checkbashisms
+ pre-commit
+ pylint
skipsdist = true
setupdir = tests/
commands =
./build_controller.sh
+[testenv:buildlighty]
+whitelist_externals = build.sh
+depends = buildcontroller,tests_hybrid
+changedir = {toxinidir}/lighty
+commands =
+ ./build.sh
+
[testenv:sims121]
whitelist_externals = install_honeynode.sh
depends = buildcontroller