From: Gilles Thouenon Date: Fri, 24 May 2019 08:49:23 +0000 (+0200) Subject: Fix bugs to make renderer functional tests running X-Git-Tag: 0.4.0~75 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=commitdiff_plain;h=b57a2e9b956430bb1ddca5cb838cca58b636af28 Fix bugs to make renderer functional tests running - 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 --- diff --git a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl.java b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl.java index 972f1d307..5dbcbad85 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl.java @@ -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)) { diff --git a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java index f4aec0ab2..b1e2a3387 100755 --- a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java @@ -181,7 +181,6 @@ public class OpenRoadmInterfacesImpl221 { public void postEquipmentState(String nodeId, String circuitPackName, boolean activate) throws OpenRoadmInterfaceException { - InstanceIdentifier circuitPackIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child( CircuitPacks.class, new CircuitPacksKey(circuitPackName)); Optional 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; } diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java index 232b75518..a540f6e62 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java @@ -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(); } diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java index 78b72a228..2e0e3cb1e 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java @@ -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