From: Madhu Venugopal Date: Mon, 10 Jun 2013 01:43:22 +0000 (-0700) Subject: Manual link addition feature assumes Long for Switch identifier and Short for Port... X-Git-Tag: releasepom-0.1.0~383^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=fc3400c869b2852a56f04c0fa2b3fbc972035665;ds=sidebyside Manual link addition feature assumes Long for Switch identifier and Short for Port identifier. This commit fixes that assumption. Change-Id: Ibffd2c1b8704465e928dd180832ad026ce749d48 Signed-off-by: Madhu Venugopal --- diff --git a/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java b/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java index d5b499c42b..872fb17129 100644 --- a/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java +++ b/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java @@ -33,14 +33,7 @@ import org.slf4j.LoggerFactory; @XmlAccessorType(XmlAccessType.NONE) public class TopologyUserLinkConfig implements Serializable { private static final long serialVersionUID = 1L; - private static final String regexDatapathID = "^([0-9a-fA-F]{1,2}[:-]){7}[0-9a-fA-F]{1,2}$"; - private static final String regexDatapathIDLong = "^[0-9a-fA-F]{1,16}$"; - private static final String guiFields[] = { GUIField.STATUS.toString(), - GUIField.NAME.toString(), GUIField.SRCNODE.toString(), - GUIField.SRCPORT.toString(), GUIField.DSTNODE.toString(), - GUIField.DSTPORT.toString() }; - private static final Logger logger = LoggerFactory - .getLogger(TopologyUserLinkConfig.class); + private static final Logger logger = LoggerFactory.getLogger(TopologyUserLinkConfig.class); public enum STATUS { SUCCESS("Success"), LINKDOWN("Link Down"), INCORRECT( @@ -73,76 +66,24 @@ public class TopologyUserLinkConfig implements Serializable { @XmlElement private String name; @XmlElement - private String srcNodeIDType; + private String srcNodeConnector; @XmlElement - private String srcSwitchId; - @XmlElement - private String srcNodeConnectorIDType; - @XmlElement - private String srcPort; - @XmlElement - private String dstNodeIDType; - @XmlElement - private String dstSwitchId; - @XmlElement - private String dstNodeConnectorIDType; - @XmlElement - private String dstPort; + private String dstNodeConnector; public TopologyUserLinkConfig() { super(); status = STATUS.LINKDOWN.toString(); } - public TopologyUserLinkConfig(String name, String srcNodeIDType, - String srcSwitchId, String srcNodeConnectorIDType, String srcPort, - String dstNodeIDType, String dstSwitchId, - String dstNodeConnectorIDType, String dstPort) { + public TopologyUserLinkConfig(String name, String srcNodeConnector, String dstNodeConnector) { super(); this.name = name; - this.srcNodeIDType = srcNodeIDType; - this.srcSwitchId = srcSwitchId; - this.dstNodeIDType = dstNodeIDType; - this.dstSwitchId = dstSwitchId; - this.srcNodeConnectorIDType = srcNodeConnectorIDType; - this.srcPort = srcPort; - this.dstNodeConnectorIDType = dstNodeConnectorIDType; - this.dstPort = dstPort; + this.srcNodeConnector = srcNodeConnector; + this.dstNodeConnector = dstNodeConnector; } - public String getSrcNodeIDType() { - return srcNodeIDType; - } - - public void setSrcNodeIDType(String srcNodeIDType) { - this.srcNodeIDType = srcNodeIDType; - } - - public String getSrcNodeConnectorIDType() { - return srcNodeConnectorIDType; - } - public void setSrcNodeConnectorIDType(String srcNodeConnectorIDType) { - this.srcNodeConnectorIDType = srcNodeConnectorIDType; - } - - public String getDstNodeIDType() { - return dstNodeIDType; - } - - public void setDstNodeIDType(String dstNodeIDType) { - this.dstNodeIDType = dstNodeIDType; - } - - public String getDstNodeConnectorIDType() { - return dstNodeConnectorIDType; - } - - public void setDstNodeConnectorIDType(String dstNodeConnectorIDType) { - this.dstNodeConnectorIDType = dstNodeConnectorIDType; - } - - public String getName() { + public String getName() { return name; } @@ -150,45 +91,6 @@ public class TopologyUserLinkConfig implements Serializable { this.name = name; } - public String getSrcSwitchId() { - return srcSwitchId; - } - - public long getSrcSwitchIDLong() { - return getSwitchIDLong(srcSwitchId); - } - - public void setSrcSwitchId(String srcSwitchId) { - this.srcSwitchId = srcSwitchId; - } - - public String getDstSwitchId() { - return dstSwitchId; - } - - public long getDstSwitchIDLong() { - return getSwitchIDLong(dstSwitchId); - } - - public void setDstSwitchId(String dstSwitchId) { - this.dstSwitchId = dstSwitchId; - } - - public String getSrcPort() { - return srcPort; - } - - public void setSrcPort(String srcPort) { - this.srcPort = srcPort; - } - - public String getDstPort() { - return dstPort; - } - - public void setDstPort(String dstPort) { - this.dstPort = dstPort; - } public STATUS getStatus() { return STATUS.fromString(status); @@ -198,126 +100,54 @@ public class TopologyUserLinkConfig implements Serializable { this.status = s.toString(); } - private boolean isValidSwitchId(String switchId) { - return (switchId != null && (switchId.matches(regexDatapathID) || switchId - .matches(regexDatapathIDLong))); + public String getSrcNodeConnector() { + return srcNodeConnector; } - private boolean isValidSwitchId(String switchId, String typeStr) { - if (typeStr.equals(NodeIDType.OPENFLOW)) { - return isValidSwitchId(switchId); - } else if (typeStr.equals(NodeIDType.ONEPK) || - typeStr.equals(NodeIDType.PCEP) || - typeStr.equals(NodeIDType.PRODUCTION)) { - return true; - } else { - logger.warn("Invalid node id type {}", typeStr); - return false; - } + public void setSrcNodeConnector(String srcNodeConnector) { + this.srcNodeConnector = srcNodeConnector; } - private boolean isValidPortId(String portId, String nodeConnectorType) { - if (NodeConnectorIDType.getClassType(nodeConnectorType) == null) { - logger.warn("Invalid node connector id type {}", nodeConnectorType); - return false; - } - - return true; - } - - private long getSwitchIDLong(String switchId) { - int radix = 16; - String switchString = "0"; - - if (isValidSwitchId(switchId)) { - if (switchId.contains(":")) { - // Handle the 00:00:AA:BB:CC:DD:EE:FF notation - switchString = switchId.replace(":", ""); - } else if (switchId.contains("-")) { - // Handle the 00-00-AA-BB-CC-DD-EE-FF notation - switchString = switchId.replace("-", ""); - } else { - // Handle the 0123456789ABCDEF notation - switchString = switchId; - } - } - return Long.parseLong(switchString, radix); + public String getDstNodeConnector() { + return dstNodeConnector; } - public boolean isValid() { - if (name == null || srcSwitchId == null || dstSwitchId == null - || srcPort == null || dstPort == null || srcNodeIDType == null - || dstNodeIDType == null || srcNodeConnectorIDType == null - || dstNodeConnectorIDType == null) { - return false; - } - - if (!isValidSwitchId(srcSwitchId, srcNodeIDType) || - !isValidSwitchId(dstSwitchId, dstNodeIDType)) { - logger.warn("Invalid switch id"); - return false; - } - - if (!isValidPortId(srcPort, srcNodeConnectorIDType) || - !isValidPortId(dstPort, dstNodeConnectorIDType)) { - logger.warn("Invalid port id"); - return false; - } - - return true; + public void setDstNodeConnector(String dstNodeConnector) { + this.dstNodeConnector = dstNodeConnector; } - public boolean isSrcPortByName() { - try { - Short.parseShort(srcPort); - } catch (Exception e) { - return true; - } - return false; + public boolean isValidNodeConnector(String nodeConnectorStr) { + NodeConnector nc = NodeConnector.fromString(nodeConnectorStr); + if (nc == null) return false; + return true; } - public boolean isDstPortByName() { - try { - Short.parseShort(dstPort); - } catch (Exception e) { - return true; + public boolean isValid() { + if (name == null || srcNodeConnector == null || dstNodeConnector == null) { + return false; } - return false; - } - public static List getGuiFieldsNames() { - List fieldList = new ArrayList(); - for (String str : guiFields) { - fieldList.add(str); + if (!isValidNodeConnector(srcNodeConnector) || + !isValidNodeConnector(dstNodeConnector)) { + logger.warn("Invalid NodeConnector"); + return false; } - return fieldList; - } - @Override - public String toString() { - return "ITopologyUserLinkConfig [status=" + status + ", name=" + name - + ", srcNodeIDType=" + srcNodeIDType + ", srcSwitchId=" - + srcSwitchId + ", srcNodeConnectorIDType=" - + srcNodeConnectorIDType + ", srcPort=" + srcPort - + ", dstNodeIDType=" + dstNodeIDType + ", dstId=" - + dstSwitchId + ", dstNodeConnectorIDType=" - + dstNodeConnectorIDType + ", dstPort=" + dstPort + "]"; + return true; } @Override public int hashCode() { - return HashCodeBuilder.reflectionHashCode(this); - } - - public boolean equals(Long srcNid, String srcPortName, Long dstNid, - String dstPortName) { - if (srcNid.equals(getSrcSwitchIDLong()) - && dstNid.equals(getDstSwitchIDLong()) - && srcPortName.equals(getSrcPort()) - && dstPortName.equals(getDstPort())) { - return true; - } - return false; + final int prime = 31; + int result = 1; + result = prime + * result + + ((dstNodeConnector == null) ? 0 : dstNodeConnector.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime + * result + + ((srcNodeConnector == null) ? 0 : srcNodeConnector.hashCode()); + return result; } @Override @@ -329,26 +159,23 @@ public class TopologyUserLinkConfig implements Serializable { if (getClass() != obj.getClass()) return false; TopologyUserLinkConfig other = (TopologyUserLinkConfig) obj; - if (dstPort == null) { - if (other.dstPort != null) + if (dstNodeConnector == null) { + if (other.dstNodeConnector != null) return false; - } else if (!dstPort.equals(other.dstPort)) + } else if (!dstNodeConnector.equals(other.dstNodeConnector)) return false; - if (dstSwitchId == null) { - if (other.dstSwitchId != null) + if (srcNodeConnector == null) { + if (other.srcNodeConnector != null) return false; - } else if (!dstSwitchId.equals(other.dstSwitchId)) - return false; - if (srcPort == null) { - if (other.srcPort != null) - return false; - } else if (!srcPort.equals(other.srcPort)) - return false; - if (srcSwitchId == null) { - if (other.srcSwitchId != null) - return false; - } else if (!srcSwitchId.equals(other.srcSwitchId)) + } else if (!srcNodeConnector.equals(other.srcNodeConnector)) return false; return true; } -} + + @Override + public String toString() { + return "TopologyUserLinkConfig [status=" + status + ", name=" + name + + ", srcNodeConnector=" + srcNodeConnector + + ", dstNodeConnector=" + dstNodeConnector + "]"; + } +} \ No newline at end of file diff --git a/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java b/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java index 8c39098a5e..277465813b 100644 --- a/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java +++ b/opendaylight/topologymanager/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java @@ -66,8 +66,8 @@ import org.slf4j.LoggerFactory; * topology database and notifies all the listeners of topology changes. */ public class TopologyManagerImpl implements ITopologyManager, - IConfigurationContainerAware, IListenTopoUpdates, IObjectReader, - CommandProvider { +IConfigurationContainerAware, IListenTopoUpdates, IObjectReader, +CommandProvider { private static final Logger log = LoggerFactory .getLogger(TopologyManagerImpl.class); private ITopologyService topoService = null; @@ -232,7 +232,7 @@ public class TopologyManagerImpl implements ITopologyManager, this.clusterContainerService.destroyCache("topologymanager.hostsDB"); this.hostsDB = null; this.clusterContainerService - .destroyCache("topologymanager.nodeConnectorDB"); + .destroyCache("topologymanager.nodeConnectorDB"); this.nodeConnectorsDB = null; log.debug("Topology Manager DB Deallocated"); } @@ -596,82 +596,21 @@ public class TopologyManagerImpl implements ITopologyManager, private Edge getReverseLinkTuple(TopologyUserLinkConfig link) { TopologyUserLinkConfig rLink = new TopologyUserLinkConfig( - link.getName(), link.getDstNodeIDType(), link.getDstSwitchId(), - link.getDstNodeConnectorIDType(), link.getDstPort(), - link.getSrcNodeIDType(), link.getSrcSwitchId(), - link.getSrcNodeConnectorIDType(), link.getSrcPort()); + link.getName(), link.getDstNodeConnector(), link.getSrcNodeConnector()); return getLinkTuple(rLink); } + private Edge getLinkTuple(TopologyUserLinkConfig link) { Edge linkTuple = null; - - // if atleast 1 link exists for the srcPort and atleast 1 link exists - // for the dstPort - // that makes it ineligible for the Manual link addition - // This is just an extra protection to avoid mis-programming. - boolean srcLinkExists = false; - boolean dstLinkExists = false; - // TODO check a way to validate the port with inventory services - // if (srcSw.getPorts().contains(srcPort) && - // dstSw.getPorts().contains(srcPort) && - if (!srcLinkExists && !dstLinkExists) { - Node sNode = null; - Node dNode = null; - NodeConnector sPort = null; - NodeConnector dPort = null; - linkTuple = null; - String srcNodeIDType = link.getSrcNodeIDType(); - String srcNodeConnectorIDType = link.getSrcNodeConnectorIDType(); - String dstNodeIDType = link.getDstNodeIDType(); - String dstNodeConnectorIDType = link.getDstNodeConnectorIDType(); - try { - if (srcNodeIDType.equals(NodeIDType.OPENFLOW)) { - sNode = new Node(srcNodeIDType, link.getSrcSwitchIDLong()); - } else { - sNode = new Node(srcNodeIDType, link.getSrcSwitchId()); - } - - if (dstNodeIDType.equals(NodeIDType.OPENFLOW)) { - dNode = new Node(dstNodeIDType, link.getDstSwitchIDLong()); - } else { - dNode = new Node(dstNodeIDType, link.getDstSwitchId()); - } - - if (srcNodeConnectorIDType.equals(NodeConnectorIDType.OPENFLOW)) { - Short srcPort = Short.valueOf((short) 0); - if (!link.isSrcPortByName()) { - srcPort = Short.parseShort(link.getSrcPort()); - } - sPort = new NodeConnector(srcNodeConnectorIDType, srcPort, - sNode); - } else { - sPort = new NodeConnector(srcNodeConnectorIDType, - link.getSrcPort(), sNode); - } - - if (dstNodeConnectorIDType.equals(NodeConnectorIDType.OPENFLOW)) { - Short dstPort = Short.valueOf((short) 0); - if (!link.isDstPortByName()) { - dstPort = Short.parseShort(link.getDstPort()); - } - dPort = new NodeConnector(dstNodeConnectorIDType, dstPort, - dNode); - } else { - dPort = new NodeConnector(dstNodeConnectorIDType, - link.getDstPort(), dNode); - } - linkTuple = new Edge(sPort, dPort); - } catch (ConstructionException cex) { - log.warn("Caught exception ", cex); - } - return linkTuple; - } - - if (srcLinkExists && dstLinkExists) { - link.setStatus(TopologyUserLinkConfig.STATUS.INCORRECT); + NodeConnector srcNodeConnector = NodeConnector.fromString(link.getSrcNodeConnector()); + NodeConnector dstNodeConnector = NodeConnector.fromString(link.getDstNodeConnector()); + if (srcNodeConnector == null || dstNodeConnector == null) return null; + try { + linkTuple = new Edge(srcNodeConnector, dstNodeConnector); + } catch (Exception e) { } - return null; + return linkTuple; } @Override @@ -795,19 +734,7 @@ public class TopologyManagerImpl implements ITopologyManager, return; } - String nodeType1 = nc1.getNode().getType().toString(); - String nid1 = nc1.getNode().getID().toString(); - String ncType1 = nc1.getType().toString(); - String ncid1 = nc1.getID().toString(); - - String nodeType2 = nc2.getNode().getType().toString(); - String nid2 = nc2.getNode().getID().toString(); - String ncType2 = nc2.getType().toString(); - String ncid2 = nc2.getID().toString(); - - TopologyUserLinkConfig config = new TopologyUserLinkConfig(name, - nodeType1, nid1, ncType1, ncid1, nodeType2, nid2, ncType2, - ncid2); + TopologyUserLinkConfig config = new TopologyUserLinkConfig(name, ncStr1, ncStr2); ci.println(this.addUserLink(config)); } diff --git a/opendaylight/topologymanager/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java b/opendaylight/topologymanager/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java index c176cb2cf3..b4dfba9277 100644 --- a/opendaylight/topologymanager/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java +++ b/opendaylight/topologymanager/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java @@ -116,19 +116,19 @@ public class TopologyManagerImplTest { .equals(nodeId + 10)) || (headNcId.equals(nodeId + 10) && tailNcId .equals(nodeId)) - || (headNcId.equals(nodeId + 1) && tailNcId - .equals(nodeId + 11)) - || (headNcId.equals(nodeId + 11) && tailNcId - .equals(nodeId + 1))); + || (headNcId.equals(nodeId + 1) && tailNcId + .equals(nodeId + 11)) + || (headNcId.equals(nodeId + 11) && tailNcId + .equals(nodeId + 1))); } else if (nodeId == 11 || nodeId == 13 || nodeId == 15) { Assert.assertTrue((headNcId.equals(nodeId) && tailNcId .equals(nodeId - 10)) || (headNcId.equals(nodeId) && tailNcId .equals(nodeId - 10)) - || (headNcId.equals(nodeId - 9) && tailNcId - .equals(nodeId + 1)) - || (headNcId.equals(nodeId + 1) && tailNcId - .equals(nodeId - 9))); + || (headNcId.equals(nodeId - 9) && tailNcId + .equals(nodeId + 1)) + || (headNcId.equals(nodeId + 1) && tailNcId + .equals(nodeId - 9))); } } i.remove(); @@ -160,19 +160,19 @@ public class TopologyManagerImplTest { .equals(headNodeId + 10)) || (headNcId.equals(headNodeId + 10) && tailNcId .equals(headNodeId)) - || (headNcId.equals(headNodeId + 1) && tailNcId - .equals(headNodeId + 11)) - || (headNcId.equals(headNodeId + 11) && tailNcId - .equals(headNodeId + 1))); + || (headNcId.equals(headNodeId + 1) && tailNcId + .equals(headNodeId + 11)) + || (headNcId.equals(headNodeId + 11) && tailNcId + .equals(headNodeId + 1))); } else if (headNodeId == 11 || headNodeId == 13 || headNodeId == 15) { Assert.assertTrue((headNcId.equals(headNodeId) && tailNcId .equals(headNodeId - 10)) || (headNcId.equals(headNodeId) && tailNcId .equals(headNodeId - 10)) - || (headNcId.equals(headNodeId - 9) && tailNcId - .equals(headNodeId + 1)) - || (headNcId.equals(headNodeId + 1) && tailNcId - .equals(headNodeId - 9))); + || (headNcId.equals(headNodeId - 9) && tailNcId + .equals(headNodeId + 1)) + || (headNcId.equals(headNodeId + 1) && tailNcId + .equals(headNodeId - 9))); } Set prop = entry.getValue(); @@ -212,13 +212,13 @@ public class TopologyManagerImplTest { @Test public void testAddDeleteUserLink() { TopologyUserLinkConfig link1 = new TopologyUserLinkConfig("default1", - "OF", "1", "OF", "2", "OF", "1", "OF", "2"); + "OF|1@OF|2", "OF|1@OF|2"); TopologyUserLinkConfig link2 = new TopologyUserLinkConfig("default1", - "OF", "10", "OF", "20", "OF", "10", "OF", "20"); + "OF|10@OF|20", "OF|10@OF|20"); TopologyUserLinkConfig link3 = new TopologyUserLinkConfig("default2", - "OF", "1", "OF", "2", "OF", "1", "OF", "2"); + "OF|1@OF|2", "OF|1@OF|2"); TopologyUserLinkConfig link4 = new TopologyUserLinkConfig("default20", - "OF", "10", "OF", "20", "OF", "10", "OF", "20"); + "OF|10@OF|20", "OF|10@OF|20"); TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); topoManagerImpl.nonClusterObjectCreate(); @@ -244,40 +244,34 @@ public class TopologyManagerImplTest { TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); topoManagerImpl.nonClusterObjectCreate(); - String name = null; - String srcNodeIDType = null; + String name = "Test"; String srcSwitchId = null; String srcNodeConnectorIDType = null; String srcPort = null; + String srcNodeIDType = null; String dstNodeIDType = null; String dstSwitchId = null; String dstNodeConnectorIDType = null; String dstPort = null; + String srcNodeConnector = null; + String dstNodeConnector = null; /* Creating userlinks and checking for their validity */ - link[0] = new TopologyUserLinkConfig(name, srcNodeIDType, srcSwitchId, - srcNodeConnectorIDType, srcPort, dstNodeIDType, dstSwitchId, - dstNodeConnectorIDType, dstPort); + link[0] = new TopologyUserLinkConfig(name, srcNodeConnector, dstNodeConnector); Assert.assertTrue(link[0].isValid() == false); - srcSwitchId = "1"; - link[0] = new TopologyUserLinkConfig(name, srcNodeIDType, srcSwitchId, - srcNodeConnectorIDType, srcPort, dstNodeIDType, dstSwitchId, - dstNodeConnectorIDType, dstPort); + srcNodeConnector = "OF|1@OF|1"; + link[0] = new TopologyUserLinkConfig(name, srcNodeConnector, dstNodeConnector); Assert.assertTrue(link[0].isValid() == false); - dstSwitchId = "2"; - link[0] = new TopologyUserLinkConfig(name, srcNodeIDType, srcSwitchId, - srcNodeConnectorIDType, srcPort, dstNodeIDType, dstSwitchId, - dstNodeConnectorIDType, dstPort); - Assert.assertTrue(link[0].isValid() == false); + dstNodeConnector = "OF|1@OF|2"; + link[0] = new TopologyUserLinkConfig(name, srcNodeConnector, dstNodeConnector); + Assert.assertTrue(link[0].isValid() == true); Integer i; for (i = 0; i < 5; i++) { - link[i] = new TopologyUserLinkConfig(name, srcNodeIDType, - srcSwitchId, srcNodeConnectorIDType, srcPort, - dstNodeIDType, dstSwitchId, dstNodeConnectorIDType, dstPort); + link[i] = new TopologyUserLinkConfig(); name = Integer.toString(i + 1); srcSwitchId = Integer.toString(i + 1); @@ -286,29 +280,27 @@ public class TopologyManagerImplTest { dstPort = Integer.toString((i + 1) * 10); link[i].setName(name); - link[i].setSrcSwitchId(srcSwitchId); - link[i].setSrcPort(srcPort); - link[i].setDstSwitchId(dstSwitchId); - link[i].setDstPort(dstPort); + srcNodeConnectorIDType = dstNodeConnectorIDType = "INCORRECT"; + srcNodeConnector = srcNodeConnectorIDType+"|"+srcSwitchId+"@"+srcNodeConnectorIDType+"|"+srcPort; + dstNodeConnector = dstNodeConnectorIDType+"|"+dstSwitchId+"@"+dstNodeConnectorIDType+"|"+dstPort; + link[i].setSrcNodeConnector(srcNodeConnector); Assert.assertTrue(link[i].isValid() == false); - link[i].setSrcNodeIDType("OF"); - link[i].setSrcNodeConnectorIDType("OF"); - + srcNodeConnectorIDType = "OF"; + srcNodeConnector = srcNodeConnectorIDType+"|"+srcSwitchId+"@"+srcNodeConnectorIDType+"|"+srcPort; + link[i].setSrcNodeConnector(srcNodeConnector); Assert.assertTrue(link[i].isValid() == false); - link[i].setDstNodeIDType("OF"); - link[i].setDstNodeConnectorIDType("OF"); - + dstNodeConnectorIDType = "OF"; + dstNodeConnector = dstNodeConnectorIDType+"|"+dstSwitchId+"@"+dstNodeConnectorIDType+"|"+dstPort; + link[i].setDstNodeConnector(dstNodeConnector); Assert.assertTrue(link[i].isValid() == true); - reverseLink[i] = new TopologyUserLinkConfig(name, dstNodeIDType, - dstSwitchId, dstNodeConnectorIDType, dstPort, - srcNodeIDType, srcSwitchId, srcNodeConnectorIDType, srcPort); - + reverseLink[i] = new TopologyUserLinkConfig(name, dstNodeConnector, srcNodeConnector); topoManagerImpl.addUserLink(link[i]); } + ConcurrentMap userLinks = topoManagerImpl .getUserLinks(); TopologyUserLinkConfig resultLink; @@ -318,20 +310,16 @@ public class TopologyManagerImplTest { Assert.assertTrue(resultLink.getName().equals( reverseLink[i].getName())); - Assert.assertTrue(resultLink.getDstSwitchId().equals( - reverseLink[i].getSrcSwitchId())); - Assert.assertTrue(resultLink.getDstPort().equals( - reverseLink[i].getSrcPort())); - Assert.assertTrue(resultLink.getSrcSwitchId().equals( - reverseLink[i].getDstSwitchId())); - Assert.assertTrue(resultLink.getSrcPort().equals( - reverseLink[i].getDstPort())); + Assert.assertTrue(resultLink.getDstNodeConnector().equals( + reverseLink[i].getSrcNodeConnector())); + Assert.assertTrue(resultLink.getSrcNodeConnector().equals( + reverseLink[i].getDstNodeConnector())); } } @Test public void testHostLinkMethods() throws ConstructionException, - UnknownHostException { + UnknownHostException { TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); topoManagerImpl.nonClusterObjectCreate(); int hostCounter = 0; @@ -372,7 +360,7 @@ public class TopologyManagerImplTest { nc[i] = NodeConnectorCreator.createOFNodeConnector((short) (i + 1), NodeCreator.createOFNode((long) (i + 1))); topoManagerImpl - .updateHostLink(nc[i], h[i], UpdateType.ADDED, props); + .updateHostLink(nc[i], h[i], UpdateType.ADDED, props); } for (int i = 0; i < 5; i++) {