Add scale test for 7 node ONOS cluster
diff --git a/TestON/tests/scaleONOS7nodes/__init__.py b/TestON/tests/scaleONOS7nodes/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/__init__.py
diff --git a/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1 b/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1
new file mode 100644
index 0000000..9bf2f2d
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1
@@ -0,0 +1,176 @@
+ONOS1
+1 0.0 0.0 0.0 0.00239947245396
+ONOS2
+1 0.0 0.0 0.0 0.00240234871667
+ONOS3
+5 0.0 0.0 0.0 0.0121141862312
+
+---------------------------------------------------------------------------------
+ONOS1
+1629 18.7889293392 4.48449607458 1.54147719592 3.62505307741
+ONOS2
+1629 19.2261277938 4.60475972875 1.58370323175 3.62941581988
+ONOS3
+1629 17.8382714302 4.24867153003 1.459765156 3.66161718472
+
+---------------------------------------------------------------------------------
+ONOS1
+3183 31.2994548933 9.22645211247 3.29904481351 6.61046866244
+ONOS2
+3183 32.7606424407 9.56283317479 3.41481907462 6.61796407638
+ONOS3
+3183 31.5861689913 9.24594010149 3.30141569916 6.673448832
+
+---------------------------------------------------------------------------------
+ONOS1
+4842 39.9442818508 13.4074669965 4.93312182074 9.42788406221
+ONOS2
+4842 39.9501179617 13.4738095108 4.96166898609 9.43793553665
+ONOS3
+4842 38.0249857507 12.9562504618 4.77594497277 9.51213793959
+
+---------------------------------------------------------------------------------
+ONOS1
+6333 43.3326254024 17.1545676648 6.55334823824 11.6061812929
+ONOS2
+6333 43.1025815278 17.1367790337 6.5530511963 11.6177361571
+ONOS3
+6333 43.777667171 17.1929221224 6.55828955792 11.7036190253
+
+---------------------------------------------------------------------------------
+ONOS1
+7959 46.9561811449 20.4581350129 8.03528568305 13.7759524559
+ONOS2
+7959 46.3408669423 20.4108823645 8.02922603097 13.7889504862
+ONOS3
+7959 45.6410475294 20.1576242077 7.92726689795 13.8850824339
+
+---------------------------------------------------------------------------------
+ONOS1
+9531 45.9906744738 22.7715112677 9.24095510988 15.6290021503
+ONOS2
+9531 48.055448081 23.2523557438 9.41177895671 15.6430625973
+ONOS3
+9531 47.4942907039 23.4438740596 9.53345804013 15.746412627
+
+---------------------------------------------------------------------------------
+ONOS1
+11178 48.3540408864 25.9507802704 10.8600911453 17.4138152199
+ONOS2
+11178 47.5616430096 25.8795464358 10.8505372729 17.4285967804
+ONOS3
+11178 48.7458886411 25.9965007518 10.8666758121 17.5380150699
+
+---------------------------------------------------------------------------------
+ONOS1
+12694 49.6724719708 28.3431418559 12.1755703493 18.8343463719
+ONOS2
+12694 49.0146328907 28.2907017805 12.1735446036 18.849661524
+ONOS3
+12694 48.6960578175 28.1228412863 12.0936097846 18.9623561373
+
+---------------------------------------------------------------------------------
+ONOS1
+14292 48.8589089419 30.4653291422 13.5261901847 20.242085149
+ONOS2
+14292 49.3030435553 30.5976153949 13.5848633365 20.2578017737
+ONOS3
+14292 48.9109659895 30.4555207991 13.5139122893 20.3733211479
+
+---------------------------------------------------------------------------------
+ONOS1
+15855 49.2637510688 32.350154998 14.7329286521 21.479967821
+ONOS2
+15855 48.80087594 32.2746234064 14.721362789 21.4958003475
+ONOS3
+15855 49.7070084114 32.4071423037 14.741735047 21.6129479915
+
+---------------------------------------------------------------------------------
+ONOS1
+17479 49.7954667568 34.2769555101 16.0681836861 22.6938152648
+ONOS2
+17479 48.5948066323 33.8055349065 15.8243597438 22.71001968
+ONOS3
+17479 50.1286934521 34.3315901641 16.077099823 22.8287509266
+
+---------------------------------------------------------------------------------
+ONOS1
+18996 50.4089945863 35.8426346551 17.200968186 23.6775401881
+ONOS2
+18996 49.8422938084 35.7578440385 17.1873611818 23.6935523664
+ONOS3
+18996 48.7482979129 35.4720353826 17.0666482037 23.8124199695
+
+---------------------------------------------------------------------------------
+ONOS1
+20565 48.5587834324 36.7329685213 18.1159622539 24.647671921
+ONOS2
+20565 48.3110087382 36.676081054 18.1094495228 24.6638443055
+ONOS3
+20565 48.93297292 36.793631721 18.1262156419 24.7827468466
+
+---------------------------------------------------------------------------------
+ONOS1
+22167 49.0508150775 38.1245132609 19.3059350415 25.5841260816
+ONOS2
+22170 48.5221636661 38.0385655774 19.2912194483 25.6036562614
+ONOS3
+22171 48.5824052178 37.9982884305 19.2528429078 25.7236458284
+
+---------------------------------------------------------------------------------
+ONOS1
+23639 47.9777788333 38.8926943034 20.1868609754 26.308941697
+ONOS2
+23639 48.1528601732 38.9174026097 20.2069767591 26.3249181854
+ONOS3
+23639 48.3280130991 38.9561603833 20.1981646715 26.4427299331
+
+---------------------------------------------------------------------------------
+ONOS1
+25268 49.8567068142 40.3154609814 21.3906394143 27.1525946206
+ONOS2
+25268 49.260910735 40.2252713754 21.3745229372 27.1686258006
+ONOS3
+25268 48.6285982236 40.0672365492 21.2987719637 27.2860637996
+
+---------------------------------------------------------------------------------
+ONOS1
+26786 48.5713107436 40.8577368773 22.194671911 27.82491922
+ONOS2
+26786 48.2099421547 40.7761299471 22.1790837949 27.8408111321
+ONOS3
+26786 48.806830681 40.9159842596 22.2060400391 27.9570400311
+
+---------------------------------------------------------------------------------
+ONOS1
+28345 49.5354143965 41.7745390383 23.1196161385 28.4949893223
+ONOS2
+28345 48.9994356563 41.7084318627 23.1119888217 28.5101088539
+ONOS3
+28352 48.8058937866 41.7666073305 23.2132849025 28.6323389508
+
+---------------------------------------------------------------------------------
+ONOS1
+29429 42.7205926401 41.133551867 23.6205125079 28.6600165985
+ONOS2
+29429 42.3177151851 41.0468840661 23.6034227045 28.6753451692
+ONOS3
+29429 43.0359873942 41.1940339927 23.632692912 28.7876408357
+
+---------------------------------------------------------------------------------
+ONOS1
+29429 25.9113492373 37.219176866 22.8461399993 27.7919878574
+ONOS2
+29429 25.6669917087 37.1407565968 22.8296104663 27.8064105758
+ONOS3
+29429 26.1026458256 37.2739033564 22.8579210822 27.9119214291
+
+---------------------------------------------------------------------------------
+ONOS1
+29429 14.4594435488 33.1206670242 21.9747328469 26.9749583673
+ONOS2
+29429 14.3230834597 33.0508822562 21.9588337904 26.9884033819
+ONOS3
+29429 14.5661937683 33.1693671304 21.9860645708 27.0878504545
+
+---------------------------------------------------------------------------------
diff --git a/TestON/tests/scaleONOS7nodes/scale3nodesrate1 b/TestON/tests/scaleONOS7nodes/scale3nodesrate1
new file mode 100644
index 0000000..9caaa19
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scale3nodesrate1
@@ -0,0 +1,176 @@
+ONOS1
+46 0.0159911170741 0.00330570923568 0.00110803039902 0.441388322918
+ONOS2
+169 1.4232094196 0.294208121975 0.0986147055128 1.51983829287
+ONOS3
+171 0.0 0.0 0.0 1.55826946014
+
+---------------------------------------------------------------------------------
+ONOS1
+1798 22.6349154776 5.65275867857 1.9589352278 12.3275451079
+ONOS2
+1798 20.8145837636 5.10869633674 1.76466018187 12.4714931153
+ONOS3
+1798 22.0791171081 5.47471756204 1.8948008043 12.6620550588
+
+---------------------------------------------------------------------------------
+ONOS1
+3426 32.6111034518 9.70067081694 3.47552137643 19.2298566624
+ONOS2
+3426 34.2140340329 10.1493268369 3.63676115043 19.4125205852
+ONOS3
+3426 33.2868110325 9.74024939592 3.48023473974 19.6519137751
+
+---------------------------------------------------------------------------------
+ONOS1
+5055 41.1154795596 14.3295561289 5.31573150012 24.0283473918
+ONOS2
+5055 40.2618482051 13.877993799 5.13339673365 24.228413302
+ONOS3
+5055 40.3643986592 14.0755662838 5.21932817392 24.4842903967
+
+---------------------------------------------------------------------------------
+ONOS1
+6648 44.0476719882 17.5652363011 6.72454316035 27.4144919114
+ONOS2
+6648 42.837315358 17.4660161912 6.71183843666 27.6117430147
+ONOS3
+6660 44.6253917733 17.5746713259 6.71339463557 27.9185886652
+
+---------------------------------------------------------------------------------
+ONOS1
+8223 45.5204851503 20.4781124794 8.08545718874 29.9446955545
+ONOS2
+8223 47.0478790956 20.9180018605 8.25491048977 30.134904835
+ONOS3
+8223 46.0539241762 20.9125541798 8.28383012594 30.3823258358
+
+---------------------------------------------------------------------------------
+ONOS1
+9761 48.2472730422 23.9163379895 9.74938162547 31.8260874816
+ONOS2
+9761 47.8554206671 23.5746897161 9.5837979702 32.0069787799
+ONOS3
+9761 47.9086582813 23.7657314867 9.68161495588 32.2419983542
+
+---------------------------------------------------------------------------------
+ONOS1
+11390 48.2977231982 26.23623474 11.0124446377 33.6205734759
+ONOS2
+11390 48.6817460585 26.4263736828 11.1034039314 33.7938746975
+ONOS3
+11390 48.9914985281 26.3026447756 11.0160590425 34.0180954514
+
+---------------------------------------------------------------------------------
+ONOS1
+13019 49.5587788244 28.9609886715 12.535952061 35.1042945838
+ONOS2
+13019 49.7703686117 28.7704010275 12.4112682408 35.2671782942
+ONOS3
+13019 48.3486366824 28.6472976101 12.4114088561 35.4806994928
+
+---------------------------------------------------------------------------------
+ONOS1
+14618 49.576578555 30.8922696843 13.7378230586 36.2757731409
+ONOS2
+14618 48.5440020686 30.7811465304 13.7316956109 36.4328337041
+ONOS3
+14618 49.4866717797 30.8087248031 13.6891587016 36.6357205954
+
+---------------------------------------------------------------------------------
+ONOS1
+16187 49.4907941638 32.9074922652 15.0888963838 37.2077993376
+ONOS2
+16187 49.6285423582 32.7484269078 14.9693742032 37.3552104338
+ONOS3
+16187 48.8755660723 32.7250364726 15.0063681262 37.5478060295
+
+---------------------------------------------------------------------------------
+ONOS1
+17725 49.8836746982 34.5479805791 16.2364648337 37.9435104425
+ONOS2
+17725 48.99884514 34.4732673007 16.246116043 38.0836022622
+ONOS3
+17725 49.4211281632 34.4116883879 16.1694233436 38.2662174542
+
+---------------------------------------------------------------------------------
+ONOS1
+19354 49.8626223455 35.9745646504 17.3266700853 38.7671511869
+ONOS2
+19354 48.4587733895 35.7738406011 17.2944948224 38.9024055739
+ONOS3
+19354 49.6238625297 36.107629579 17.4523301701 39.0742037951
+
+---------------------------------------------------------------------------------
+ONOS1
+20949 48.7735412886 37.2334176044 18.4738354902 39.4261732644
+ONOS2
+20949 49.2808245039 37.2112430739 18.3974292802 39.5555564351
+ONOS3
+20949 49.0412343145 37.2603304894 18.4613220964 39.7222890977
+
+---------------------------------------------------------------------------------
+ONOS1
+22518 49.2233054229 38.459058778 19.5122554055 39.9666332511
+ONOS2
+22518 49.3199190997 38.5500864358 19.5788242673 40.0902311981
+ONOS3
+22518 48.5868586294 38.3006063004 19.437642791 40.2494766808
+
+---------------------------------------------------------------------------------
+ONOS1
+24059 49.2130863162 39.6417956777 20.6446125264 40.4016538809
+ONOS2
+24059 48.8272590697 39.4712361736 20.518926366 40.5198056741
+ONOS3
+24059 48.7738335012 39.5215088361 20.5824985986 40.6715650211
+
+---------------------------------------------------------------------------------
+ONOS1
+25687 48.7438034983 40.4560575512 21.5487100295 40.9303516742
+ONOS2
+25687 49.5471148575 40.6750208451 21.6586836347 41.0440523285
+ONOS3
+25687 49.5528136103 40.5962066501 21.5740317285 41.1905085161
+
+---------------------------------------------------------------------------------
+ONOS1
+27208 48.3440895308 41.1892039746 22.4234679597 41.246260379
+ONOS2
+27208 49.7248389814 41.5217226735 22.5714921035 41.3552443508
+ONOS3
+27208 48.9489326527 41.4186969689 22.5835508207 41.4954641517
+
+---------------------------------------------------------------------------------
+ONOS1
+28764 48.636023504 42.0763468157 23.4482599273 41.5834003461
+ONOS2
+28764 49.5204659279 42.2043214958 23.4251146139 41.6880977866
+ONOS3
+28764 48.7203412028 42.0949248759 23.4349162749 41.822682997
+
+---------------------------------------------------------------------------------
+ONOS1
+29669 41.3110354992 41.1541779314 23.753983268 40.9907471033
+ONOS2
+29669 40.0637318705 40.9112993447 23.707965358 41.0894107566
+ONOS3
+29669 41.8871662556 41.2877306835 23.7807095826 41.2163432863
+
+---------------------------------------------------------------------------------
+ONOS1
+29669 23.0530097167 36.6223527412 22.847948773 39.2515156116
+ONOS2
+29669 24.299881722 37.0180744675 22.9307258039 39.3420203293
+ONOS3
+29669 23.3745109274 36.7411989007 22.8736556812 39.4584630811
+
+---------------------------------------------------------------------------------
+ONOS1
+29669 13.9823571918 33.1372750967 22.0989039162 37.6540346
+ONOS2
+29669 13.5601880389 32.9417096657 22.0560923439 37.7370627214
+ONOS3
+29669 14.1773575332 33.2448115489 22.1237680517 37.8440976097
+
+---------------------------------------------------------------------------------
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes b/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes
new file mode 100644
index 0000000..7d8d0c8
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS.params.4nodes
@@ -0,0 +1,62 @@
+<PARAMS>
+ <testcases>1,2,3,31,6,7,6,7,4,6,7,6,7,5,6,7,6,7,41,6,7,6,7,5,6,7,6,7,66</testcases>
+ <tcpdump>
+ <intf>eth0</intf>
+ <port>port 6633</port>
+ <filename>~/packet_captures/Sanity.pcap</filename>
+ </tcpdump>
+ <CASE1>
+ <destination>h6</destination>
+ <target>h40</target>
+ </CASE1>
+ <PING>
+ <source1>h7</source1>
+ <target1>h32</target1>
+ <source2>h8</source2>
+ <target2>h33</target2>
+ </PING>
+ <LINK>
+ <begin>s1</begin>
+ <end>s2</end>
+ </LINK>
+ <YANK>
+ <hostname>h1</hostname>
+ <hostip>10.0.0.1</hostip>
+ <hostmac>00:00:00:00:00:01</hostmac>
+ <sw1>s1</sw1>
+ <sw6>s6</sw6>
+ <intf>s1-eth1</intf>
+ </YANK>
+ <PLUG>
+ <intf>s1-eth1</intf>
+ <sw6>s6</sw6>
+ <sw1>s1</sw1>
+ </PLUG>
+ <CTRL>
+ <ip1>10.128.10.1</ip1>
+ <port1>6633</port1>
+ <ip2>10.128.10.2</ip2>
+ <port2>6633</port2>
+ <ip3>10.128.10.3</ip3>
+ <port3>6633</port3>
+ <ip4>10.128.10.4</ip4>
+ <port4>6633</port4>
+ </CTRL>
+ <INTENTREST>
+ <intentIP>10.128.10.1</intentIP>
+ <intentPort>8080</intentPort>
+ <intentURL>wm/onos/intent/high</intentURL>
+ </INTENTREST>
+ <RestIP>10.128.10.1</RestIP>
+ <RestIP2>10.128.10.2</RestIP2>
+ <RestIP3>10.128.10.3</RestIP3>
+ <RestIP4>10.128.10.4</RestIP4>
+ <NR_Switches>25</NR_Switches>
+ <NR_Links>50</NR_Links>
+ <RESTCALL>
+ <restIP1>10.128.10.1</restIP1>
+ <restIP2>10.128.10.2</restIP2>
+ <restPort>8080</restPort>
+ <restURL>/wm/onos/topology/hosts</restURL>
+ </RESTCALL>
+</PARAMS>
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes b/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes
new file mode 100644
index 0000000..b58bd43
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS.topo.4nodes
@@ -0,0 +1,153 @@
+<TOPOLOGY>
+
+ <COMPONENT>
+ <Zookeeper1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>1</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper1>
+
+ <Zookeeper2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>2</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper2>
+
+ <Zookeeper3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>3</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper3>
+
+ <Zookeeper4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>4</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper4>
+
+ <RamCloud1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>5</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud1>
+
+ <RamCloud2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>6</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud2>
+
+ <RamCloud3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>7</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud3>
+
+ <RamCloud4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>8</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud4>
+
+ <ONOS1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>9</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS1>
+
+ <ONOS2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>10</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS2>
+
+ <ONOS3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>11</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS3>
+
+ <ONOS4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>12</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS4>
+
+ <Mininet1>
+ <host>10.128.10.90</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>MininetCliDriver</type>
+ <connect_order>13</connect_order>
+ <COMPONENTS>
+ # Specify the Option for mininet
+ <arg1> --custom topo-onos4node.py </arg1>
+ <arg2> --topo mytopo --arp</arg2>
+ <controller> remote </controller>
+ </COMPONENTS>
+ </Mininet1>
+
+ <Mininet2>
+ <host>10.128.10.90</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RemoteMininetDriver</type>
+ <connect_order>13</connect_order>
+ <COMPONENTS>
+ # Specify the Option for mininet
+ <arg1> --custom topo-onos4node.py </arg1>
+ <arg2> --topo mytopo --arp</arg2>
+ <controller> remote </controller>
+ </COMPONENTS>
+ </Mininet2>
+
+ </COMPONENT>
+</TOPOLOGY>
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
new file mode 100644
index 0000000..d485ee8
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
@@ -0,0 +1,78 @@
+<PARAMS>
+ <testcases>1,2</testcases>
+ <tcpdump>
+ <intf>eth0</intf>
+ <port>port 6633</port>
+ <filename>~/packet_captures/Sanity.pcap</filename>
+ </tcpdump>
+ <CASE1>
+ <destination>h6</destination>
+ <target>h40</target>
+ </CASE1>
+ <PING>
+ <source1>h7</source1>
+ <target1>h32</target1>
+ <source2>h8</source2>
+ <target2>h33</target2>
+ </PING>
+ <LINK>
+ <begin>s1</begin>
+ <end>s2</end>
+ </LINK>
+ <YANK>
+ <hostname>h1</hostname>
+ <hostip>10.0.0.1</hostip>
+ <hostmac>00:00:00:00:00:01</hostmac>
+ <sw1>s1</sw1>
+ <sw6>s6</sw6>
+ <intf>s1-eth1</intf>
+ </YANK>
+ <PLUG>
+ <intf>s1-eth1</intf>
+ <sw6>s6</sw6>
+ <sw1>s1</sw1>
+ </PLUG>
+ <CTRL>
+ <ip1>10.128.10.1</ip1>
+ <port1>6633</port1>
+ <ip2>10.128.10.2</ip2>
+ <port2>6633</port2>
+ <ip3>10.128.10.3</ip3>
+ <port3>6633</port3>
+ <ip4>10.128.10.4</ip4>
+ <port4>6633</port4>
+ <ip5>10.128.10.5</ip5>
+ <port5>6633</port5>
+ <ip6>10.128.10.6</ip6>
+ <port6>6633</port6>
+ <ip7>10.128.10.7</ip7>
+ <port7>6633</port7>
+ </CTRL>
+ <INTENTREST>
+ <intentIP>10.128.10.1</intentIP>
+ <intentPort>8080</intentPort>
+ <intentURL>wm/onos/intent/high</intentURL>
+ </INTENTREST>
+ <RestIP>10.128.10.1</RestIP>
+ <RestIP2>10.128.10.2</RestIP2>
+ <RestIP3>10.128.10.3</RestIP3>
+ <RestIP4>10.128.10.4</RestIP4>
+ <RestIP5>10.128.10.5</RestIP5>
+ <RestIP6>10.128.10.6</RestIP6>
+ <RestIP7>10.128.10.7</RestIP7>
+ <NR_Switches>25</NR_Switches>
+ <NR_Links>50</NR_Links>
+ <RESTCALL>
+ <restIP1>10.128.10.1</restIP1>
+ <restIP2>10.128.10.2</restIP2>
+ <restPort>8080</restPort>
+ <restURL>/wm/onos/topology/hosts</restURL>
+ </RESTCALL>
+ <switches_num>50</switches_num>
+ <RATE1>30</RATE1>
+ <RATE2>50</RATE2>
+ <RUN_DUR>600</RUN_DUR>
+ <sleep_t>32</sleep_t>
+ <loop>22</loop>
+ <port>10</port>
+</PARAMS>
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
new file mode 100644
index 0000000..e8a286e
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
@@ -0,0 +1,771 @@
+class scaleONOS7nodes :
+
+
+
+ def __init__(self) :
+ self.default = ''
+
+# def print_hello_world(self,main):
+# print("hello world")
+#*****************************************************************************************************************************************************************************************
+#Test startup
+#Tests the startup of Zookeeper1, RamCloud1, and ONOS1 to be certain that all started up successfully
+ def CASE1(self,main) : #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
+ main.case("Initial setup")
+ main.step("Stop ONOS")
+ import time
+ main.ONOS1.stop_all()
+ main.ONOS2.stop_all()
+ main.ONOS3.stop_all()
+# main.print_hello_world()
+ main.ONOS4.stop_all()
+ # main.ONOS5.stop_all()
+ # main.ONOS6.stop_all()
+ # main.ONOS7.stop_all()
+ main.ONOS2.stop_rest()
+ #main.ONOS1.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+ #main.ONOS2.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+ #main.ONOS3.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+ #main.ONOS4.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+ #main.step("Start tcpdump on mn")
+ #main.Mininet2.start_tcpdump(main.params['tcpdump']['filename'], intf = main.params['tcpdump']['intf'], port = main.params['tcpdump']['port'])
+ main.step("Start ONOS")
+ main.Zookeeper1.start()
+ main.Zookeeper2.start()
+ main.Zookeeper3.start()
+ main.Zookeeper4.start()
+ time.sleep(5)
+
+
+ main.RamCloud1.del_db()
+ main.RamCloud2.del_db()
+ main.RamCloud3.del_db()
+ main.RamCloud4.del_db()
+
+ time.sleep(5)
+ #main.log.report("Pulling latest code from github to all nodes")
+
+ """
+ for i in range(2):
+ uptodate = main.ONOS1.git_pull()
+ main.ONOS2.git_pull()
+ main.ONOS3.git_pull()
+ # main.ONOS4.git_pull()
+ ver1 = main.ONOS1.get_version()
+ ver2 = main.ONOS3.get_version()
+ if ver1==ver2:
+ break
+ elif i==1:
+ main.ONOS2.git_pull("ONOS1 master")
+ main.ONOS3.git_pull("ONOS1 master")
+ # main.ONOS4.git_pull("ONOS1 master")
+ if uptodate==0:
+ # if 1:
+ main.ONOS1.git_compile()
+ main.ONOS2.git_compile()
+ main.ONOS3.git_compile()
+ # main.ONOS4.git_compile()
+ main.ONOS1.print_version()
+ # main.RamCloud1.git_pull()
+ # main.RamCloud2.git_pull()
+ # main.RamCloud3.git_pull()
+ # main.RamCloud4.git_pull()
+ # main.ONOS1.get_version()
+ # main.ONOS2.get_version()
+ # main.ONOS3.get_version()
+ # main.ONOS4.get_version()
+ # main.ONOS1.start_all()
+ # main.ONOS2.start_all()
+ # main.ONOS3.start_all()
+ # main.ONOS4.start_all()
+
+ """
+ main.RamCloud1.start_coor()
+ main.RamCloud1.start_serv()
+ main.RamCloud2.start_serv()
+ main.RamCloud3.start_serv()
+ #main.RamCloud4.start_serv()
+
+ main.ONOS1.start()
+ main.ONOS2.start()
+ main.ONOS3.start()
+ #main.ONOS4.start()
+
+
+
+ main.ONOS1.start_rest()
+ main.ONOS2.start_rest()
+ main.ONOS3.start_rest()
+ test= main.ONOS2.rest_status()
+ if test == main.FALSE:
+ main.ONOS1.start_rest()
+ main.ONOS1.get_version()
+ main.log.report("Startup check Zookeeper1, RamCloud1, and ONOS1 connections")
+ main.step("Testing startup Zookeeper")
+ data = main.Zookeeper1.isup() and main.Zookeeper2.isup() and main.Zookeeper3.isup()
+ utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Zookeeper is up!",onfail="Zookeeper is down...")
+
+ main.step("Testing startup RamCloud")
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() #and main.RamCloud4.status_serv()
+ if data == main.FALSE:
+ main.RamCloud1.stop_coor()
+ main.RamCloud1.stop_serv()
+ main.RamCloud2.stop_serv()
+ main.RamCloud3.stop_serv()
+ # main.RamCloud4.stop_serv()
+
+ time.sleep(5)
+ main.RamCloud1.start_coor()
+ main.RamCloud1.start_serv()
+ main.RamCloud2.start_serv()
+ main.RamCloud3.start_serv()
+ # main.RamCloud4.start_serv()
+ time.sleep(5)
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() #and main.RamCloud4.status_serv()
+
+
+
+ utilities.assert_equals(expect=main.TRUE,actual=data,onpass="RamCloud is up!",onfail="RamCloud is down...")
+
+ main.step("Testing startup ONOS")
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() #and main.ONOS4.isup()
+ for i in range(3):
+ if data == main.FALSE:
+ #main.log.report("Something is funny... restarting ONOS")
+ #main.ONOS1.stop()
+ time.sleep(3)
+ #main.ONOS1.start()
+ #time.sleep(5)
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() #and main.ONOS4.isup()
+ else:
+ break
+ utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+ time.sleep(10)
+
+
+ def CASE2(self,main) :
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ rate1 = main.params['RATE1']
+ run_dur = main.params['RUN_DUR']
+ loop = int( main.params['loop'])
+ port = main.params['port']
+ switches_num = main.params['switches_num']
+ print loop
+ sleep_t =int( main.params['sleep_t'])
+ main.case("Starting SB load on 3 nodes from mininet with " + rate1 +" added/removed/s for " + run_dur)
+ main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur + " \"11\"")
+ main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=400)
+ import time
+ import json
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", "a")
+ #time.sleep(10)
+ for i in range(int (loop)):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ if json_str1 != "" and json_str2 != "" and json_str3 != "":
+ # write_str = str(json_str["meters"][4]["meter"][2])
+ #print str(json_str["meters"][4])
+ #f.write(str(json_str["meters"][4]))
+ #f.write('\n')
+ #time.sleep(3)
+ f.write("ONOS1 \n")
+ f.write(str(json_str1["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2 \n")
+ f.write(str(json_str2["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3 \n")
+ f.write(str(json_str3["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write('\n')
+
+ f.write("--------------------------------------------------------------------------------- \n")
+ time.sleep(sleep_t)
+ f.close()
+ main.Mininet2.handle.expect("\$", timeout=900)
+ # main.Mininet2.handle.sendline("sudo mn -c")
+ #main.Mininet2.handle.expect("\$")
+ time.sleep(5)
+ # main.Mininet2.handle.expect("\$", timeout=900)
+
+
+ def CASE3(self,main):
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ import time
+ rate2 = main.params['RATE2']
+ run_dur = main.params['RUN_DUR']
+ loop = int(main.params['loop'])
+ sleep_t = int(main.params['sleep_t'])
+ port = main.params['port']
+ switches_num = main.params['switches_num']
+ main.case("Starting SB load on 3 nodes from mininet with " + rate2 +" added/removed/s for " + run_dur)
+ main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " " + switches_num + " " + port + " " + rate2 + " " + run_dur + " \"11\"")
+ #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"10.128.10.1\" 100 50 1200 \"11\"")
+ main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900 )
+
+ import json
+
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", "a")
+ #time.sleep(10)
+ for i in range(int (loop)):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ if json_str1 != "" and json_str2 != "" and json_str3 != "":
+ # write_str = str(json_str["meters"][4]["meter"][2])
+ #print str(json_str["meters"][4])
+ #f.write(str(json_str["meters"][4]))
+ #f.write('\n')
+ #time.sleep(3)
+ f.write("ONOS1 \n")
+ f.write(str(json_str1["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2 \n")
+ f.write(str(json_str2["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3 \n")
+ f.write(str(json_str3["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+ f.write('\n')
+ f.write("--------------------------------------------------------------------------------- \n")
+ time.sleep(sleep_t)
+ f.close()
+ main.Mininet2.handle.expect("\$", timeout=900)
+ # main.Mininet2.handle.sendline("sudo mn -c")
+ #time.sleep(5)
+ # main.Mininet2.handle.expect("\$", timeout=900)
+
+
+ def CASE4(self,main):
+
+ main.case("Starting NB Throughput test")
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ import time
+ import json
+
+ main.Mininet4.handle.expect("\$")
+ #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
+ #main.Mininet2.handle.expect("mininet>" , timeout=400)
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.1:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.2:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.2:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.3:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.3:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.3:6633")
+
+ main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
+ main.ONOS3.handle.expect("\$")
+
+ main.ONOS3.handle.sendline("./multiLoadgen_NB.py -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 \" -i 4 -g 100 -a 1 -d 1 -p 0")
+ main.ONOS3.handle.expect("intent group is : 0", timeout=900)
+
+
+ import json
+
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", "a")
+ #time.sleep(10)
+ for i in range(8):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ if json_str1 != "" and json_str2 != "" and json_str3 != "":
+ f.write("ONOS1......IncomingRate \n ")
+ f.write(str(json_str1["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2......IncomingRate \n")
+ f.write(str(json_str2["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3......IncomingRate \n")
+ f.write(str(json_str3["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write('\n')
+
+ f.write("--------------------------------------------------------------------------------- \n")
+
+ f.write("ONOS1......ProcessingRate \n ")
+ f.write(str(json_str1["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2......ProcessingRate \n")
+ f.write(str(json_str2["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3......ProcessingRate \n")
+ f.write(str(json_str3["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+ f.write('\n')
+
+ f.write("--------------------------------------------------------------------------------- \n")
+ time.sleep(10)
+ f.close()
+
+ main.ONOS3.handle.expect("\$", timeout=900)
+
+ def CASE5(self,main):
+
+ main.case("Starting ONOS scale-up to 4 nodes ")
+ import time
+ # main.RamCloud4.start_serv()
+ main.Zookeeper1.start()
+ main.ONOS4.start()
+ main.ONOS4.start_rest()
+ time.sleep(5)
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+ for i in range(3):
+ if data == main.FALSE:
+ #main.log.report("Something is funny... restarting ONOS")
+ #main.ONOS1.stop()
+ time.sleep(3)
+ #main.ONOS1.start()
+ #time.sleep(5)
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+ else:
+ break
+ utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+ time.sleep(10)
+
+ def CASE6(self,main):
+
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ ip4 = main.params['CTRL']['ip4']
+ rate1 = main.params['RATE1']
+ run_dur = main.params['RUN_DUR']
+ loop = int( main.params['loop'])
+ switches_num = main.params['switches_num']
+ port = main.params['port']
+ print loop
+ sleep_t =int( main.params['sleep_t'])
+ main.case("Starting SB load on 4 nodes from mininet with " + rate1 +" added/removed/s for " + run_dur)
+ main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur + " \"11\"")
+ main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900)
+ import time
+ import json
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", "a")
+ #time.sleep(10)
+ for i in range(int (loop)):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ json_str4 = main.ONOS4.get_json(url4)
+ if json_str1 != "" and json_str2 != "" and json_str3 != "" and json_str4 != "":
+ # write_str = str(json_str["meters"][4]["meter"][2])
+ #print str(json_str["meters"][4])
+ #f.write(str(json_str["meters"][4]))
+ #f.write('\n')
+ #time.sleep(3)
+
+ f.write("ONOS1 \n")
+ f.write(str(json_str1["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS2 \n")
+ f.write(str(json_str2["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS3 \n")
+ f.write(str(json_str3["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS4 \n")
+ f.write(str(json_str4["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write('\n')
+
+ time.sleep(sleep_t)
+ f.close()
+ #main.Mininet2.handle.expect("\$", timeout=900)
+ #main.Mininet2.handle.sendline("sudo mn -c")
+ #main.Mininet2.handle.expect("\$")
+ time.sleep(5)
+ main.Mininet2.handle.expect("\$", timeout=900)
+
+
+ def CASE7(self,main):
+
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ ip4 = main.params['CTRL']['ip4']
+
+ import time
+ import json
+ rate2 = main.params['RATE2']
+ run_dur = main.params['RUN_DUR']
+ loop = int(main.params['loop'])
+ sleep_t = int(main.params['sleep_t'])
+ switches_num = main.params['sitches_num']
+ port = main.params['port']
+ main.case("Starting SB load on 4 nodes from mininet with " + rate2 +" added/removed/s for " + run_dur)
+ main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate2 + " " + run_dur + " \"11\"")
+ main.Mininet2.handle.expect("starting to generate south bound load ....", timeout=900 )
+
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", "a")
+ #time.sleep(10)
+ for i in range(int (loop)):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ json_str4 = main.ONOS4.get_json(url4)
+ if json_str1 != "" and json_str2 != "" and json_str3 != "" and json_str4 != "":
+
+ f.write("ONOS1 \n")
+ f.write(str(json_str1["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS2 \n")
+ f.write(str(json_str2["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS3 \n")
+ f.write(str(json_str3["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS4 \n")
+ f.write(str(json_str4["meters"][4]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][4]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write('\n')
+
+ time.sleep(sleep_t)
+ f.close()
+
+ def CASE8(self,main):
+
+ main.case("Starting NB Throughput test after scaling up to 4 onos nodes")
+ ip1 = main.params['CTRL']['ip1']
+ ip2 = main.params['CTRL']['ip2']
+ ip3 = main.params['CTRL']['ip3']
+ ip4 = main.params['CTRL']['ip4']
+
+ import time
+ import json
+
+ main.Mininet4.handle.expect("\$")
+ #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
+ #main.Mininet2.handle.expect("mininet>" , timeout=400)
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.1:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.2:6633")
+ main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.4:6633")
+
+ main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
+ main.ONOS3.handle.expect("\$")
+
+ main.ONOS3.handle.sendline("./multiLoadgen_NB.py -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080 \" -i 4 -g 100 -a 1 -d 1 -p 0")
+ main.ONOS3.handle.expect("intent group is : 0", timeout=900)
+
+
+ import json
+
+ open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", 'w').close()
+ url1 = "http://10.128.10.1:8080/wm/onos/metrics"
+ url2 = "http://10.128.10.2:8080/wm/onos/metrics"
+ url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+ url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+ f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", "a")
+ #time.sleep(10)
+ for i in range(8):
+ json_str1 = main.ONOS1.get_json(url1)
+ json_str2 = main.ONOS2.get_json(url2)
+ json_str3 = main.ONOS3.get_json(url3)
+ json_str4 = main.ONOS4.get_json(url4)
+
+ if json_str1 != "" and json_str2 != "" and json_str3 != "":
+ f.write("ONOS1......IncomingRate \n ")
+ f.write(str(json_str1["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2......IncomingRate \n")
+ f.write(str(json_str2["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3......IncomingRate \n")
+ f.write(str(json_str3["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS4......IncomingRate \n")
+ f.write(str(json_str4["meters"][0]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][0]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][0]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][0]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][0]['meter']['mean_rate']))
+ f.write('\n')
+ f.write('\n')
+
+ f.write("--------------------------------------------------------------------------------- \n")
+
+ f.write("ONOS1......ProcessingRate \n ")
+ f.write(str(json_str1["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str1["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS2......ProcessingRate \n")
+ f.write(str(json_str2["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str2["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+ f.write("ONOS3......ProcessingRate \n")
+ f.write(str(json_str3["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str3["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write("ONOS4......ProcessingRate \n")
+ f.write(str(json_str4["meters"][1]['meter']['count']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][1]['meter']['m1_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][1]['meter']['m5_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][1]['meter']['m15_rate']))
+ f.write('\t')
+ f.write(str(json_str4["meters"][1]['meter']['mean_rate']))
+ f.write('\n')
+
+ f.write('\n')
+
+ f.write("--------------------------------------------------------------------------------- \n")
+
+ time.sleep(10)
+ f.close()
+
+ main.ONOS3.handle.expect("\$", timeout=900)
+
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo
new file mode 100644
index 0000000..5a4f78c
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.topo
@@ -0,0 +1,258 @@
+<TOPOLOGY>
+
+ <COMPONENT>
+ <Zookeeper1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>1</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper1>
+
+ <Zookeeper2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>2</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper2>
+
+ <Zookeeper3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>3</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper3>
+
+ <Zookeeper4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>4</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper4>
+
+ <Zookeeper5>
+ <host>10.128.10.5</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>5</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper5>
+
+ <Zookeeper6>
+ <host>10.128.10.6</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>6</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper6>
+
+ <Zookeeper7>
+ <host>10.128.10.7</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>ZookeeperCliDriver</type>
+ <connect_order>7</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </Zookeeper7>
+
+ <RamCloud1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>8</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud1>
+
+ <RamCloud2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>9</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud2>
+
+ <RamCloud3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>10</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud3>
+
+ <RamCloud4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>11</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud4>
+
+ <RamCloud5>
+ <host>10.128.10.5</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>12</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud5>
+
+ <RamCloud6>
+ <host>10.128.10.6</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>13</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud6>
+
+ <RamCloud7>
+ <host>10.128.10.7</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RamCloudCliDriver</type>
+ <connect_order>14</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </RamCloud7>
+
+
+ <ONOS1>
+ <host>10.128.10.1</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>15</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS1>
+
+ <ONOS2>
+ <host>10.128.10.2</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>16</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS2>
+
+ <ONOS3>
+ <host>10.128.10.3</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>17</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS3>
+
+ <ONOS4>
+ <host>10.128.10.4</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>18</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS4>
+
+ <ONOS5>
+ <host>10.128.10.5</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>19</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS5>
+
+ <ONOS6>
+ <host>10.128.10.6</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>20</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS6>
+
+ <ONOS7>
+ <host>10.128.10.7</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>OnosCliDriver</type>
+ <connect_order>21</connect_order>
+ <COMPONENTS>
+ </COMPONENTS>
+ </ONOS7>
+
+ <Mininet2>
+ <host>10.128.10.90</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RemoteMininetDriver</type>
+ <connect_order>23</connect_order>
+ <COMPONENTS>
+ # Specify the Option for mininet
+ <arg1> --custom topo-onos4node.py </arg1>
+ <arg2> --topo mytopo --arp</arg2>
+ <controller> remote </controller>
+ </COMPONENTS>
+ </Mininet2>
+
+ <Mininet3>
+ <host>10.128.10.91</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>MininetCliDriver</type>
+ <connect_order>24</connect_order>
+ <COMPONENTS>
+ # Specify the Option for mininet
+ <arg1> --custom topo-intentTPtest.py </arg1>
+ <arg2> --topo mytopo --arp</arg2>
+ <controller> remote </controller>
+ </COMPONENTS>
+ </Mininet3>
+
+ <Mininet4>
+ <host>10.128.10.91</host>
+ <user>admin</user>
+ <password>onos_test</password>
+ <type>RemoteMininetDriver</type>
+ <connect_order>24</connect_order>
+ <COMPONENTS>
+ # Specify the Option for mininet
+ <arg1> --custom topo-onos4node.py </arg1>
+ <arg2> --topo mytopo --arp</arg2>
+ <controller> remote </controller>
+ </COMPONENTS>
+ </Mininet4>
+
+ </COMPONENT>
+</TOPOLOGY>
diff --git a/TestON/tests/scaleONOS7nodes/scaleResults b/TestON/tests/scaleONOS7nodes/scaleResults
new file mode 100644
index 0000000..2488306
--- /dev/null
+++ b/TestON/tests/scaleONOS7nodes/scaleResults
@@ -0,0 +1,51 @@
+[2014-07-25 15:15:35.933098] [scaleONOS7nodes] [CASE] Starting SB load from mininet with 20sw added/removed 10/s duration: 360s
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4, u'mean_rate': 0.059200312795650786, u'm5_rate': 0.0, u'm15_rate': 0.0, u'units': u'events/second', u'm1_rate': 0.0}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 189, u'mean_rate': 2.4356254535500663, u'm5_rate': 0.41843186533973237, u'm15_rate': 1.9369051806194815, u'units': u'events/second', u'm1_rate': 0.14129996658762756}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 305, u'mean_rate': 3.4808906901728482, u'm5_rate': 0.9457303370098417, u'm15_rate': 4.174524246234802, u'units': u'events/second', u'm1_rate': 0.3220664415995731}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 470, u'mean_rate': 4.813391854440621, u'm5_rate': 1.3653129541121973, u'm15_rate': 5.67074120039854, u'units': u'events/second', u'm1_rate': 0.47005007387755343}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 554, u'mean_rate': 5.145399853971431, u'm5_rate': 1.6878416231510096, u'm15_rate': 6.5221406321995365, u'units': u'events/second', u'm1_rate': 0.5886241207705653}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 670, u'mean_rate': 5.692871627444301, u'm5_rate': 1.9211151858691953, u'm15_rate': 6.874390831538807, u'units': u'events/second', u'm1_rate': 0.6793689049109783}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 782, u'mean_rate': 6.122985062753683, u'm5_rate': 2.298585202117126, u'm15_rate': 7.903041256773227, u'units': u'events/second', u'm1_rate': 0.8200558382406801}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 928, u'mean_rate': 6.737355933051502, u'm5_rate': 2.5440190839839243, u'm15_rate': 8.182751878849528, u'units': u'events/second', u'm1_rate': 0.9192254774790037}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1068, u'mean_rate': 7.2277027669966225, u'm5_rate': 3.0582120448420502, u'm15_rate': 9.742318376899973, u'units': u'events/second', u'm1_rate': 1.1102756658184045}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1178, u'mean_rate': 7.465643586983538, u'm5_rate': 3.3117994889825484, u'm15_rate': 9.89957751878761, u'units': u'events/second', u'm1_rate': 1.2173187929330158}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1272, u'mean_rate': 7.579869789467111, u'm5_rate': 3.491942657341365, u'm15_rate': 9.73588659125985, u'units': u'events/second', u'm1_rate': 1.3011290230067005}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1372, u'mean_rate': 7.714903896910294, u'm5_rate': 3.744533557606514, u'm15_rate': 9.958097598081375, u'units': u'events/second', u'm1_rate': 1.410495416418516}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1502, u'mean_rate': 7.995257880751603, u'm5_rate': 3.9832156189264327, u'm15_rate': 10.137227344552151, u'units': u'events/second', u'm1_rate': 1.5165477887836256}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1618, u'mean_rate': 8.17649661132665, u'm5_rate': 4.232923512725775, u'm15_rate': 10.361789679493679, u'units': u'events/second', u'm1_rate': 1.6279660102909048}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1796, u'mean_rate': 8.638436983286626, u'm5_rate': 4.625961247189527, u'm15_rate': 11.274683186266738, u'units': u'events/second', u'm1_rate': 1.7890611156116576}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 1898, u'mean_rate': 8.70908577788645, u'm5_rate': 4.940218041617326, u'm15_rate': 11.732722831544308, u'units': u'events/second', u'm1_rate': 1.9262401293788511}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2014, u'mean_rate': 8.834979322143473, u'm5_rate': 5.086044615238827, u'm15_rate': 11.36565719225259, u'units': u'events/second', u'm1_rate': 2.00877929586214}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2096, u'mean_rate': 8.80741944058602, u'm5_rate': 5.23446678354358, u'm15_rate': 11.104825178674638, u'units': u'events/second', u'm1_rate': 2.092708438681387}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2212, u'mean_rate': 8.919169787587151, u'm5_rate': 5.42342880661179, u'm15_rate': 11.087454018930082, u'units': u'events/second', u'm1_rate': 2.1911244042226627}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2302, u'mean_rate': 8.921505549289213, u'm5_rate': 5.527733113130847, u'm15_rate': 10.709420105909206, u'units': u'events/second', u'm1_rate': 2.261958400590161}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2424, u'mean_rate': 9.043024690304492, u'm5_rate': 5.7730856298958795, u'm15_rate': 11.070016034135019, u'units': u'events/second', u'm1_rate': 2.3806525506070884}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2558, u'mean_rate': 9.198907190307924, u'm5_rate': 5.977993104861085, u'm15_rate': 11.230685676223507, u'units': u'events/second', u'm1_rate': 2.487028536364942}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2652, u'mean_rate': 9.205141639750474, u'm5_rate': 6.102910924894121, u'm15_rate': 11.002099225101214, u'units': u'events/second', u'm1_rate': 2.567791053544984}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2758, u'mean_rate': 9.251221641461491, u'm5_rate': 6.236628457203367, u'm15_rate': 10.864897965206772, u'units': u'events/second', u'm1_rate': 2.6520564660056722}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 2866, u'mean_rate': 9.300808867298466, u'm5_rate': 6.4461734461098965, u'm15_rate': 11.153003681875704, u'units': u'events/second', u'm1_rate': 2.7620817265483906}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3000, u'mean_rate': 9.428962629183438, u'm5_rate': 6.549131070407777, u'm15_rate': 10.904360602384472, u'units': u'events/second', u'm1_rate': 2.837588952255399}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3114, u'mean_rate': 9.488273497253953, u'm5_rate': 6.760779624902542, u'm15_rate': 11.22991528533686, u'units': u'events/second', u'm1_rate': 2.9498980541385973}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3232, u'mean_rate': 9.555939548927737, u'm5_rate': 6.971335992976415, u'm15_rate': 11.519573501287377, u'units': u'events/second', u'm1_rate': 3.0630963037697176}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3322, u'mean_rate': 9.539302128630185, u'm5_rate': 7.005059610420453, u'm15_rate': 10.979254648249038, u'units': u'events/second', u'm1_rate': 3.117647167706458}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3426, u'mean_rate': 9.562668411317048, u'm5_rate': 7.168703957115292, u'm15_rate': 11.13340055572298, u'units': u'events/second', u'm1_rate': 3.2157814313436766}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3556, u'mean_rate': 9.6553664830416, u'm5_rate': 7.30835119706793, u'm15_rate': 11.196064287702198, u'units': u'events/second', u'm1_rate': 3.3063182176268193}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3690, u'mean_rate': 9.753744409437841, u'm5_rate': 7.436043897518086, u'm15_rate': 11.19922564971827, u'units': u'events/second', u'm1_rate': 3.3935526056733525}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3862, u'mean_rate': 9.94485575877501, u'm5_rate': 7.716475942451841, u'm15_rate': 11.928560772404543, u'units': u'events/second', u'm1_rate': 3.5328121098263545}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 3962, u'mean_rate': 9.945657010947713, u'm5_rate': 7.921927978095857, u'm15_rate': 12.23377875835498, u'units': u'events/second', u'm1_rate': 3.6484090746318865}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4074, u'mean_rate': 9.975814947863958, u'm5_rate': 8.00901532078311, u'm15_rate': 11.966342332818853, u'units': u'events/second', u'm1_rate': 3.7251416456063717}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4156, u'mean_rate': 9.932800200694953, u'm5_rate': 8.054999692711906, u'm15_rate': 11.58131193842906, u'units': u'events/second', u'm1_rate': 3.7878895918323345}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4290, u'mean_rate': 10.013202869430945, u'm5_rate': 8.197664300462709, u'm15_rate': 11.712109833999651, u'units': u'events/second', u'm1_rate': 3.8830746138276506}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.97133516767342, u'm5_rate': 8.191184093898045, u'm15_rate': 11.142233135267437, u'units': u'events/second', u'm1_rate': 3.928565036650824}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.748514038149732, u'm5_rate': 8.052687964347193, u'm15_rate': 10.02019824138421, u'units': u'events/second', u'm1_rate': 3.9292315920501197}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.535437429356055, u'm5_rate': 7.788689451274274, u'm15_rate': 8.481914691112806, u'units': u'events/second', u'm1_rate': 3.885815112583944}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.331367778702917, u'm5_rate': 7.533345838926838, u'm15_rate': 7.179785778108208, u'units': u'events/second', u'm1_rate': 3.842878368314098}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 9.135919987284627, u'm5_rate': 7.286373385909162, u'm15_rate': 6.077557449798136, u'units': u'events/second', u'm1_rate': 3.80041605835342}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.948532183901525, u'm5_rate': 7.047497652974929, u'm15_rate': 5.144541313226928, u'units': u'events/second', u'm1_rate': 3.758422940387489}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.76863771104249, u'm5_rate': 6.8164531980665, u'm15_rate': 4.354760204591356, u'units': u'events/second', u'm1_rate': 3.7168938300274155}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.59583194470271, u'm5_rate': 6.592983281351978, u'm15_rate': 3.6862249294674947, u'units': u'events/second', u'm1_rate': 3.6758236001697906}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.429632452341373, u'm5_rate': 6.37683957993232, u'm15_rate': 3.120322036630427, u'units': u'events/second', u'm1_rate': 3.635207180363701}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.269862736358995, u'm5_rate': 6.167781911901452, u'm15_rate': 2.6412955797811177, u'units': u'events/second', u'm1_rate': 3.595039556184744}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 8.115976079788764, u'm5_rate': 5.965577969452773, u'm15_rate': 2.2358084383190753, u'units': u'events/second', u'm1_rate': 3.5553157686159524}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 7.967761632050002, u'm5_rate': 5.770003060735474, u'm15_rate': 1.892570983393321, u'units': u'events/second', u'm1_rate': 3.516030913435567}}
+{u'name': u'Topology.EventNotification.ListenerEventRate', u'meter': {u'count': 4372, u'mean_rate': 7.8248239429659785, u'm5_rate': 5.580839860173803, u'm15_rate': 1.6020267505007044, u'units': u'events/second', u'm1_rate': 3.477180140611569}}