Refactor: change the way to select renderer 11/96911/8
authorGilles Thouenon <gilles.thouenon@orange.com>
Fri, 18 Jun 2021 11:58:35 +0000 (13:58 +0200)
committerGilles Thouenon <gilles.thouenon@orange.com>
Fri, 30 Jul 2021 15:23:25 +0000 (17:23 +0200)
- introduce service-type from common module (and already used by pce) to
  choose adequate renderer (optical vs otn)
- update transportpce-device-renderer model by 1) replacing service-type
  (which is confusing) in otn-renderer api by service-format which is
  more appropriate 2) changing service-rate type to be aligned with
  service-create rpc input
- adapt the code consequently

JIRA: TRNSPRTPCE-489
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Ia506a1af3a9b98516a0c73ed1f4f6671eab04ab6

31 files changed:
api/src/main/yang/service_path/transportpce-device-renderer@2021-06-18.yang [moved from api/src/main/yang/service_path/transportpce-device-renderer@2020-01-28.yang with 93% similarity]
common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java
common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java
lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java
lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java
networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopologyTest.java
networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/ModelMappingUtils.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/RendererProvider.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/ServicePathInputData.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererService.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererService.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/tasks/DeviceRenderingRollbackTask.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/tasks/DeviceRenderingTask.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/tasks/OtnDeviceRenderingTask.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImpl.java
renderer/src/main/resources/OSGI-INF/blueprint/renderer-blueprint.xml
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImplCreateOtsOmsTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplDeleteTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/rpcs/DeviceRendererRPCImplTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/CreateOtsOmsDataUtils.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/ServiceDataUtils.java
tests/transportpce_tests/2.2.1/test_otn_renderer.py
tests/transportpce_tests/common/test_utils.py

