X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FMappingUtilsImpl.java;fp=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fmapping%2FMappingUtilsImpl.java;h=3e2d055f3c6e904ac1c1ae04f7d9e84f67239818;hb=b61c699f055fdf780aaf0b4b0d1fc82074099f96;hp=0000000000000000000000000000000000000000;hpb=abbca95c8944ec742d71bd87d2363c9c00c41844;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java new file mode 100644 index 000000000..3e2d055f3 --- /dev/null +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java @@ -0,0 +1,63 @@ +/* + * Copyright © 2017 AT&T and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.transportpce.common.mapping; + +import java.util.Optional; +import java.util.concurrent.ExecutionException; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.Network; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesKey; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MappingUtilsImpl implements MappingUtils { + + private static final Logger LOG = LoggerFactory.getLogger(MappingUtilsImpl.class); + + private final DataBroker dataBroker; + + public MappingUtilsImpl(DataBroker dataBroker) { + + this.dataBroker = dataBroker; + + } + + public String getOpenRoadmVersion(String nodeId) { + /* + * Getting physical mapping corresponding to logical connection point + */ + InstanceIdentifier portMappingIID = InstanceIdentifier.builder(Network.class).child(Nodes.class, + new NodesKey(nodeId)).build(); + try (ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction()) { + Optional mapObject = + readTx.read(LogicalDatastoreType.CONFIGURATION, portMappingIID).get().toJavaUtil(); + if (mapObject.isPresent()) { + Nodes mapping = mapObject.get(); + switch (mapping.getOpenroadmVersion()) { + case _22: + return StringConstants.OPENROADM_DEVICE_VERSION_2_2; + case _121: + return StringConstants.OPENROADM_DEVICE_VERSION_1_2_1; + default: + return StringConstants.OPENROADM_DEVICE_VERSION_1_2_1; + } + } else { + LOG.warn("Could not find mapping for nodeId {}", + nodeId); + } + } catch (InterruptedException | ExecutionException ex) { + LOG.error("Unable to read mapping for nodeId {}",nodeId, ex); + } + return null; + } +}