Fix bugs to make renderer functional tests running 31/82231/8
authorGilles Thouenon <gilles.thouenon@orange.com>
Fri, 24 May 2019 08:49:23 +0000 (10:49 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Tue, 4 Jun 2019 13:09:24 +0000 (15:09 +0200)
- add management of equipment-state change for XPDR 221 devices
- disable org-openroadm-service update when using
transportpce-device-renderer:service-path rpc

JIRA: TRNSPRTPCE-105
Change-Id: Ib5de2d10c5acc3fa41dddd9ec2f19453f5fc8384
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl.java
common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java

index 972f1d307db5ca73b73f008ab39fa6406dd17d8c..5dbcbad85fc2e60aec10baf764a88feae59a676d 100644 (file)
@@ -91,9 +91,9 @@ public class OpenRoadmInterfacesImpl implements OpenRoadmInterfaces {
         throws OpenRoadmInterfaceException {
         String openRoadmVersion = mappingUtils.getOpenRoadmVersion(nodeId);
 
-        LOG.info("Interface delete request received for node {} with version {}",nodeId,openRoadmVersion);
+        LOG.info("Request received for node {} with version {} to change equipment-state of cp {}.",
+            nodeId,openRoadmVersion, circuitPackName);
         if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_1_2_1)) {
-            LOG.info("Device Version is 1.2.1");
             openRoadmInterfacesImpl121.postEquipmentState(nodeId, circuitPackName, activate);
         }
         else if (openRoadmVersion.equals(OPENROADM_DEVICE_VERSION_2_2_1)) {
index f4aec0ab25490402f0571fa27c531455c3bd78ae..b1e2a3387c4c9cba8236a89d52084cfceb0bee48 100755 (executable)
@@ -181,7 +181,6 @@ public class OpenRoadmInterfacesImpl221 {
 
     public void postEquipmentState(String nodeId, String circuitPackName, boolean activate)
         throws OpenRoadmInterfaceException {
-
         InstanceIdentifier<CircuitPacks> circuitPackIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(
             CircuitPacks.class, new CircuitPacksKey(circuitPackName));
         Optional<CircuitPacks> cpOpt = this.deviceTransactionManager.getDataFromDevice(nodeId,
@@ -197,12 +196,13 @@ public class OpenRoadmInterfacesImpl221 {
         CircuitPacksBuilder cpBldr = new CircuitPacksBuilder(cp);
         boolean change = false;
         if (activate) {
-            if (cpBldr.getEquipmentState() != null && !cpBldr.getEquipmentState().equals(States.NotReservedInuse)) {
+            if (cpBldr.getEquipmentState() != null && !cpBldr.getEquipmentState().getName()
+                .equals(States.NotReservedInuse)) {
                 cpBldr.setEquipmentState(States.NotReservedInuse);
                 change = true;
             }
-        } else if (
-            (cpBldr.getEquipmentState() != null && !cpBldr.getEquipmentState().equals(States.NotReservedAvailable))) {
+        } else if ((cpBldr.getEquipmentState() != null && !cpBldr.getEquipmentState().getName()
+            .equals(States.NotReservedAvailable))) {
             cpBldr.setEquipmentState(States.NotReservedAvailable);
             change = true;
         }
index 232b75518d6c74ad0f862d3f7c879cef03e6282d..a540f6e62c91bd95eb18fc0982e0054ca86aa710 100644 (file)
@@ -14,6 +14,7 @@ import java.util.List;
 import java.util.Optional;
 
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.common.Timeouts;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.transportpce.common.fixedflex.FixedFlexInterface;
@@ -98,6 +99,10 @@ public class OpenRoadmInterface221 {
 
         // Post interface on the device
         openRoadmInterfaces.postInterface(nodeId, ethInterfaceBldr);
+
+        // Post the equipment-state change on the device circuit-pack
+        openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true);
+
         return ethInterfaceBldr.getName();
     }
 
@@ -229,6 +234,12 @@ public class OpenRoadmInterface221 {
 
         // Post interface on the device
         openRoadmInterfaces.postInterface(nodeId, ochInterfaceBldr);
+
+        // Post the equipment-state change on the device circuit-pack if xpdr node
+        if (portMap.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) {
+            this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true);
+        }
+
         return ochInterfaceBldr.getName();
     }
 
index 78b72a22874dcc14682ffea4a6c0f7adde8b041e..2e0e3cb1e5438d9ca447ddc1235a127f1a43ea5e 100644 (file)
@@ -210,6 +210,7 @@ public class DeviceRendererServiceImpl implements DeviceRendererService {
             LOG.error("Error while setting up service paths!", e);
         }
         forkJoinPool.shutdown();
+
         if (success.get()) {
             results.add("Roadm-connection successfully created for nodes: " + String.join(", ", nodesProvisioned));
         }
@@ -454,15 +455,17 @@ public class DeviceRendererServiceImpl implements DeviceRendererService {
             throw e;
         }
         if (services.isPresent()) {
+            LOG.info("service {} already exists", name);
             servicesBuilder = new ServicesBuilder(services.get());
+            servicesBuilder.setTopology(topo);
+            WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
+            writeTx.merge(LogicalDatastoreType.OPERATIONAL, iid, servicesBuilder.build());
+            writeTx.submit().get(Timeouts.DATASTORE_WRITE, TimeUnit.MILLISECONDS);
         } else {
-            servicesBuilder = new ServicesBuilder();
-            servicesBuilder.withKey(serviceKey);
+            LOG.warn("Service {} does not exist - topology can not be updated", name);
+//            servicesBuilder = new ServicesBuilder();
+//            servicesBuilder.withKey(serviceKey);
         }
-        servicesBuilder.setTopology(topo);
-        WriteTransaction writeTx = this.dataBroker.newWriteOnlyTransaction();
-        writeTx.merge(LogicalDatastoreType.OPERATIONAL, iid, servicesBuilder.build());
-        writeTx.submit().get(Timeouts.DATASTORE_WRITE, TimeUnit.MILLISECONDS);
     }
 
     @Override