annotate talosnames/api.py @ 72:c4ba60b663fa default tip

make executable
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 07 Mar 2013 11:22:20 -0800
parents 25812a846d24
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
1 import os
6
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
2 import re
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
3 import require
13
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
4 import subprocess
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
5 import sqlite3
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
6 import sys
13
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
7 import talos
33
15f17eeb1813 full test data
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
8 import talos.run_tests
16
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
9 import tempfile
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
10 import urllib2
16
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
11 import yaml
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
12
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
13 try:
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
14 call = subprocess.check_call
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
15 except:
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
16 call = subprocess.call
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
17
13
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
18 talos_dir = os.path.dirname(os.path.abspath(talos.__file__))
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
19
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
20 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
21
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 class TalosNames(object):
42
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
23
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
24 # files for graphserver
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25 graphserver_sql = 'http://hg.mozilla.org/graphs/raw-file/tip/sql/data.sql'
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
26 schema = 'http://hg.mozilla.org/graphs/raw-file/tip/sql/schema.sql'
42
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
27
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
28 # files for buildbot
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
29 project_branches = 'http://hg.mozilla.org/build/buildbot-configs/raw-file/tip/mozilla/project_branches.py'
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
30 buildbot_config = 'http://hg.mozilla.org/build/buildbot-configs/raw-file/tip/mozilla-tests/config.py'
42
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
31 localconfig = 'http://hg.mozilla.org/build/buildbot-configs/raw-file/tip/mozilla-tests/production_config.py'
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
32
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
33 # mapping file from builbot-configs name to tbpl codes:
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
34 # http://hg.mozilla.org/users/mstange_themasta.com/tinderboxpushlog/file/tip/js/Config.js
69
25812a846d24 update to new location;
Jeff Hammel <jhammel@mozilla.com>
parents: 68
diff changeset
35 tbpl_map = 'https://hg.mozilla.org/webtools/tbpl/raw-file/tip/js/Data.js'
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
36
2
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
37 tables = {'os_list': '(id, name text)',
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
38 'branches': '(id, name text)',
2
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
39 'machines': '(id, os_id int, is_throttling int, cpu_speed text, name text, is_active int, date_added int)',
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
40 'pagesets': '(id, name text)',
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
41 'tests': '(id, name text, pretty_name text, is_chrome int, is_active int, pageset_id int)'
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
42 }
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
43
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
44 ### initialization functions
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
45
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
46 def __init__(self):
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
47 self.setup_database()
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
48 self.tbpl_mapping()
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
49 self.setup_buildbot()
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
50
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
51 # cache
17
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
52 self._talos_configs = {}
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
53 self._tbpl_names = {}
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
54
6
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
55 def setup_database(self):
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
56 self.db = sqlite3.connect(':memory:')
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
57 sql_lines = urllib2.urlopen(self.graphserver_sql).readlines()
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
58
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
59 # XXX remove the machines since they require a function, unix_timestamp(), sqlite does not have
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
60 sql_lines = [line for line in sql_lines
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
61 if 'unix_timestamp' not in line]
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
62 sql = '\n'.join(sql_lines)
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
63
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
64 cursor = self.db.cursor()
2
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
65 for table, schema in self.tables.items():
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
66 cursor.execute("""CREATE TABLE %s %s""" % (table, schema))
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
67 cursor.executescript(sql)
2
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
68 self.db.commit()
c98f2a383595 make some tables
Jeff Hammel <jhammel@mozilla.com>
parents: 1
diff changeset
69 cursor.close()
1
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
70
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
71 # create data structures
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
72 self.names = {}
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
73 self.chrome = set()
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
74 cursor = self.db.cursor()
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
75 cursor.execute("SELECT * FROM tests")
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
76 for _, short_name, graphserver_name, is_chrome, _, _ in cursor.fetchall():
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
77 self.names[short_name] = graphserver_name
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
78 if is_chrome:
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
79 self.chrome.add(short_name)
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
80 cursor.close()
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
81
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
82 def tbpl_mapping(self):
6
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
83 self.tbpl_regexs = {}
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
84 lines = [line.strip()
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
85 for line in urllib2.urlopen(self.tbpl_map).readlines()]
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
86 lines = [line for line in lines
68
78e72729582e a downstream file changed format! we better catch up!!!
Jeff Hammel <jhammel@mozilla.com>
parents: 51
diff changeset
87 if line.startswith('/talos ')]
78e72729582e a downstream file changed format! we better catch up!!!
Jeff Hammel <jhammel@mozilla.com>
parents: 51
diff changeset
88 regex = re.compile('\/talos (.*)\/.*\?.*\"([^"].*)\".*')
6
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
89 for line in lines:
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
90 match = regex.match(line)
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
91 assert match
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
92 _regex, name = match.groups()
82aad57c7d1d add regex mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 5
diff changeset
93 self.tbpl_regexs[name] = _regex
5
2d883dd59a1a stub tbpl_mapping
Jeff Hammel <jhammel@mozilla.com>
parents: 3
diff changeset
94
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
95 def setup_buildbot(self):
42
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
96 localconfig, project_branches, module = require.require(self.localconfig,
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
97 self.project_branches,
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
98 self.buildbot_config,
cc0edf61ab21 require all the things!
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
99 **{self.localconfig: "localconfig.py"})
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
100 self.suites = module.SUITES
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
101 self.buildbot_commands = {}
41
4dfa9c298e3d record whether a suite is enabled
Jeff Hammel <jhammel@mozilla.com>
parents: 33
diff changeset
102 self.buildbot_enabled = {}
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
103 for key, value in self.suites.items():
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
104 self.buildbot_commands[key] = value['suites']
41
4dfa9c298e3d record whether a suite is enabled
Jeff Hammel <jhammel@mozilla.com>
parents: 33
diff changeset
105 self.buildbot_enabled[key] = value['enable_by_default']
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
106
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
107 ### functions for fetching information
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
108
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
109 def tbpl_name(self, name):
51
601ebbbdf63e more mysteries and random guesses
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
110 """returns the TBPL long name from buildbot name"""
601ebbbdf63e more mysteries and random guesses
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
111 if name.startswith('remote-'):
601ebbbdf63e more mysteries and random guesses
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
112 name = name[len('remote-'):]
601ebbbdf63e more mysteries and random guesses
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
113
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
114 if name in self._tbpl_names:
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
115 return self._tbpl_names[name]
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
116 for tbplname, regex in self.tbpl_regexs.items():
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
117 regex = re.compile(regex)
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
118 if regex.match(name):
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
119 self._tbpl_names[name] = tbplname
10
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
120 return tbplname
1029ddf7b806 get the buildbot config
Jeff Hammel <jhammel@mozilla.com>
parents: 6
diff changeset
121
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
122 def buildbot_command(self, name):
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
123 """gets the buildbot command for a particular suite"""
23
5f39ce13fbbc what i meant
Jeff Hammel <jhammel@mozilla.com>
parents: 22
diff changeset
124 return self.buildbot_commands.get(name)[:]
12
a4aa9f83e3be adding a thing for commands
Jeff Hammel <jhammel@mozilla.com>
parents: 10
diff changeset
125
14
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
126 def talos_config(self, name):
1b18b2746e69 minor fixes
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
127 """returns talos configuration for suite `name`"""
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
128 if name in self._talos_configs:
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
129 return self._talos_configs[name]
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
130
13
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
131 command = self.buildbot_command(name)
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
132 assert command is not None, "Suite not found: %s" % name
16
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
133 outfile = tempfile.mktemp(suffix='.yml')
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
134 command += ['-o', outfile] # add an output file
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
135 command += ['-e', sys.executable] # add a pretend firefox so PerfConfigurator won't whine
30
3f7bc028d6eb better diagnostics
Jeff Hammel <jhammel@mozilla.com>
parents: 29
diff changeset
136 print "\n%s" % subprocess.list2cmdline(command)
16
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
137 call(['PerfConfigurator'] + command, stdout=subprocess.PIPE, cwd=talos_dir)
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
138 assert os.path.exists(outfile)
1713b3e244a7 add some things
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
139 config = yaml.load(file(outfile))
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 17
diff changeset
140 self._talos_configs[name] = config
17
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
141 return config
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
142
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
143 def test_config(self, name):
33
15f17eeb1813 full test data
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
144 config = self.talos_config(name)
15f17eeb1813 full test data
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
145 test_config = config['tests']
15f17eeb1813 full test data
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
146 talos.run_tests.useBaseTestDefaults(config.get('basetest', {}), test_config)
17
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
147 retval = {}
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
148 for test in test_config:
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
149 name = test.pop('name')
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
150 retval[name] = test
25e91fc7ff01 getting the test config now works
Jeff Hammel <jhammel@mozilla.com>
parents: 16
diff changeset
151 return retval
13
323a01abd180 putting off this fun for later
Jeff Hammel <jhammel@mozilla.com>
parents: 12
diff changeset
152
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
153 def __call__(self, name=None):
26
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
154 """returns the graphserver name prefixed with `name`"""
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
155
3
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
156 retval = []
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
157 for short_name, graphserver_name in self.names.items():
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
158 if (name is None) or (name == short_name or short_name.startswith(name + '_')):
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
159 retval.append((short_name, graphserver_name))
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
160 retval.sort(key=lambda x: x[0])
90e477181404 now basically works
Jeff Hammel <jhammel@mozilla.com>
parents: 2
diff changeset
161 return retval
26
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
162
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
163 def graphserver_name(self, name):
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
164 for short_name, graphserver_name in self.names.items():
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
165 if name == short_name:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 23
diff changeset
166 return (short_name, graphserver_name)