From dccbf1df30eb067e7b71ee14760187d380ff359a Mon Sep 17 00:00:00 2001 From: "vladimir%pobox.com" Date: Wed, 15 Aug 2007 16:45:42 +0000 Subject: [PATCH] b=392057, incorporate graph server fixes from vlad's tree, r=alice -- Make getdata-fake generate fake discrete data, too git-svn-id: svn://10.0.0.236/trunk@232132 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/new-graph/getdata-fake.cgi | 147 +++++++++++++++----- 1 file changed, 110 insertions(+), 37 deletions(-) diff --git a/mozilla/webtools/new-graph/getdata-fake.cgi b/mozilla/webtools/new-graph/getdata-fake.cgi index 184e6a51d91..ab7ff0112c8 100755 --- a/mozilla/webtools/new-graph/getdata-fake.cgi +++ b/mozilla/webtools/new-graph/getdata-fake.cgi @@ -1,47 +1,120 @@ -#!/usr/bin/perl +#!/usr/bin/python + +import os +import minjson as json +import random +import datetime print "Content-type: text/plain\n\n"; -#foreach my $k (keys(%ENV)) { -# print "$k => " . $ENV{$k} . "\n"; -#} +def getQuery(): + query = {} + try: + QS = os.environ["QUERY_STRING"] + querybits = QS.split("&"); + for q in querybits: + qq = q.split("=") + if len(qq) == 2: + query[qq[0]] = qq[1] + else: + query[qq[0]] = 1 + except: + pass + return query -my $QS = $ENV{"QUERY_STRING"}; -my %query = (); +query = getQuery() -{ - my @qp = split /\&/,$QS; - foreach my $q (@qp) { - my @qp1 = split /=/,$q; - $query{$qp1[0]} = $qp1[1]; - } -} +def main(): + if "type" in query and query["type"] == "continuous": + data = { + 'resultcode': 0, + 'results': [ + { 'id': 1, 'machine': 'tbox1', 'test': 'test1', 'test_type': 'perf', 'extra_data': None }, + { 'id': 4, 'machine': 'tbox2', 'test': 'test1', 'test_type': 'perf', 'extra_data': None }, + { 'id': 3, 'machine': 'tbox1', 'test': 'test3', 'test_type': 'perf', 'extra_data': None }, + { 'id': 6, 'machine': 'tbox3', 'test': 'test3', 'test_type': 'perf', 'extra_data': None }, + { 'id': 2, 'machine': 'tbox1', 'test': 'test2', 'test_type': 'perf', 'extra_data': None }, + { 'id': 5, 'machine': 'tbox2', 'test': 'test2', 'test_type': 'perf', 'extra_data': None }, + ] + } + print json.write(data) + return -if (defined($query{"setid"})) { - my $testid = $query{"setid"}; + if "type" in query and query["type"] == "discrete": + data = None + if "getlist" in query: + if "machine" in query: + data = { 'resultcode': 0, 'results': [ {'value': 'qm-pxp01'} ] } + elif "branch" in query: + data = { 'resultcode': 0, 'results': [ {'value': 1.9} ] } + elif "test" in query: + data = { 'resultcode': 0, 'results': [ {'value': "tp_CPUUsage"}, {'value': "tp_loadtime"} ] } + if data is None: + results = [] + if "test" in query: + if query["test"] == "tp_CPUUsage": + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180657203, "branch": 1.9, "test": "tp_CPUUsage", "extra_data": "branch=1.9", "id": 100}) + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180667203, "branch": 1.9, "test": "tp_CPUUsage", "extra_data": "branch=1.9", "id": 101}) + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180677203, "branch": 1.9, "test": "tp_CPUUsage", "extra_data": "branch=1.9", "id": 102}) + elif query["test"] == "tp_loadtime": + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180657203, "branch": 1.9, "test": "tp_loadtime", "extra_data": "branch=1.9", "id": 200}) + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180667203, "branch": 1.9, "test": "tp_loadtime", "extra_data": "branch=1.9", "id": 201}) + results.append({"test_type": "perf", "machine": "qm-pxp01", "date": 1180677203, "branch": 1.9, "test": "tp_loadtime", "extra_data": "branch=1.9", "id": 202}) + + data = {'resultcode': 0, 'results': results} + print json.write(data) + return - print "{ resultcode: 0, results: ["; + if "setid" in query: + setid = int(query["setid"]) - srand(); + # if less than 100, then it's a continuous set + if setid < 100: + random.seed() + + starttime = 1148589000 + + data = [] + val = int(random.random() * 100 + 200) + for z in range(500): + timeval = starttime + (z*60*20) + int(random.random() * 240 - 120); + data.append(timeval) + data.append(val) + val = val + int(random.random() * 10 - 5) + + result = { 'resultcode': 0, 'results': data } + print json.write(result) + return + + # if less than 200 then it's a CPU usage percentage thing + if setid < 200: + random.seed() + data = [] + val = int(random.random() * 100) + for z in range(500): + data.append(z) + data.append(val) + val = val + int(random.random() * 30 - 15) + val = max(min(val, 100), 0) + result = { 'resultcode': 0, 'results': data, 'stats': [100.0, 100.0, 0.0] } + print json.write(result) + return + + # dgraph stuff + if setid < 300: + random.seed() + data = [] + rawdata = [] + for z in range(20): + tname = chr(65+z) + chr(65+z) + chr(65+z) + chr(65+z) + data.append(z) + data.append(random.random() * 500) + rawdata.append(z) + rawdata.append(tname) + result = { 'resultcode': 0, 'results': data, 'annotations': [], 'baselines': {}, 'rawdata': rawdata } + print json.write(result) + return + +main() - my $lv = 200 + rand (100); - foreach my $k (1 .. 500) { - #my $kv = $k; - #my $v = $k; - my $kv = 1148589000 + ($k*60*20); - my $v = $lv; - $lv = $lv + (rand(10) - 5); - print "$kv, $v, "; - } - print "] }"; -} else { - print "{ resultcode: 0, results: [ -{ id: 1, machine: 'tbox1', test: 'test1', test_type: 'perf', extra_data: null }, -{ id: 4, machine: 'tbox2', test: 'test1', test_type: 'perf', extra_data: null }, -{ id: 3, machine: 'tbox1', test: 'test3', test_type: 'perf', extra_data: null }, -{ id: 6, machine: 'tbox3', test: 'test3', test_type: 'perf', extra_data: null }, -{ id: 2, machine: 'tbox1', test: 'test2', test_type: 'perf', extra_data: null }, -{ id: 5, machine: 'tbox2', test: 'test2', test_type: 'perf', extra_data: null }, -] }"; -}