diff --git a/apps/circuitpusher/circuitpusher.py b/apps/circuitpusher/circuitpusher.py index 6c1af0e83a1dfdb4def897e2295051f606d296eb..344ecd96029ab9494d9672257affa358c58519d6 100755 --- a/apps/circuitpusher/circuitpusher.py +++ b/apps/circuitpusher/circuitpusher.py @@ -94,14 +94,26 @@ if args.action=='add': result = os.popen(command).read() parsedResult = json.loads(result) print command+"\n" - sourceSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID'] + + try: + sourceSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID'] + except IndexError: + print "ERROR : the specified end point (%s) must already been known to the controller (i.e., already have sent packets on the network, easy way to assure this is to do a ping (to any target) from the two hosts." % (args.srcAddress) + sys.exit() + sourcePort = parsedResult[0]['attachmentPoint'][0]['port'] command = "curl -s http://%s/wm/device/?ipv4=%s" % (args.controllerRestIp, args.dstAddress) result = os.popen(command).read() parsedResult = json.loads(result) print command+"\n" - destSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID'] + + try: + destSwitch = parsedResult[0]['attachmentPoint'][0]['switchDPID'] + except IndexError: + print "ERROR : the specified end point (%s) must already been known to the controller (i.e., already have sent packets on the network, easy way to assure this is to do a ping (to any target) from the two hosts." % (args.dstAddress) + sys.exit() + destPort = parsedResult[0]['attachmentPoint'][0]['port'] print "Creating circuit:" diff --git a/src/main/java/net/floodlightcontroller/topology/Cluster.java b/src/main/java/net/floodlightcontroller/topology/Cluster.java index eb1489fb1a99a5c1b6efcacb8c8f74f885cd4616..e4ea23b8c97673f1d764b58211dd54f71f07b77c 100644 --- a/src/main/java/net/floodlightcontroller/topology/Cluster.java +++ b/src/main/java/net/floodlightcontroller/topology/Cluster.java @@ -58,16 +58,10 @@ public class Cluster { } void addLink(Link l) { - if (links.containsKey(l.getSrc()) == false) { - links.put(l.getSrc(), new HashSet<Link>()); - if (l.getSrc() < id) id = l.getSrc(); - } + add(l.getSrc()); links.get(l.getSrc()).add(l); - if (links.containsKey(l.getDst()) == false) { - links.put(l.getDst(), new HashSet<Link>()); - if (l.getDst() < id) id = l.getDst(); - } + add(l.getDst()); links.get(l.getDst()).add(l); } diff --git a/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java b/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java index fcdfb6fafc76e25a3f29154828b2072cd8449a03..09278ae2c76ae9182858cd7f3bc7afd8e4f9ebe2 100644 --- a/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java +++ b/src/main/java/org/sdnplatform/sync/internal/config/FallbackCCProvider.java @@ -25,6 +25,7 @@ public class FallbackCCProvider implements IClusterConfigProvider { AuthScheme authScheme; String keyStorePath; String keyStorePassword; + int syncPort = 6642; public FallbackCCProvider() throws SyncException { @@ -43,7 +44,7 @@ public class FallbackCCProvider implements IClusterConfigProvider { } return new ClusterConfig(Collections. singletonList(new Node("localhost", - 6642, + syncPort, Short.MAX_VALUE, Short.MAX_VALUE)), Short.MAX_VALUE, @@ -61,6 +62,7 @@ public class FallbackCCProvider implements IClusterConfigProvider { authScheme = AuthScheme.NO_AUTH; try { authScheme = AuthScheme.valueOf(config.get("authScheme")); + syncPort = Integer.parseInt(config.get("port")); } catch (Exception e) {} } }