GIMIv2tasks/TestCases: step3-ping_e2e.rb

File step3-ping_e2e.rb, 5.1 KB (added by koneil@bbn.com, 7 years ago)
Line 
1defProperty('source1', "nodeA", "ID of a resource")
2defProperty('source2', "nodeB", "ID of a resource")
3defProperty('source3', "nodeC", "ID of a resource")
4defProperty('source4', "nodeD", "ID of a resource")
5defProperty('source5', "nodeE", "ID of a resource")
6defProperty('graph', true, "Display graph or not")
7
8defProperty('sinkaddr11', '192.168.1.13', "Ping destination address")
9defProperty('sinkaddr12', '192.168.3.13', "Ping destination address")
10defProperty('sinkaddr13', '192.168.6.14', "Ping destination address")
11
12defProperty('sinkaddr21', '192.168.6.14', "Ping destination address")
13
14defProperty('sinkaddr41', '192.168.4.11', "Ping destination address")
15defProperty('sinkaddr42', '192.168.5.11', "Ping destination address")
16defProperty('sinkaddr43', '192.168.6.14', "Ping destination address")
17
18defProperty('sinkaddr51', '192.168.5.11', "Ping destination address")
19defProperty('sinkaddr52', '192.168.2.10', "Ping destination address")
20defProperty('sinkaddr53', '192.168.3.13', "Ping destination address")
21
22defApplication('ping_app', 'pingmonitor') do |a|
23    a.path = "/root/pingWrap.rb"
24    a.version(1, 2, 0)
25    a.shortDescription = "Wrapper around ping"
26    a.description = "ping application"
27    a.defProperty('dest_addr', 'Address to ping', '-a', {:type => :string, :dynamic => false})
28    a.defProperty('count', 'Number of times to ping', '-c', {:type => :integer, :dynamic => false})
29    a.defProperty('interval', 'Interval between pings in s', '-i', {:type => :integer, :dynamic => false})
30   
31    a.defMeasurement('myping', '', :stream_name => 'pingmonitor_myping') do |m|
32    #a.defMeasurement('myping', '') do |m|
33     m.defMetric('dest_addr',:string)
34     m.defMetric('ttl',:int)
35     m.defMetric('rtt',:float)
36     m.defMetric('rtt_unit',:string)
37    end
38end
39
40defGroup('Source1', property.source1) do |node|
41      node.addApplication("ping_app") do |app|
42          app.setProperty('dest_addr', property.sinkaddr11)
43          app.setProperty('count', 30)
44          app.setProperty('interval', 1)
45          app.measure('myping', :samples => 1)
46      end
47     
48      node.addApplication("ping_app") do |app|
49          app.setProperty('dest_addr', property.sinkaddr12)
50          app.setProperty('count', 30)
51          app.setProperty('interval', 1)
52          app.measure('myping', :samples => 1)
53      end
54
55      node.addApplication("ping_app") do |app|         
56          app.setProperty('dest_addr', property.sinkaddr13)
57          app.setProperty('count', 30)             
58          app.setProperty('interval', 1)                 
59          app.measure('myping', :samples => 1)
60      end
61end
62
63defGroup('Source2', property.source1) do |node|
64    node.addApplication("ping_app") do |app|             
65        app.setProperty('dest_addr', property.sinkaddr21)       
66        app.setProperty('count', 30)           
67        app.setProperty('interval', 1)               
68        app.measure('myping', :samples => 1)                 
69    end               
70end
71
72defGroup('Source4', property.source3) do |node|
73      node.addApplication("ping_app") do |app|
74          app.setProperty('dest_addr', property.sinkaddr41)
75          app.setProperty('count', 30)
76          app.setProperty('interval', 1)
77          app.measure('myping', :samples => 1)
78      end
79
80      node.addApplication("ping_app") do |app|
81          app.setProperty('dest_addr', property.sinkaddr42)
82          app.setProperty('count', 30)
83          app.setProperty('interval', 1)
84          app.measure('myping', :samples => 1)
85      end
86
87      node.addApplication("ping_app") do |app|
88          app.setProperty('dest_addr', property.sinkaddr43)
89          app.setProperty('count', 30)
90          app.setProperty('interval', 1)
91          app.measure('myping', :samples => 1)
92      end
93end
94
95defGroup('Source5', property.source3) do |node|
96          node.addApplication("ping_app") do |app|
97              app.setProperty('dest_addr', property.sinkaddr51)
98              app.setProperty('count', 30)
99              app.setProperty('interval', 1)
100              app.measure('myping', :samples => 1)
101          end
102
103          node.addApplication("ping_app") do |app|
104              app.setProperty('dest_addr', property.sinkaddr52)
105              app.setProperty('count', 30)
106              app.setProperty('interval', 1)
107              app.measure('myping', :samples => 1)
108          end
109
110          node.addApplication("ping_app") do |app|
111              app.setProperty('dest_addr', property.sinkaddr53)
112              app.setProperty('count', 30)
113              app.setProperty('interval', 1)
114              app.measure('myping', :samples => 1)
115          end
116end
117
118onEvent(:ALL_UP_AND_INSTALLED) do |event|
119      info "Starting the ping"
120      allGroups.startApplications
121      wait 30
122      info "Stopping the ping"
123      allGroups.stopApplications
124      Experiment.done
125end
126
127
128defGraph 'RTT' do |g|
129  g.ms('myping').select(:oml_seq, :dest_addr, :rtt)#.where(:dest_addr => "192.168.5.12")
130  g.caption "RTT of received packets."
131  g.type 'line_chart3'
132  g.mapping :x_axis => :oml_seq, :y_axis => :rtt, :group_by => :dest_addr
133#    g.group_by(:dest_addr)
134  g.xaxis :legend => 'oml_seq'
135  g.yaxis :legend => 'rtt', :ticks => {:format => 's'}
136end
137