similarity index 93%
rename from api/src/main/yang/service_path/transportpce-device-renderer@2020-01-28.yang
rename to api/src/main/yang/service_path/transportpce-device-renderer@2021-06-18.yang
index d758a980ef1fddae2ad86bd3f22b7d41049bc922..f381f90057d98287371557e5c8f39ad4e8af66f6 100644 (file)
@@ -20,9 +20,14 @@ module transportpce-device-renderer {
      authors: Dhruv Bhardwaj ( db929a@att.com )
               Shweta Vachhani ( sv111y@att.com )";
 
-  revision 2020-01-28 {
+  revision 2021-06-18 {
     description
-      "Complement rpc otn-service-path";
+      "replace service-type by service-format,
+        and change service-rate type";
+  }
+  revision 2020-01-28 {
+      description
+        "Complement rpc otn-service-path";
   }
   revision 2019-12-12 {
     description
@@ -64,9 +69,9 @@ module transportpce-device-renderer {
   rpc otn-service-path {
     input {
       leaf service-rate {
-        type string;
+        type uint32;
       }
-      leaf service-type {
+      leaf service-format {
         type string;
       }
       leaf ethernet-encoding {
index f70536766c6935a9e916121396774bd5158ebf02..0a51b1f4bedb6f7151efa22fb9f65f5fd3cc4849 100644 (file)
@@ -13,7 +13,7 @@ import java.math.RoundingMode;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.ModulationFormat;
index 0ac52b0902d6e21b96f67fc76171f7a4d6316f0f..6c60a7c3ec3382cec34078a0287e3ff2ba9613d2 100644 (file)
@@ -16,8 +16,8 @@ import java.util.Arrays;
 import java.util.Map;
 import org.junit.Test;
 import org.opendaylight.transportpce.common.ServiceRateConstant;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.ModulationFormat;
index 439a2c50136f40680cacdf122233447417068d49..017ce3e5f439600cf0161ed46fc66297a2aa4ea2 100644 (file)
@@ -180,12 +180,12 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
         OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory,
                 crossConnect, openRoadmInterfaces, deviceTransactionManager, networkModelService);
         rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService,
-                otnDeviceRendererService);
+                otnDeviceRendererService, portMapping);
 
         LOG.info("Creating service-handler beans ...");
         RendererServiceOperations rendererServiceOperations = new RendererServiceOperationsImpl(deviceRendererService,
                 otnDeviceRendererService, olmPowerServiceRpc, lightyServices.getBindingDataBroker(),
-                lightyServices.getBindingNotificationPublishService());
+                lightyServices.getBindingNotificationPublishService(), portMapping);
         ServiceDataStoreOperations serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(
                 lightyServices.getBindingDataBroker());
         RendererListenerImpl rendererListenerImpl = new RendererListenerImpl(pathComputationService,
@@ -290,12 +290,14 @@ public class TransportPCEImpl extends AbstractLightyModule implements TransportP
     }
 
     private RendererProvider initRenderer(LightyServices lightyServices, TransportpceOlmService olmPowerServiceRpc,
-            DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService) {
+            DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService,
+            PortMapping portMapping) {
         DeviceRendererRPCImpl deviceRendererRPC = new DeviceRendererRPCImpl(deviceRendererService,
                 otnDeviceRendererService);
         RendererServiceOperationsImpl rendererServiceOperations = new RendererServiceOperationsImpl(
                 deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc,
-                lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService());
+                lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService(),
+                portMapping);
         return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererRPC,
                 rendererServiceOperations);
     }
index 49420c29dfa68bf27c3fa0055f0b8eba4870a9f9..aec7ad5e5c0710401d4b522caec855cadb6acdeb 100644 (file)
@@ -299,7 +299,7 @@ public final class TPCEUtils {
                     .getInstance(),
             org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408
                     .$YangModuleInfoImpl.getInstance(),
-            org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128
+            org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618
                     .$YangModuleInfoImpl.getInstance(),
             org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkmodel.rev201116
                     .$YangModuleInfoImpl.getInstance(),
index 1b123c7b399c608829e726c7450ca59fd9ccaca4..edf0c89696b05e4bc626b4cb3ff5bb5a87421e5b 100644 (file)
@@ -11,6 +11,7 @@ import java.util.List;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
 import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.OtnLinkType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 /**
  * Service for data manipulation on OpenROADM topology models.
@@ -105,7 +106,7 @@ public interface NetworkModelService {
      * @param isDeletion
      *       True indicates if the low-order otn service must be deleted
      */
-    void updateOtnLinks(List<String> nodeTps, String serviceRate, Short tribPortNb, Short tribSoltNb,
+    void updateOtnLinks(List<String> nodeTps, Uint32 serviceRate, Short tribPortNb, Short tribSoltNb,
         boolean isDeletion);
 
 }
index f17aef038415b2743e5e25c5c38c4606c82008ad..cc534245c1ffd207d3b1981b204572bddbb5ab72 100644 (file)
@@ -514,7 +514,7 @@ public class NetworkModelServiceImpl implements NetworkModelService {
     }
 
     @Override
-    public void updateOtnLinks(List<String> nodeTps, String serviceRate, Short tribPortNb, Short tribSoltNb,
+    public void updateOtnLinks(List<String> nodeTps, Uint32 serviceRate, Short tribPortNb, Short tribSoltNb,
             boolean isDeletion) {
         List<Link> supportedOdu4Links = getSupportingOdu4Links(nodeTps);
         List<TerminationPoint> tps = getOtnNodeTps(nodeTps);
index 7ddc15548491efc68062929f3dcdfd4fb6b3490f..0700331a9bbd054671aac0ac1f69bbc5f3f37495 100644 (file)
@@ -157,10 +157,10 @@ public final class OpenRoadmOtnTopology {
     }
 
     public static TopologyShard updateOtnLinks(List<Link> suppOdu4Links, List<TerminationPoint> oldTps,
-        String serviceRate, Short tribPortNb, Short tribSoltNb, boolean isDeletion) {
+        Uint32 serviceRate, Short tribPortNb, Short tribSoltNb, boolean isDeletion) {
         List<Link> links = new ArrayList<>();
         Long bwIncr = 10000L;
-        if ("1G".equals(serviceRate)) {
+        if (serviceRate.intValue() == 1) {
             bwIncr = 1000L;
         }
         for (Link link : suppOdu4Links) {
@@ -303,7 +303,7 @@ public final class OpenRoadmOtnTopology {
         return tpBldr.addAugmentation(otnTp1Bldr.setXpdrTpPortConnectionAttributes(xtpcaBldr.build()).build()).build();
     }
 
-    private static TerminationPoint updateNodeTpTsPool(TerminationPoint tp, String serviceRate, Short tribPortNb,
+    private static TerminationPoint updateNodeTpTsPool(TerminationPoint tp, Uint32 serviceRate, Short tribPortNb,
         Short tribSlotNb, boolean isDeletion) {
         LOG.debug("in updateNodeTpTsPool");
         TerminationPointBuilder tpBldr = new TerminationPointBuilder(tp);
@@ -311,15 +311,15 @@ public final class OpenRoadmOtnTopology {
         XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(
             tpBldr.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes());
         List<Uint16> tsPool = new ArrayList<>(xtpcaBldr.getTsPool());
-        switch (serviceRate) {
-            case "1G":
+        switch (serviceRate.intValue()) {
+            case 1:
                 if (isDeletion) {
                     tsPool.add(Uint16.valueOf(tribSlotNb));
                 } else {
                     tsPool.remove(Uint16.valueOf(tribSlotNb));
                 }
                 break;
-            case "10G":
+            case 10:
                 if (isDeletion) {
                     for (int i = 0; i < NB_TRIB_SLOT_PER_10GE; i++) {
                         tsPool.add(Uint16.valueOf(tribSlotNb + i));
index 82c36216fa393a8fb2ab47f8f9afb7d90ff1e060..df5d60f526953b90a2aeb1270df8e0c7fedf180f 100644 (file)
@@ -295,7 +295,7 @@ public class OpenRoadmOtnTopologyTest {
     public void createOtnLinksForODU4NormalTest() {
         TopologyShard topoShard = OpenRoadmOtnTopology
             .createOtnLinks(
-                NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, 100000),
+                NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, Uint32.valueOf(100000)),
                 NetworkmodelTestUtil.createTpList(false));
         assertNotNull("TopologyShard should never be null", topoShard);
         assertNull("list of nodes should be null", topoShard.getNodes());
@@ -398,7 +398,7 @@ public class OpenRoadmOtnTopologyTest {
 
     @Test
     public void createOtnLinksForODU4WhenOTU4HaveBadBWParamsTest() {
-        List<Link> otu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, 100000);
+        List<Link> otu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, Uint32.valueOf(100000));
         List<Link> otu4LinksWithBadBWParam = new ArrayList<>();
         for (Link link : otu4Links) {
             otu4LinksWithBadBWParam.add(new LinkBuilder(link).removeAugmentation(Link1.class).build());
@@ -413,7 +413,7 @@ public class OpenRoadmOtnTopologyTest {
         otu4LinksWithBadBWParam.clear();
         topoShard =
             OpenRoadmOtnTopology.createOtnLinks(
-                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, 99000),
+                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, Uint32.valueOf(99000)),
                     NetworkmodelTestUtil.createTpList(false));
         assertNull("list of nodes should be null", topoShard.getNodes());
         assertNull("list of links should be null", topoShard.getLinks());
@@ -424,7 +424,7 @@ public class OpenRoadmOtnTopologyTest {
     public void deleteOtnLinksForODU4NormalTest() {
         TopologyShard topoShard =
             OpenRoadmOtnTopology.deleteOtnLinks(
-                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, 0),
+                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, Uint32.valueOf(0)),
                     NetworkmodelTestUtil.createTpList(true));
         assertNotNull("TopologyShard should never be null", topoShard);
         assertEquals("list of links should contain 2 links", 2, topoShard.getLinks().size());
@@ -458,7 +458,7 @@ public class OpenRoadmOtnTopologyTest {
 
     @Test
     public void deleteOtnLinksForODU4WhenOTU4HaveBadBWParamsTest() {
-        List<Link> otu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, 0);
+        List<Link> otu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.OTU4, Uint32.valueOf(0));
         List<Link> otu4LinksWithBadBWParam = new ArrayList<>();
         for (Link link : otu4Links) {
             otu4LinksWithBadBWParam.add(new LinkBuilder(link).removeAugmentation(Link1.class).build());
@@ -476,9 +476,9 @@ public class OpenRoadmOtnTopologyTest {
         // tests update for 10G creation
         TopologyShard topoShard =
             OpenRoadmOtnTopology.updateOtnLinks(
-                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, 100000),
+                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, Uint32.valueOf(100000)),
                     NetworkmodelTestUtil.createTpList(true),
-                    "10G", (short)1, (short)1, false);
+                    Uint32.valueOf(10), (short)1, (short)1, false);
         assertNotNull("TopologyShard should never be null", topoShard);
         assertNull("list of nodes should be null", topoShard.getNodes());
         List<Link> sortedLinks = topoShard.getLinks().stream()
@@ -549,8 +549,8 @@ public class OpenRoadmOtnTopologyTest {
 
         // tests update for 10G deletion
         sortedLinks.clear();
-        topoShard = OpenRoadmOtnTopology.updateOtnLinks(topoShard.getLinks(), topoShard.getTps(), "10G", (short)1,
-            (short)1, true);
+        topoShard = OpenRoadmOtnTopology.updateOtnLinks(topoShard.getLinks(), topoShard.getTps(), Uint32.valueOf(10),
+            (short)1, (short)1, true);
         sortedLinks = topoShard.getLinks().stream()
             .sorted((l1, l2) -> l1.getLinkId().getValue().compareTo(l2.getLinkId().getValue()))
             .collect(Collectors.toList());
@@ -614,9 +614,9 @@ public class OpenRoadmOtnTopologyTest {
         // tests update for 1G creation
         TopologyShard topoShard =
             OpenRoadmOtnTopology.updateOtnLinks(
-                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, 100000),
+                    NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, Uint32.valueOf(100000)),
                     NetworkmodelTestUtil.createTpList(true),
-                    "1G", (short)1, (short)1, false);
+                    Uint32.valueOf(1), (short)1, (short)1, false);
         assertNotNull("TopologyShard should never be null", topoShard);
         assertNull("list of nodes should be null", topoShard.getNodes());
         List<Link> sortedLinks = topoShard.getLinks().stream()
@@ -690,7 +690,7 @@ public class OpenRoadmOtnTopologyTest {
             OpenRoadmOtnTopology.updateOtnLinks(
                     topoShard.getLinks(),
                     topoShard.getTps(),
-                    "1G", (short)1, (short)1, true);
+                    Uint32.valueOf(1), (short)1, (short)1, true);
         sortedLinks = topoShard.getLinks().stream()
             .sorted((l1, l2) -> l1.getLinkId().getValue().compareTo(l2.getLinkId().getValue()))
             .collect(Collectors.toList());
@@ -751,7 +751,7 @@ public class OpenRoadmOtnTopologyTest {
 
     @Test
     public void updateOtnLinksForODU4WhenBWParamsNotPresentTest() {
-        List<Link> odu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, 100000);
+        List<Link> odu4Links = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, Uint32.valueOf(100000));
         List<Link> odu4LinksWithBadBWParam = new ArrayList<>();
         for (Link link : odu4Links) {
             odu4LinksWithBadBWParam.add(new LinkBuilder(link).removeAugmentation(Link1.class).build());
@@ -760,7 +760,7 @@ public class OpenRoadmOtnTopologyTest {
             OpenRoadmOtnTopology.updateOtnLinks(
                     odu4LinksWithBadBWParam,
                     NetworkmodelTestUtil.createTpList(true),
-                    "1G", (short)1, (short)1, false);
+                    Uint32.valueOf(1), (short)1, (short)1, false);
         assertNotNull("TopologyShard should never be null", topoShard);
         assertNull("list of nodes should be null", topoShard.getNodes());
         assertNull("list of links should be null", topoShard.getLinks());
@@ -769,12 +769,13 @@ public class OpenRoadmOtnTopologyTest {
 
     @Test
     public void updateOtnLinksForODU4WhenAvailBWNotSufficientTest() {
-        List<Link> odu4LinksWithBadBWParam = NetworkmodelTestUtil.createSuppOTNLinks(OtnLinkType.ODTU4, 8000);
+        List<Link> odu4LinksWithBadBWParam = NetworkmodelTestUtil
+            .createSuppOTNLinks(OtnLinkType.ODTU4, Uint32.valueOf(8000));
         TopologyShard topoShard =
             OpenRoadmOtnTopology.updateOtnLinks(
                     odu4LinksWithBadBWParam,
                     NetworkmodelTestUtil.createTpList(true),
-                    "10G", (short)1, (short)1, false);
+                    Uint32.valueOf(10), (short)1, (short)1, false);
         assertNotNull("TopologyShard should never be null", topoShard);
         assertNull("list of nodes should be null", topoShard.getNodes());
         assertNull("list of links should be null", topoShard.getLinks());
index 00725721c9c2e44d717159daf47ac3b174a9ab2d..30457ecdae6c463763b88cae75900fe37bd61995 100644 (file)
@@ -86,7 +86,7 @@ public final class NetworkmodelTestUtil {
         return mappingNode;
     }
 
-    public static List<Link> createSuppOTNLinks(OtnLinkType type, int availBW) {
+    public static List<Link> createSuppOTNLinks(OtnLinkType type, Uint32 availBW) {
         String prefix = null;
         if (OtnLinkType.OTU4.equals(type)) {
             prefix = "OTU4-";
@@ -108,8 +108,8 @@ public final class NetworkmodelTestUtil {
                     .build())
             .addAugmentation(
                 new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder()
-                    .setAvailableBandwidth(Uint32.valueOf(availBW))
-                    .setUsedBandwidth(Uint32.valueOf(100000 - availBW))
+                    .setAvailableBandwidth(availBW)
+                    .setUsedBandwidth(Uint32.valueOf(100000 - availBW.intValue()))
                     .build())
             .addAugmentation(
                 new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.Link1Builder()
@@ -131,8 +131,8 @@ public final class NetworkmodelTestUtil {
                     .build())
             .addAugmentation(
                 new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder()
-                    .setAvailableBandwidth(Uint32.valueOf(availBW))
-                    .setUsedBandwidth(Uint32.valueOf(100000 - availBW))
+                    .setAvailableBandwidth(availBW)
+                    .setUsedBandwidth(Uint32.valueOf(100000 - availBW.intValue()))
                     .build())
             .addAugmentation(
                 new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.Link1Builder()
index 84477dc49c9129bd59d0d62520fd924b55cc8db0..b96310cec171d73a8398b4a29eee98e9270355ba 100644 (file)
@@ -18,10 +18,10 @@ import org.opendaylight.transportpce.common.NodeIdPair;
 import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.common.fixedflex.GridConstant;
 import org.opendaylight.transportpce.common.fixedflex.GridUtils;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerSetupInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerSetupInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceDeleteOutput;
@@ -214,8 +214,8 @@ public final class ModelMappingUtils {
     }
 
     // Adding createOtnServiceInputpath for A-Z and Z-A directions as one method
-    public static OtnServicePathInput rendererCreateOtnServiceInput(String serviceName, String serviceType,
-        String serviceRate, PathDescription pathDescription, boolean asideToZside) {
+    public static OtnServicePathInput rendererCreateOtnServiceInput(String serviceName, String serviceFormat,
+        Uint32 serviceRate, PathDescription pathDescription, boolean asideToZside) {
         // If atoZ is set true use A-to-Z direction otherwise use Z-to-A
         List<org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.otn.renderer.input.Nodes> nodes =
             new ArrayList<>();
@@ -235,12 +235,12 @@ public final class ModelMappingUtils {
         }
         OtnServicePathInputBuilder otnServicePathInputBuilder = new OtnServicePathInputBuilder()
             .setServiceName(serviceName)
-            .setServiceType(serviceType)
+            .setServiceFormat(serviceFormat)
             .setServiceRate(serviceRate)
             .setNodes(nodes);
 
         // set the trib-slots and trib-ports for the lower oder odu
-        if (serviceRate.equals("1G") || (serviceRate.equals("10G"))) {
+        if (serviceRate.intValue() == 1 || (serviceRate.intValue() == 10)) {
             Short tribPort = Short.valueOf(pathDescription.getAToZDirection().getMinTribSlot().getValue()
                 .split("\\.")[0]);
             Short minTribSlot = Short.valueOf(pathDescription.getAToZDirection().getMinTribSlot().getValue()
index cf87e17296f804607a000a8cbf68a0bc6f7f090e..fb45207d5aace87bfdc0813faa51bfbbff6bf5a0 100644 (file)
@@ -11,7 +11,7 @@ import org.opendaylight.mdsal.binding.api.RpcProviderService;
 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.rev200128.TransportpceDeviceRendererService;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.TransportpceDeviceRendererService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.TransportpceRendererService;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.slf4j.Logger;
index 375615a784f79cca99a4556bbdbcad2951659d43..8c2bd6a3a944358685567c6804cf1a2466a24aed 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.transportpce.renderer;
 
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
 
 public class ServicePathInputData {
 
index 05ed73f510d100dfc0e0b87e293427d11ebc5ef7..ff44cc371462e2cff04d15f8f706d3bda3646de0 100644 (file)
@@ -10,12 +10,12 @@ package org.opendaylight.transportpce.renderer.provisiondevice;
 
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.transportpce.renderer.provisiondevice.servicepath.ServicePathDirection;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutput;
 
 
 public interface DeviceRendererService {
index 36286a82a93221520e52c7bb2e8ce7e22e77c223..ae71614525f7717081ac218de4e3ae0027e10cda 100644 (file)
@@ -49,18 +49,18 @@ import org.opendaylight.transportpce.renderer.provisiondevice.servicepath.Servic
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.alarmsuppression.rev171102.ServiceNodelist;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.alarmsuppression.rev171102.service.nodelist.NodelistBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.alarmsuppression.rev171102.service.nodelist.NodelistKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.renderer.rollback.output.FailedToRollback;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.renderer.rollback.output.FailedToRollbackBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.renderer.rollback.output.FailedToRollbackKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.renderer.rollback.output.FailedToRollback;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.renderer.rollback.output.FailedToRollbackBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.renderer.rollback.output.FailedToRollbackKey;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.OpenroadmNodeVersion;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.Topology;
index f5c7bd47622542174d27fda722e054dee86d72f8..25c2e85ffc8debf3d66563c7eb5d65ff617e84bf 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.transportpce.renderer.provisiondevice;
 
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutput;
 
 public interface OtnDeviceRendererService {
     OtnServicePathOutput setupOtnServicePath(OtnServicePathInput input);
index 72cd2a3669bfffeb46cfc4fa0b2f3ab15b5a95d8..16848fc989869db89ecb5ab79e1dc322abb3a5c4 100644 (file)
@@ -26,15 +26,16 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa
 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.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OpucnTribSlotDef;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterface;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterfaceBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterfaceKey;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.otn.renderer.input.Nodes;
 import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.OtnLinkType;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,20 +67,20 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
         boolean success = true;
         List<NodeInterface> nodeInterfaces = new ArrayList<>();
         List<String> results = new ArrayList<>();
-        if (input.getServiceType() == null || input.getServiceRate() == null) {
+        if (input.getServiceFormat() == null || input.getServiceRate() == null) {
             OtnServicePathOutputBuilder otnServicePathOutputBuilder = new OtnServicePathOutputBuilder()
                 .setSuccess(false)
                 .setResult("Error - service-type and service-rate must be presents");
             return otnServicePathOutputBuilder.build();
         }
         CopyOnWriteArrayList<Nodes> otnNodesProvisioned = new CopyOnWriteArrayList<>();
-        switch (input.getServiceType()) {
+        switch (input.getServiceFormat()) {
             case "Ethernet":
-                if ("10G".equals(input.getServiceRate()) || "1G".equals(input.getServiceRate())) {
+                if (input.getServiceRate().intValue() == 1 || input.getServiceRate().intValue() == 10) {
                     try {
                         LOG.info("Calling Node interfaces {} {} {} {} {} {} {}",
                             input.getServiceRate(), input.getEthernetEncoding(),
-                            input.getServiceType(), input.getOperation(), input.getTribPortNumber(),
+                            input.getServiceFormat(), input.getOperation(), input.getTribPortNumber(),
                             input.getTribSlot(), input.getNodes());
                         nodeInterfaces = createInterface(input);
                         LOG.info("Node interfaces created just fine ");
@@ -91,11 +92,12 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                         LOG.warn("Set up service path failed", e);
                         success = false;
                     }
-                } else if ("100G".equals(input.getServiceRate())) {
+                } else if (input.getServiceRate().intValue() == 100) {
                     try {
                         LOG.info("Calling Node interfaces {} {} {} {} {} {}",
                             input.getServiceRate(), input.getEthernetEncoding(),
-                            input.getServiceType(), input.getOperation(), input.getOpucnTribSlots(), input.getNodes());
+                            input.getServiceFormat(), input.getOperation(), input.getOpucnTribSlots(),
+                            input.getNodes());
                         nodeInterfaces = createInterface(input);
                         LOG.info("Node interfaces created just fine for 100G OTN ");
                         // TODO: Update the OTN topology accordingly with Opucn-Trib-slots
@@ -111,7 +113,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                 }
                 break;
             case "ODU":
-                if ("100G".equals(input.getServiceRate())) {
+                if (input.getServiceRate().intValue() == 100) {
                     try {
                         createODU4TtpInterface(input, nodeInterfaces, otnNodesProvisioned);
                         updateOtnTopology(otnNodesProvisioned, null, null, null, null, false);
@@ -119,7 +121,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                         LOG.warn("Set up service path failed", e);
                         success = false;
                     }
-                } else if ("400G".equals(input.getServiceRate())) {
+                } else if (input.getServiceRate().intValue() == 400) {
                     try {
                         createOduc4TtpInterface(input, nodeInterfaces, otnNodesProvisioned);
                         updateOtnTopology(otnNodesProvisioned, null, null, null, null, false);
@@ -132,7 +134,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                 }
                 break;
             default:
-                LOG.error("service-type {} not managed yet", input.getServiceType());
+                LOG.error("service-type {} not managed yet", input.getServiceFormat());
                 break;
         }
         if (success) {
@@ -171,29 +173,28 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
             String nodeId = node.getNodeId();
             LOG.info("Deleting service setup on node {}", nodeId);
             String networkTp = node.getNetworkTp();
-            if (networkTp == null || input.getServiceRate() == null || input.getServiceType() == null) {
-                LOG.error("destination ({}) or service rate ({}) or service type ({}) is null.", networkTp,
-                    input.getServiceRate(), input.getServiceType());
+            if (networkTp == null || input.getServiceRate() == null || input.getServiceFormat() == null) {
+                LOG.error("destination ({}) or service-rate ({}) or service-format ({}) is null.", networkTp,
+                    input.getServiceRate(), input.getServiceFormat());
                 return;
             }
             // if the node is currently mounted then proceed.
             if (this.deviceTransactionManager.isDeviceMounted(nodeId)) {
                 String connectionNumber = "";
-                switch (input.getServiceRate()) {
-                    case ("100G"):
-                        if ("ODU".equals(input.getServiceType())) {
+                switch (input.getServiceRate().intValue()) {
+                    case 100:
+                        if ("ODU".equals(input.getServiceFormat())) {
                             interfacesToDelete.add(networkTp + "-ODU4");
                             otnNodesProvisioned.add(node);
                             if (node.getNetwork2Tp() != null) {
                                 interfacesToDelete.add(node.getNetwork2Tp() + "-ODU4");
                             }
-                        } else if ("Ethernet".equals(input.getServiceType())) {
+                        } else if ("Ethernet".equals(input.getServiceFormat())) {
                             connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU4");
                         }
                         break;
-                    case ("400G"):
-                        LOG.info("Service Rate is 400G");
-                        if ("ODU".equals(input.getServiceType())) {
+                    case 400:
+                        if ("ODU".equals(input.getServiceFormat())) {
                             interfacesToDelete.add(networkTp + "-ODUC4");
                             otnNodesProvisioned.add(node);
                             if (node.getNetwork2Tp() != null) {
@@ -201,10 +202,10 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                             }
                         }
                         break;
-                    case ("10G"):
+                    case 10:
                         connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU2e");
                         break;
-                    case ("1G"):
+                    case 1:
                         connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU0");
                         break;
                     default:
@@ -222,7 +223,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
 
                             interfacesToDelete.add(interf);
                             String supportedInterface = this.openRoadmInterfaces.getSupportedInterface(nodeId, interf);
-                            if (input.getServiceRate().equals("100G")) {
+                            if (input.getServiceRate().intValue() == 100) {
                                 if (!supportedInterface.contains("ODUC4")) {
                                     interfacesToDelete.add(supportedInterface);
                                 }
@@ -270,7 +271,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
         }
         forkJoinPool.shutdown();
         LOG.info("requesting otn-topology update...");
-        if (!nodesTpToUpdate.isEmpty() && !"ODU".equals(input.getServiceType())) {
+        if (!nodesTpToUpdate.isEmpty() && !"ODU".equals(input.getServiceFormat())) {
             updateOtnTopology(null, nodesTpToUpdate, input.getServiceRate(), input.getTribPortNumber(),
                 input.getTribSlot(), true);
         } else if (!otnNodesProvisioned.isEmpty()) {
@@ -325,8 +326,8 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
         List<NodeInterface> nodeInterfaces = new ArrayList<>();
         LOG.info("Calling Create Interface entry for OTN service path");
         if (input.getServiceRate() == null
-            || !("1G".equals(input.getServiceRate()) || "10G".equals(input.getServiceRate())
-                || "100G".equals(input.getServiceRate()))) {
+            || !(input.getServiceRate().intValue() == 1 || input.getServiceRate().intValue() == 10
+                || input.getServiceRate().intValue() == 100)) {
             LOG.error("Service rate {} not managed yet", input.getServiceRate());
         } else {
             createLowOrderInterfaces(input, nodeInterfaces);
@@ -345,8 +346,8 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
             // check if the node is mounted or not?
             List<String> createdEthInterfaces = new ArrayList<>();
             List<String> createdOduInterfaces = new ArrayList<>();
-            switch (input.getServiceRate()) {
-                case ("1G"):
+            switch (input.getServiceRate().intValue()) {
+                case 1:
                     LOG.info("Input service is 1G");
                     if (node.getClientTp() != null) {
                         createdEthInterfaces.add(
@@ -368,7 +369,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                                 input.getTribSlot()));
                     }
                     break;
-                case ("10G"):
+                case 10:
                     LOG.info("Input service is 10G");
                     if (node.getClientTp() != null) {
                         createdEthInterfaces.add(openRoadmInterfaceFactory.createOpenRoadmEth10GInterface(
@@ -391,7 +392,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
                                 input.getTribSlot()));
                     }
                     break;
-                case ("100G"):
+                case 100:
                     LOG.info("Input service is 100G");
                     // Take the first and last value in the list of OpucnTribSlot (assuming SH would provide
                     // min and max value only, size two)
@@ -503,7 +504,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService {
         }
     }
 
-    private void updateOtnTopology(CopyOnWriteArrayList<Nodes> nodes, List<String> nodesTps, String serviceRate,
+    private void updateOtnTopology(CopyOnWriteArrayList<Nodes> nodes, List<String> nodesTps, Uint32 serviceRate,
         Short tribPortNb, Short tribSlotNb, boolean isDeletion) {
         if (nodes != null && nodes.size() == 2) {
             if (isDeletion) {
index 6826a0b8cb5179ebe4e3e6b3bbcc0252650a3340..8784618d7f6f5c0a491775a0a2391b47ca5b9eec 100644 (file)
@@ -27,6 +27,8 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.ResponseCodes;
 import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.common.Timeouts;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
+import org.opendaylight.transportpce.common.service.ServiceTypes;
 import org.opendaylight.transportpce.renderer.ModelMappingUtils;
 import org.opendaylight.transportpce.renderer.ServicePathInputData;
 import org.opendaylight.transportpce.renderer.provisiondevice.servicepath.ServicePathDirection;
@@ -36,8 +38,8 @@ import org.opendaylight.transportpce.renderer.provisiondevice.tasks.OlmPowerSetu
 import org.opendaylight.transportpce.renderer.provisiondevice.tasks.OlmPowerSetupTask;
 import org.opendaylight.transportpce.renderer.provisiondevice.tasks.OtnDeviceRenderingTask;
 import org.opendaylight.transportpce.renderer.provisiondevice.tasks.RollbackProcessor;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerSetupInput;
@@ -45,16 +47,15 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev17
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerTurndownOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.TransportpceOlmService;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.get.pm.output.Measurements;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.RendererRpcResultSp;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.RendererRpcResultSpBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceDeleteInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceDeleteOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODUCn;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OTUCn;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
@@ -95,16 +96,18 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
     private final TransportpceOlmService olmService;
     private final DataBroker dataBroker;
     private final NotificationPublishService notificationPublishService;
+    private final PortMapping portMapping;
     private ListeningExecutorService executor;
 
     public RendererServiceOperationsImpl(DeviceRendererService deviceRenderer,
             OtnDeviceRendererService otnDeviceRenderer, TransportpceOlmService olmService,
-            DataBroker dataBroker, NotificationPublishService notificationPublishService) {
+            DataBroker dataBroker, NotificationPublishService notificationPublishService, PortMapping portMapping) {
         this.deviceRenderer = deviceRenderer;
         this.otnDeviceRenderer = otnDeviceRenderer;
         this.olmService = olmService;
         this.dataBroker = dataBroker;
         this.notificationPublishService = notificationPublishService;
+        this.portMapping = portMapping;
         this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUMBER_OF_THREADS));
     }
 
@@ -118,108 +121,63 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
             public ServiceImplementationRequestOutput call() throws Exception {
                 sendNotifications(ServicePathNotificationTypes.ServiceImplementationRequest, input.getServiceName(),
                         RpcStatusEx.Pending, "Service compliant, submitting service implementation Request ...");
-                // Here is the switch statement that distinguishes on the connection-type
-                LOG.info("Connection-type is {} for {}", input.getConnectionType(), input.getServiceName());
-                switch (input.getConnectionType()) {
-                    case Service: case RoadmLine: // This takes into account of Ethernet 100G, 1G, 10G and ODU4
-                        LOG.info("RPC implementation for {}", input.getConnectionType());
-                        if (((input.getServiceAEnd().getServiceRate() != null)
-                            && ((input.getServiceAEnd().getServiceRate().intValue() == 100))
-                            || (input.getServiceAEnd().getServiceRate().intValue() == 400))
-                            && ((input.getServiceAEnd().getServiceFormat().getName().equals("Ethernet"))
-                                || (input.getServiceAEnd().getServiceFormat().getName().equals("OC")))) {
-                            LOG.info("Service format for {} is {} and rate is {}", input.getServiceName(),
-                                input.getServiceAEnd().getServiceFormat(), input.getServiceAEnd().getServiceRate());
-                            if (!createServicepathInput(input)) {
-                                return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
-                        } else { // This implies, service-rate is 1 or 10G
-                            // This includes the lower-order odu (1G, 10G, 100G) and this is A-Z side
-                            LOG.info("RPC implementation for LO-ODU");
-                            String serviceRate = ""; // Assuming service at A-side and Z-side has same service rate
-                            if (input.getServiceAEnd().getServiceRate() != null) {
-                                serviceRate = input.getServiceAEnd().getServiceRate().toString() + "G";
-                            }
-                            LOG.info("Start rendering for {} service with {} rate and {} format",
-                                input.getServiceName(), serviceRate,
-                                input.getServiceAEnd().getServiceFormat());
-                            // This is A-Z side
-                            OtnServicePathInput otnServicePathInputAtoZ = ModelMappingUtils
-                                .rendererCreateOtnServiceInput(input.getServiceName(),
-                                    input.getServiceAEnd().getServiceFormat().getName(),
-                                    serviceRate, (PathDescription) input.getPathDescription(), true);
-                            // Rollback should be same for all conditions, so creating a new one
-                            RollbackProcessor rollbackProcessor = new RollbackProcessor();
-                            List<OtnDeviceRenderingResult> otnRenderingResults = otnDeviceRendering(rollbackProcessor,
-                                otnServicePathInputAtoZ, null);
-                            if (rollbackProcessor.rollbackAllIfNecessary() > 0) {
-                                sendNotifications(ServicePathNotificationTypes.ServiceImplementationRequest,
-                                    input.getServiceName(), RpcStatusEx.Failed, DEVICE_RENDERING_ROLL_BACK_MSG);
-                                return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
-                            LOG.info("OTN rendering result size {}", otnRenderingResults.size());
+                Uint32 serviceRate = getServiceRate(input);
+                String serviceType;
+                if (NodeTypes.Xpdr.equals(portMapping.getNode(input.getServiceAEnd().getNodeId())
+                        .getNodeInfo().getNodeType())
+                    && input.getServiceAEnd().getTxDirection() != null
+                    && input.getServiceAEnd().getTxDirection().getPort() != null
+                    && input.getServiceAEnd().getTxDirection().getPort().getPortName() != null) {
+                    Mapping mapping = portMapping.getMapping(input.getServiceAEnd().getNodeId(),
+                        input.getServiceAEnd().getTxDirection().getPort().getPortName());
+                    serviceType = ServiceTypes.getServiceType(input.getServiceAEnd().getServiceFormat().getName(),
+                        serviceRate, mapping);
+                } else {
+                    serviceType = ServiceTypes.getServiceType(input.getServiceAEnd().getServiceFormat().getName(),
+                        serviceRate, null);
+                }
+
+                switch (serviceType) {
+                    case StringConstants.SERVICE_TYPE_100GE_T:
+                    case StringConstants.SERVICE_TYPE_400GE:
+                    case StringConstants.SERVICE_TYPE_OTU4:
+                    case StringConstants.SERVICE_TYPE_OTUC4:
+                        if (!createServicepathInput(input)) {
+                            return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
+                                OPERATION_FAILED);
                         }
                         break;
-                    case Infrastructure:
-                        LOG.info("RPC implementation for {}", input.getConnectionType());
-                        if (input.getServiceAEnd().getOtuServiceRate() != null) {
-                            if ((input.getServiceAEnd().getOtuServiceRate().equals(OTU4.class))
-                                || (input.getServiceAEnd().getOtuServiceRate().equals(OTUCn.class))) {
-                                // For the service of OTU4 or OTUCn infrastructure
-                                // Create the OCH and OTU interfaces for OTU4 class
-                                // Create OTSi, OTSi-group and OTUCn interface
-                                if (!createServicepathInput(input)) {
-                                    return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
-                                        OPERATION_FAILED);
-                                }
-                            }
-                        }
-                        if (input.getServiceAEnd().getOduServiceRate() != null) {
-                            String serviceRate = null;
-                            if (input.getServiceAEnd().getOduServiceRate().equals(ODU4.class)) {
-                                // For the service of OTU4 infrastructure
-                                serviceRate = "100G"; // For OtnDeviceRendererServiceImpl
-                            }
-                            else if (input.getServiceAEnd().getOduServiceRate().equals(ODUCn.class)) {
-                                // For the service of OTUCn infrastructure
-                                // TODO: what happens if split-lambda where to be used? We will have ODUC2 rate,
-                                // TODO: which case service-rate would be 200
-                                // TODO: in that case it would be 200G?? Need to understand more
-                                serviceRate = "400G"; // For OtnDeviceRendererServiceImpl
-                            }
-                            LOG.info("Service format for {} is {} and rate is {}", input.getServiceName(),
-                                input.getServiceAEnd().getOduServiceRate(), serviceRate);
-                            // Now start rendering ODU4 or ODUC4 interface
-                            // This is A-Z side
-                            OtnServicePathInput otnServicePathInputAtoZ = ModelMappingUtils
-                                .rendererCreateOtnServiceInput(input.getServiceName(),
-                                    input.getServiceAEnd().getServiceFormat().getName(),
-                                    serviceRate,
-                                    input.getPathDescription(), true);
-                            // This is Z-A side
-                            OtnServicePathInput otnServicePathInputZtoA = ModelMappingUtils
-                                .rendererCreateOtnServiceInput(input.getServiceName(),
-                                    input.getServiceZEnd().getServiceFormat().getName(),
-                                    serviceRate,
-                                    input.getPathDescription(), false);
-                            // Rollback should be same for all conditions, so creating a new one
-                            RollbackProcessor rollbackProcessor = new RollbackProcessor();
-                            List<OtnDeviceRenderingResult> otnRenderingResults = otnDeviceRendering(rollbackProcessor,
-                                otnServicePathInputAtoZ, otnServicePathInputZtoA);
-                            if (rollbackProcessor.rollbackAllIfNecessary() > 0) {
-                                sendNotifications(ServicePathNotificationTypes.ServiceImplementationRequest,
-                                    input.getServiceName(), RpcStatusEx.Failed, DEVICE_RENDERING_ROLL_BACK_MSG);
-                                return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
-                            LOG.info("OTN rendering result size {}", otnRenderingResults.size());
+                    case StringConstants.SERVICE_TYPE_1GE:
+                    case StringConstants.SERVICE_TYPE_10GE:
+                    case StringConstants.SERVICE_TYPE_ODU4:
+                    case StringConstants.SERVICE_TYPE_ODUC4:
+                        // This is A-Z side
+                        OtnServicePathInput otnServicePathInputAtoZ = ModelMappingUtils
+                            .rendererCreateOtnServiceInput(input.getServiceName(),
+                                input.getServiceAEnd().getServiceFormat().getName(),
+                                serviceRate,
+                                input.getPathDescription(), true);
+                        // This is Z-A side
+                        OtnServicePathInput otnServicePathInputZtoA = ModelMappingUtils
+                            .rendererCreateOtnServiceInput(input.getServiceName(),
+                                input.getServiceZEnd().getServiceFormat().getName(),
+                                serviceRate,
+                                input.getPathDescription(), false);
+                        // Rollback should be same for all conditions, so creating a new one
+                        RollbackProcessor rollbackProcessor = new RollbackProcessor();
+                        otnDeviceRendering(rollbackProcessor, otnServicePathInputAtoZ, otnServicePathInputZtoA);
+                        if (rollbackProcessor.rollbackAllIfNecessary() > 0) {
+                            sendNotifications(ServicePathNotificationTypes.ServiceImplementationRequest,
+                                input.getServiceName(), RpcStatusEx.Failed, DEVICE_RENDERING_ROLL_BACK_MSG);
+                            return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_FAILED,
+                                OPERATION_FAILED);
                         }
                         break;
                     default:
-                        LOG.warn("Unsupported connection type {}", input.getConnectionType());
+                        LOG.error("unsupported service-type");
+                        break;
                 }
+
                 sendNotificationsWithPathDescription(
                         ServicePathNotificationTypes.ServiceImplementationRequest,
                         input.getServiceName(), RpcStatusEx.Successful, OPERATION_SUCCESSFUL,
@@ -254,49 +212,86 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
                     return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
                             OPERATION_FAILED);
                 }
-                switch (service.getConnectionType()) {
-                    case RoadmLine:
-                    case Service:
-                        if ((ServiceFormat.Ethernet.equals(service.getServiceAEnd().getServiceFormat())
-                                || ServiceFormat.OC.equals(service.getServiceAEnd().getServiceFormat()))
-                            && (Uint32.valueOf("100").equals(service.getServiceAEnd().getServiceRate())
-                                || Uint32.valueOf("400").equals(service.getServiceAEnd().getServiceRate()))) {
-                            if (!manageServicePathDeletion(serviceName, pathDescription)) {
-                                return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
-                        }
-                        if (ServiceFormat.Ethernet.equals(service.getServiceAEnd().getServiceFormat())
-                            && (Uint32.valueOf("10").equals(service.getServiceAEnd().getServiceRate())
-                                || Uint32.valueOf("1").equals(service.getServiceAEnd().getServiceRate()))) {
-                            if (!manageOtnServicePathDeletion(serviceName, pathDescription, service)) {
-                                return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
+                String serviceType = ServiceTypes.getServiceType(service.getServiceAEnd().getServiceFormat().getName(),
+                    service.getServiceAEnd().getServiceRate(), null);
+                switch (serviceType) {
+                    case StringConstants.SERVICE_TYPE_100GE_T:
+                    case StringConstants.SERVICE_TYPE_400GE:
+                    case StringConstants.SERVICE_TYPE_OTU4:
+                    case StringConstants.SERVICE_TYPE_OTUC4:
+                        if (!manageServicePathDeletion(serviceName, pathDescription)) {
+                            return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
+                                OPERATION_FAILED);
                         }
                         break;
-                    case Infrastructure:
-                        if (ServiceFormat.OTU.equals(service.getServiceAEnd().getServiceFormat())) {
-                            if (!manageServicePathDeletion(serviceName, pathDescription)) {
-                                return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
-                        } else if (ServiceFormat.ODU.equals(service.getServiceAEnd().getServiceFormat())) {
-                            if (!manageOtnServicePathDeletion(serviceName, pathDescription, service)) {
-                                return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
-                                    OPERATION_FAILED);
-                            }
+                    case StringConstants.SERVICE_TYPE_1GE:
+                    case StringConstants.SERVICE_TYPE_10GE:
+                    case StringConstants.SERVICE_TYPE_ODU4:
+                    case StringConstants.SERVICE_TYPE_ODUC4:
+                        if (!manageOtnServicePathDeletion(serviceName, pathDescription, service)) {
+                            return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_FAILED,
+                                OPERATION_FAILED);
                         }
                         break;
                     default:
-                        LOG.error("Unmanaged connection-type for deletion of service {}", serviceName);
+                        LOG.error("unsupported service-type");
                         break;
-                    }
+                }
                 return ModelMappingUtils.createServiceDeleteResponse(ResponseCodes.RESPONSE_OK, OPERATION_SUCCESSFUL);
             }
         });
     }
 
+    @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
+        value = "UPM_UNCALLED_PRIVATE_METHOD",
+        justification = "call in call() method")
+    private Uint32 getServiceRate(ServiceImplementationRequestInput input) {
+        if (input.getServiceAEnd() == null) {
+            LOG.warn("Unable to get service-rate for service {}", input.getServiceName());
+            return Uint32.ZERO;
+        }
+        if (input.getServiceAEnd().getServiceRate() != null) {
+            return input.getServiceAEnd().getServiceRate();
+        }
+        if (ServiceFormat.OTU.equals(input.getServiceAEnd().getServiceFormat())
+                && input.getServiceAEnd().getOtuServiceRate() != null) {
+            switch (input.getServiceAEnd().getOtuServiceRate().getSimpleName()) {
+                case "OTUCn":
+                    return Uint32.valueOf(400);
+                case "OTU4":
+                    return Uint32.valueOf(100);
+                case "OTU2":
+                case "OTU2e":
+                    return Uint32.valueOf(10);
+                default:
+                    LOG.warn("otu-service-rate {} not managed yet", input.getServiceAEnd().getOtuServiceRate()
+                        .getSimpleName());
+                    return Uint32.ZERO;
+            }
+        } else if (ServiceFormat.ODU.equals(input.getServiceAEnd().getServiceFormat())
+                && input.getServiceAEnd().getOduServiceRate() != null) {
+            switch (input.getServiceAEnd().getOduServiceRate().getSimpleName()) {
+                case "ODUCn":
+                    return Uint32.valueOf(400);
+                case "ODU4":
+                    return Uint32.valueOf(100);
+                case "ODU2":
+                case "ODU2e":
+                    return Uint32.valueOf(10);
+                case "ODU0":
+                    return Uint32.valueOf(1);
+                default:
+                    LOG.warn("odu-service-rate {} not managed yet", input.getServiceAEnd().getOduServiceRate()
+                        .getSimpleName());
+                    return Uint32.ZERO;
+            }
+        } else {
+            LOG.warn("Unable to get service-rate for service {} - otu-service-rate should not be null",
+                input.getServiceName());
+            return Uint32.ZERO;
+        }
+    }
+
     @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
             value = "UPM_UNCALLED_PRIVATE_METHOD",
             justification = "call in call() method")
@@ -652,9 +647,15 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations
     private boolean manageOtnServicePathDeletion(String serviceName, PathDescription pathDescription,
         Services service) {
         OtnServicePathInput ospi = null;
-        ospi = ModelMappingUtils.rendererCreateOtnServiceInput(serviceName,
+        if (ConnectionType.Infrastructure.equals(service.getConnectionType())) {
+            ospi = ModelMappingUtils.rendererCreateOtnServiceInput(
+                serviceName, service.getServiceAEnd().getServiceFormat().getName(), Uint32.valueOf(100),
+                pathDescription, true);
+        } else if (ConnectionType.Service.equals(service.getConnectionType())) {
+            ospi = ModelMappingUtils.rendererCreateOtnServiceInput(serviceName,
                 service.getServiceAEnd().getServiceFormat().getName(),
-                service.getServiceAEnd().getServiceRate().toString() + "G", pathDescription, true);
+                service.getServiceAEnd().getServiceRate(), pathDescription, true);
+        }
         LOG.info("Deleting otn-service path {} via renderer", serviceName);
         sendNotifications(ServicePathNotificationTypes.ServiceDelete, serviceName, RpcStatusEx.Pending,
                 "Deleting otn-service path via renderer");
index 46fa44e5830b64022c54735a4ff37506a0b51381..c6d8f1ba01e02c4d4eb88ae0131b646de6905111 100644 (file)
@@ -13,10 +13,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.renderer.rollback.output.FailedToRollback;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.renderer.rollback.output.FailedToRollback;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterface;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.node.interfaces.NodeInterfaceKey;
 import org.slf4j.Logger;
index 7b15923276b74763b7fb663716aab81f646384d5..4d15cd8b50b67178b333ede6c2ef31304e598ba1 100644 (file)
@@ -14,7 +14,7 @@ import org.opendaylight.transportpce.renderer.ServicePathInputData;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRenderingResult;
 import org.opendaylight.transportpce.renderer.provisiondevice.servicepath.ServicePathDirection;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutput;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.olm.renderer.input.Nodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index 2721f99a8c3a5f09f592a56f6609e6efadc98908..3e6f843c057f02fd8a7bf21b5dc335d9d1a3a58c 100644 (file)
@@ -12,8 +12,8 @@ import java.util.ArrayList;
 import java.util.concurrent.Callable;
 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRenderingResult;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutput;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 106e6ec15ff88dcc7793d66ef88c4c6bdf74597a..5a709d6ab7387551b0fcc2cb04ba00e082880089 100644 (file)
@@ -12,17 +12,17 @@ import com.google.common.util.concurrent.ListenableFuture;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.OtnServicePathOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.TransportpceDeviceRendererService;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.OtnServicePathOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.TransportpceDeviceRendererService;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
index b93e7cf370b7f7cfb872b64e09cd29faadba4e6e..44c248fba1e9c70b5c2f5e877d8fc4f1b9df50bd 100644 (file)
@@ -94,6 +94,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <argument ref="olmService" />
     <argument ref="dataBroker" />
     <argument ref="notificationPublishService" />
+    <argument ref="portMapping" />
   </bean>
 
   <bean id="rendererProvider" class="org.opendaylight.transportpce.renderer.RendererProvider"
index f236801bfb71997ddc7eabeeee88467c0a1777d7..f9d1f363c985fa58b71492e2f9b6b7bb97568064 100644 (file)
@@ -49,8 +49,8 @@ import org.opendaylight.transportpce.renderer.utils.CreateOtsOmsDataUtils;
 import org.opendaylight.transportpce.renderer.utils.MountPointUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.transportpce.test.stub.MountPointServiceStub;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.Network;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.OpenroadmNodeVersion;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
index 6efbbe22c0ba6aabbf495352eeb1440fc7060715..b2d4351a8f47bffe5718bdc5443c882278f9d647 100644 (file)
@@ -151,7 +151,7 @@ public class RendererServiceOperationsImplDeleteTest extends AbstractTest {
             MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUMBER_OF_THREADS));
         NotificationPublishService notificationPublishService = new NotificationPublishServiceMock();
         this.rendererServiceOperations =  new RendererServiceOperationsImpl(this.deviceRenderer,
-            this.otnDeviceRendererService, olmService, getDataBroker(), notificationPublishService);
+            this.otnDeviceRendererService, olmService, getDataBroker(), notificationPublishService, null);
 
     }
 
index e5a9f50ff374d15d3069dced12a0bcdb19a77764..fa4a1ac9aacde6154975ac2362d9b30bff298940 100644 (file)
@@ -53,7 +53,7 @@ import org.opendaylight.transportpce.renderer.utils.ServiceDataUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.transportpce.test.stub.MountPointServiceStub;
 import org.opendaylight.transportpce.test.stub.MountPointStub;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathOutputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmOutput;
@@ -139,7 +139,7 @@ public class RendererServiceOperationsImplTest extends AbstractTest {
         this.olmService = Mockito.spy(this.olmService);
         this.deviceRenderer = Mockito.spy(this.deviceRenderer);
         this.rendererServiceOperations =  new RendererServiceOperationsImpl(this.deviceRenderer,
-            this.otnDeviceRendererService, this.olmService, getDataBroker(), notificationPublishService);
+            this.otnDeviceRendererService, this.olmService, getDataBroker(), notificationPublishService, null);
 
         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
             .setSuccess(true);
index 19f640b4f7b5931adcefadedc570f0ef9156c995..6e00231848f229bcc87c494e9509deeb1a67d5db 100644 (file)
@@ -16,10 +16,10 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService;
 import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService;
 import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
 
 @Ignore
 public class DeviceRendererRPCImplTest extends AbstractTest {
index 44a1784b69c1f503fe7b08bd8fd6250a0aa63fe7..df7b45118c2b4c5001eeae24dd88932b1cbaafd4 100644 (file)
@@ -8,8 +8,8 @@
 
 package org.opendaylight.transportpce.renderer.utils;
 
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.CreateOtsOmsInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.CreateOtsOmsInputBuilder;
 
 public final class CreateOtsOmsDataUtils {
 
index e76b810e2b00530abe6a4e2a34858600f6e926c3..0fc22260c9dad46df577c84de5fe486658680873 100644 (file)
@@ -13,10 +13,10 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.RendererRollbackInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.RendererRollbackInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev210618.ServicePathInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestInput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.service.implementation.request.input.PathDescription;
index 65869f7ff497fd22b0c5437e712c883407ccec8b..d6f47f7d74bf5f423b003ec4f3e582069a486fa7 100644 (file)
@@ -156,7 +156,7 @@ class TransportPCEtesting(unittest.TestCase):
                              res['interface'][0]['org-openroadm-otn-otu-interfaces:otu'])
 
     def test_08_otn_service_path_create_ODU4(self):
-        response = test_utils.otn_service_path_request("create", "service_ODU4", "100G", "ODU",
+        response = test_utils.otn_service_path_request("create", "service_ODU4", "100", "ODU",
                                                        [{"node-id": "SPDR-SA1", "network-tp": "XPDR1-NETWORK1"}])
         time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
@@ -203,7 +203,7 @@ class TransportPCEtesting(unittest.TestCase):
             res['interface'][0]['org-openroadm-otn-odu-interfaces:odu']['opu'])
 
     def test_11_otn_service_path_create_10GE(self):
-        response = test_utils.otn_service_path_request("create", "service1", "10G", "Ethernet",
+        response = test_utils.otn_service_path_request("create", "service1", "10", "Ethernet",
                                                        [{"node-id": "SPDR-SA1", "client-tp": "XPDR1-CLIENT4",
                                                            "network-tp": "XPDR1-NETWORK1"}],
                                                        {"ethernet-encoding": "eth encode",
@@ -312,7 +312,7 @@ class TransportPCEtesting(unittest.TestCase):
                              res['odu-connection'][0]['source'])
 
     def test_16_otn_service_path_delete_10GE(self):
-        response = test_utils.otn_service_path_request("delete", "service1", "10G", "Ethernet",
+        response = test_utils.otn_service_path_request("delete", "service1", "10", "Ethernet",
                                                        [{"node-id": "SPDR-SA1", "client-tp": "XPDR1-CLIENT4",
                                                            "network-tp": "XPDR1-NETWORK1"}],
                                                        {"ethernet-encoding": "eth encode",
@@ -342,7 +342,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.conflict)
 
     def test_21_otn_service_path_delete_ODU4(self):
-        response = test_utils.otn_service_path_request("delete", "service_ODU4", "100G", "ODU",
+        response = test_utils.otn_service_path_request("delete", "service_ODU4", "100", "ODU",
                                                        [{"node-id": "SPDR-SA1", "network-tp": "XPDR1-NETWORK1"}])
         time.sleep(3)
         self.assertEqual(response.status_code, requests.codes.ok)
index dfbd32f72ac1056f2464e874c432e09210fbf190..d709975a31a2bb69880e777ee9c948488014c94e 100644 (file)
@@ -387,12 +387,12 @@ def service_path_request(operation: str, servicename: str, wavenumber: str, node
     return post_request(URL_SERVICE_PATH, attr)
 
 
-def otn_service_path_request(operation: str, servicename: str, servicerate: str, servicetype: str, nodes,
+def otn_service_path_request(operation: str, servicename: str, servicerate: str, serviceformat: str, nodes,
                              eth_attr=None):
     attr = {"service-name": servicename,
             "operation": operation,
             "service-rate": servicerate,
-            "service-type": servicetype,
+            "service-format": serviceformat,
             "nodes": nodes}
     if eth_attr:
         attr.update(eth_attr)