add external file dependancies to the git repository
diff --git a/TestON/dependancies/pyintents.py b/TestON/dependancies/pyintents.py
new file mode 100755
index 0000000..b593845
--- /dev/null
+++ b/TestON/dependancies/pyintents.py
@@ -0,0 +1,46 @@
+#! /usr/bin/env python
+'''
+This file creates the ONOS intents for the sanity 4 nodes tests. These intents will be translated into flows by ONOS and pushed to the switches.
+'''
+
+import json
+import requests
+
+url = 'http://127.0.0.1:8080/wm/onos/datagrid/add/intents/json'
+headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
+
+
+'''response
+[{'intent_id':'5','status':'CREATED','log':['created, time:73268214932534']}]
+'''
+
+
+
+for i in range(6,16):
+ #intent = [{'intent_id': '%d' %i,'intent_type':'shortest_intent_type','intent_op':'add','srcSwitch':'8249','srcPort':1,'srcMac':'00:00:00:00:00:01','dstSwitch':'4103','dstPort':1,'dstMac':'00:00:00:00:00:02'}]
+ srcMac = '00:00:00:00:00:'+ str(hex(i)[2:]).zfill(2)
+ dstMac = '00:00:00:00:00:'+ str(hex(i+10)[2:])
+ srcSwitch = '00:00:00:00:00:00:10:'+ str(i).zfill(2)
+ dstSwitch = '00:00:00:00:00:00:20:'+ str(i+25)
+ srcPort = 1
+ dstPort = 1
+
+ intent = [{'intent_id': '%d' %(i),'intent_type':'shortest_intent_type','intent_op':'add','srcSwitch':srcSwitch,'srcPort':srcPort,'srcMac':srcMac,'dstSwitch':dstSwitch,'dstPort':dstPort,'dstMac':dstMac}]
+
+
+ print json.dumps(intent, sort_keys = True)
+
+
+ #r = requests.post(url, data=json.dumps(iid, sort_keys=True)+json.dumps(intent, sort_keys=True), headers = headers)
+ r = requests.post(url, data=json.dumps(intent, sort_keys=True), headers = headers)
+ print r
+ print r.content
+
+
+
+ intent = [{'intent_id': '%d' %(i+10),'intent_type':'shortest_intent_type','intent_op':'add','srcSwitch':dstSwitch,'srcPort':dstPort,'srcMac':dstMac,'dstSwitch':srcSwitch,'dstPort':srcPort,'dstMac':srcMac}]
+ print json.dumps(intent, sort_keys = True)
+ r = requests.post(url, data=json.dumps(intent, sort_keys=True), headers = headers)
+ print r
+ print r.content
+
diff --git a/TestON/dependancies/rmpyintents.py b/TestON/dependancies/rmpyintents.py
new file mode 100755
index 0000000..10bb5d4
--- /dev/null
+++ b/TestON/dependancies/rmpyintents.py
@@ -0,0 +1,49 @@
+#! /usr/bin/env python
+
+'''
+This file removes the ONOS intents for the sanity 4 nodes tests. The flows associated with these intents should be deleted from the switches.
+'''
+
+import json
+import requests
+
+
+
+url = 'http://127.0.0.1:8080/wm/onos/datagrid/add/intents/json'
+headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
+
+
+'''response
+[{'intent_id':'5','status':'CREATED','log':['created, time:73268214932534']}]
+'''
+
+
+
+for i in range(6,16):
+ #intent = [{'intent_id': '%d' %i,'intent_type':'shortest_intent_type','intent_op':'remove','srcSwitch':'8249','srcPort':1,'srcMac':'00:00:00:00:00:01','dstSwitch':'4103','dstPort':1,'dstMac':'00:00:00:00:00:02'}]
+ srcMac = '00:00:00:00:00:'+ str(hex(i)[2:]).zfill(2)
+ dstMac = '00:00:00:00:00:'+ str(hex(i+10)[2:])
+ srcSwitch = '00:00:00:00:00:00:10:'+ str(i).zfill(2)
+ dstSwitch = '00:00:00:00:00:00:20:'+ str(i+25)
+ srcPort = 1
+ dstPort = 1
+
+ intent = [{'intent_id': '%d' %(i),'intent_type':'shortest_intent_type','intent_op':'remove','srcSwitch':srcSwitch,'srcPort':srcPort,'srcMac':srcMac,'dstSwitch':dstSwitch,'dstPort':dstPort,'dstMac':dstMac}]
+
+
+ print json.dumps(intent, sort_keys = True)
+
+
+ #r = requests.post(url, data=json.dumps(iid, sort_keys=True)+json.dumps(intent, sort_keys=True), headers = headers)
+ r = requests.post(url, data=json.dumps(intent, sort_keys=True), headers = headers)
+ print r
+ print r.content
+
+
+
+ intent = [{'intent_id': '%d' %(i+10),'intent_type':'shortest_intent_type','intent_op':'remove','srcSwitch':dstSwitch,'srcPort':dstPort,'srcMac':dstMac,'dstSwitch':srcSwitch,'dstPort':srcPort,'dstMac':srcMac}]
+ print json.dumps(intent, sort_keys = True)
+ r = requests.post(url, data=json.dumps(intent, sort_keys=True), headers = headers)
+ print r
+ print r.content
+
diff --git a/TestON/dependancies/topo-onos4node.py b/TestON/dependancies/topo-onos4node.py
new file mode 100644
index 0000000..4fc036c
--- /dev/null
+++ b/TestON/dependancies/topo-onos4node.py
@@ -0,0 +1,63 @@
+"""Custom topology example
+
+Two directly connected switches plus a host for each switch:
+
+ host --- switch --- switch --- host
+
+Adding the 'topos' dict with a key/value pair to generate our newly defined
+topology enables one to pass in '--topo=mytopo' from the command line.
+"""
+
+from mininet.topo import Topo
+
+class MyTopo( Topo ):
+ "Simple topology example."
+
+ def __init__( self ):
+ "Create custom topo."
+ # Initialize topology
+ Topo.__init__( self )
+
+ # Make the middle triangle
+ leftSwitch = self.addSwitch( 's1' , dpid = '1000'.zfill(16))
+ rightSwitch = self.addSwitch( 's2' , dpid = '2000'.zfill(16))
+ topSwitch = self.addSwitch( 's3' , dpid = '3000'.zfill(16))
+ lefthost = self.addHost( 'h1' )
+ righthost = self.addHost( 'h2' )
+ tophost = self.addHost( 'h3' )
+ self.addLink( leftSwitch, lefthost )
+ self.addLink( rightSwitch, righthost )
+ self.addLink( topSwitch, tophost )
+
+ self.addLink( leftSwitch, rightSwitch )
+ self.addLink( leftSwitch, topSwitch )
+ self.addLink( topSwitch, rightSwitch )
+
+ # Make aggregation switches
+ agg1Switch = self.addSwitch( 's4', dpid = '1004'.zfill(16) )
+ agg2Switch = self.addSwitch( 's5', dpid = '2005'.zfill(16) )
+ agg1Host = self.addHost( 'h4' )
+ agg2Host = self.addHost( 'h5' )
+
+ self.addLink( agg1Switch, agg1Host, port1=1, port2=1 )
+ self.addLink( agg2Switch, agg2Host, port1=1, port2=1 )
+
+ self.addLink( agg2Switch, rightSwitch )
+ self.addLink( agg1Switch, leftSwitch )
+
+ # Make two aggregation fans
+ for i in range(10):
+ num=str(i+6)
+ switch = self.addSwitch( 's' + num, dpid = ('10' + num.zfill(2) ).zfill(16))
+ host = self.addHost( 'h' + num )
+ self.addLink( switch, host, port1=1, port2=1 )
+ self.addLink( switch, agg1Switch )
+
+ for i in range(10):
+ num=str(i+31)
+ switch = self.addSwitch( 's' + num, dpid = ('20' + num.zfill(2)).zfill(16) )
+ host = self.addHost( 'h' + num )
+ self.addLink( switch, host, port1=1, port2=1 )
+ self.addLink( switch, agg2Switch )
+
+topos = { 'mytopo': ( lambda: MyTopo() ) }
diff --git a/TestON/dependancies/topo-onos4node.py.old b/TestON/dependancies/topo-onos4node.py.old
new file mode 100644
index 0000000..3328a5d
--- /dev/null
+++ b/TestON/dependancies/topo-onos4node.py.old
@@ -0,0 +1,61 @@
+"""Custom topology example
+
+Two directly connected switches plus a host for each switch:
+
+ host --- switch --- switch --- host
+
+Adding the 'topos' dict with a key/value pair to generate our newly defined
+topology enables one to pass in '--topo=mytopo' from the command line.
+"""
+
+from mininet.topo import Topo
+
+class MyTopo( Topo ):
+ "Simple topology example."
+
+ def __init__( self ):
+ "Create custom topo."
+ # Initialize topology
+ Topo.__init__( self )
+
+ # Make the middle triangle
+ leftSwitch = self.addSwitch( 's1' )
+ rightSwitch = self.addSwitch( 's2' )
+ topSwitch = self.addSwitch( 's3' )
+ lefthost = self.addHost( 'h1' )
+ righthost = self.addHost( 'h2' )
+ tophost = self.addHost( 'h3' )
+ self.addLink( leftSwitch, lefthost )
+ self.addLink( rightSwitch, righthost )
+ self.addLink( topSwitch, tophost )
+
+ self.addLink( leftSwitch, rightSwitch )
+ self.addLink( leftSwitch, topSwitch )
+ self.addLink( topSwitch, rightSwitch )
+
+ # Make aggregation switches
+ agg1Switch = self.addSwitch( 's4' )
+ agg2Switch = self.addSwitch( 's5' )
+ agg1Host = self.addHost( 'h4' )
+ agg2Host = self.addHost( 'h5' )
+
+ self.addLink( agg1Switch, agg1Host )
+ self.addLink( agg2Switch, agg2Host )
+
+ self.addLink( agg1Switch, rightSwitch )
+ self.addLink( agg2Switch, leftSwitch )
+
+ # Make two aggregation fans
+ for i in range(10):
+ switch = self.addSwitch( 's%d' % (i+6) )
+ host = self.addHost( 'h%d' % (i+6) )
+ self.addLink( switch, host )
+ self.addLink( switch, agg1Switch )
+
+ for i in range(10):
+ switch = self.addSwitch( 's%d' % (i+31) )
+ host = self.addHost( 'h%d' % (i+31) )
+ self.addLink( switch, host )
+ self.addLink( switch, agg2Switch )
+
+topos = { 'mytopo': ( lambda: MyTopo() ) }