Add proper per-file copyright notices/licenses and top-level license.
[bluesky.git] / cloudbench / latency-plot.py
1 #!/usr/bin/python
2 #
3 # Copyright (C) 2010  The Regents of the University of California
4 # Written by Michael Vrable <mvrable@cs.ucsd.edu>
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the distribution.
14 # 3. Neither the name of the University nor the names of its contributors
15 #    may be used to endorse or promote products derived from this software
16 #    without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # SUCH DAMAGE.
29
30 import sys
31
32 lines = list(open('delays.data'))
33 classes = set()
34 classes.add("")
35 for line in lines:
36     line = line.strip().split('\t')
37     try:
38         classes.add(line[3])
39     except:
40         pass
41
42 cmd = "plot"
43 replace = {}
44 n = 0
45 print classes
46 for c in sorted(classes):
47     if n > 0:
48         cmd += ","
49     cmd += ' "delays-1.data" using ($4 == %d ? $2 : 1.0/0.0):1 title "%s"' % (n, c or 'NORMAL')
50     replace[c] = n
51     n += 1
52
53 print cmd
54
55 fp = open('delays-1.data', 'w')
56 for line in lines:
57     line = line.strip().split('\t')
58     while len(line) < 4: line.append("")
59     line[3] = str(replace[line[3]])
60     fp.write('\t'.join(line) + '\n')