+
+ private List<String> getAssociatedClientsPort(List<String> xpdrNetworkTplist) {
+ List<String> clientPortList = new ArrayList<>();
+ for (String networkPort:xpdrNetworkTplist) {
+ String nodeId = String.join("-", networkPort.split("\\+")[0].split("-")[0],
+ networkPort.split("\\+")[0].split("-")[1]);
+ String tpId = networkPort.split("\\+")[1];
+ InstanceIdentifier<Mapping> mapIID = InstanceIdentifier.builder(Network.class)
+ .child(Nodes.class, new NodesKey(nodeId))
+ .child(Mapping.class, new MappingKey(tpId)).build();
+ try {
+ Optional<Mapping> optMapping = this.networkTransactionService.read(LogicalDatastoreType.CONFIGURATION,
+ mapIID).get();
+ if (!optMapping.isPresent()) {
+ LOG.error("Couldnt find mapping for port {} of node {}", tpId, nodeId);
+ }
+ Mapping mapping = optMapping.get();
+ LOG.info("Mapping for node+port {}+{} = {}", nodeId, tpId, mapping);
+ String key = String.join("+", String.join("-", nodeId, tpId.split("\\-")[0]),
+ mapping.getConnectionMapLcp());
+ LOG.info("Key to be added to list = {}", key);
+ if (!clientPortList.contains(key)) {
+ clientPortList.add(key);
+ }
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Couldnt read mapping from datastore", e);
+ return null;
+ }
+
+ }
+ return clientPortList;
+ }
+
+ private OpenroadmNodeType getOpenRoadmNodeType(List<String> xpdrNodelist) {
+ List<OpenroadmNodeType> openroadmNodeTypeList = new ArrayList<>();
+ for (String xpdrNode:xpdrNodelist) {
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+",xpdrNode, TapiStringConstants.DSR))
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ InstanceIdentifier<org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.topology.rev181210.topology.Node> nodeIID = InstanceIdentifier.builder(
+ Context.class).augmentation(org.opendaylight.yang.gen.v1.urn
+ .onf.otcc.yang.tapi.topology.rev181210.Context1.class).child(TopologyContext.class)
+ .child(Topology.class, new TopologyKey(this.tapiTopoUuid))
+ .child(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node.class,
+ new NodeKey(nodeUuid)).build();
+ try {
+ Optional<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node> optNode
+ = this.networkTransactionService.read(LogicalDatastoreType.OPERATIONAL, nodeIID).get();
+ if (!optNode.isPresent()) {
+ return null;
+ }
+ OpenroadmNodeType openroadmNodeType = OpenroadmNodeType.forName(optNode.get().getName().get(
+ new NameKey("Node Type")).getValue()).get();
+ if (!openroadmNodeTypeList.contains(openroadmNodeType)) {
+ openroadmNodeTypeList.add(openroadmNodeType);
+ }
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Couldnt read node in topology", e);
+ return null;
+ }
+ }
+ // TODO for now check that there is only one type, otherwise error
+ if (openroadmNodeTypeList.size() != 1) {
+ LOG.error("More than one xpdr type. List = {}", openroadmNodeTypeList);
+ return null;
+ }
+ return openroadmNodeTypeList.get(0);
+ }