blob: e8b2be730b6788721b0064bf8c5efeb3c61d0f76 [file] [log] [blame]
Jonathan Harta061cc52013-04-30 10:41:21 -07001#!/usr/bin/env python
2
3"""
4Small script to run a stress test on a Cassandra cluster.
5The script will periodically query data from Cassandra via ONOS
6and time the request duration.
7"""
8
9import os
10import sys
11import json
12import time
13import timeit
14
15host = "localhost"
16port = "9000"
17
18url="http://%s:%s/wm/core/topology/switches/all/json" % (host, port)
19command = "curl -m 5 -s %s" % url
20
21if len(sys.argv) < 2:
22 print "usage: %s output_file" % sys.argv[0]
23 sys.exit(1)
24
25output_filename = sys.argv[1]
26output_file = open(output_filename, 'w')
27output_file.write("Time" + os.linesep)
28
29def do_request():
30 try:
31 result = os.popen(command).read()
32 parsedResult = json.loads(result)
33 except Exception as e:
34 print "Curl call failed: %s" % e
35 sys.exit(1)
36
37
38if __name__ == "__main__":
39 while (True):
40 time_elapsed = timeit.timeit('do_request()', 'from __main__ import do_request', number=1)
41 output_file.write("%s%s" % (time_elapsed, os.linesep))
42 output_file.flush()
43 time.sleep(1)