Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(920)

Side by Side Diff: server/server_job.py

Issue 6557003: Modify autotest to support preserving minidumps generated during tests. (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 """ 1 """
2 The main job wrapper for the server side. 2 The main job wrapper for the server side.
3 3
4 This is the core infrastructure. Derived from the client side job.py 4 This is the core infrastructure. Derived from the client side job.py
5 5
6 Copyright Martin J. Bligh, Andy Whitcroft 2007 6 Copyright Martin J. Bligh, Andy Whitcroft 2007
7 """ 7 """
8 8
9 import getpass, os, sys, re, stat, tempfile, time, select, subprocess, platform 9 import getpass, os, sys, re, stat, tempfile, time, select, subprocess, platform
10 import traceback, shutil, warnings, fcntl, pickle, logging, itertools, errno 10 import traceback, shutil, warnings, fcntl, pickle, logging, itertools, errno
(...skipping 19 matching lines...) Expand all
30 CLIENT_WRAPPER_CONTROL_FILE = _control_segment_path('client_wrapper') 30 CLIENT_WRAPPER_CONTROL_FILE = _control_segment_path('client_wrapper')
31 CRASHDUMPS_CONTROL_FILE = _control_segment_path('crashdumps') 31 CRASHDUMPS_CONTROL_FILE = _control_segment_path('crashdumps')
32 CRASHINFO_CONTROL_FILE = _control_segment_path('crashinfo') 32 CRASHINFO_CONTROL_FILE = _control_segment_path('crashinfo')
33 INSTALL_CONTROL_FILE = _control_segment_path('install') 33 INSTALL_CONTROL_FILE = _control_segment_path('install')
34 CLEANUP_CONTROL_FILE = _control_segment_path('cleanup') 34 CLEANUP_CONTROL_FILE = _control_segment_path('cleanup')
35 35
36 VERIFY_CONTROL_FILE = _control_segment_path('verify') 36 VERIFY_CONTROL_FILE = _control_segment_path('verify')
37 REPAIR_CONTROL_FILE = _control_segment_path('repair') 37 REPAIR_CONTROL_FILE = _control_segment_path('repair')
38 38
39 39
40 # by default provide a stub that generates no site data
41 def _get_site_job_data_dummy(job):
42 return {}
43
44
45 # load up site-specific code for generating site-specific job data
46 get_site_job_data = utils.import_site_function(__file__,
47 "autotest_lib.server.site_server_job", "get_site_job_data",
48 _get_site_job_data_dummy)
49
50
51 class status_indenter(base_job.status_indenter): 40 class status_indenter(base_job.status_indenter):
52 """Provide a simple integer-backed status indenter.""" 41 """Provide a simple integer-backed status indenter."""
53 def __init__(self): 42 def __init__(self):
54 self._indent = 0 43 self._indent = 0
55 44
56 45
57 @property 46 @property
58 def indent(self): 47 def indent(self):
59 return self._indent 48 return self._indent
60 49
(...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after
1101 self._state.discard_namespace('client') 1090 self._state.discard_namespace('client')
1102 1091
1103 1092
1104 def clear_all_known_hosts(self): 1093 def clear_all_known_hosts(self):
1105 """Clears known hosts files for all AbstractSSHHosts.""" 1094 """Clears known hosts files for all AbstractSSHHosts."""
1106 for host in self.hosts: 1095 for host in self.hosts:
1107 if isinstance(host, abstract_ssh.AbstractSSHHost): 1096 if isinstance(host, abstract_ssh.AbstractSSHHost):
1108 host.clear_known_hosts() 1097 host.clear_known_hosts()
1109 1098
1110 1099
1100 # by default provide a stub that generates no site data
kmixter1 2011/02/23 02:00:39 was this just moved? Were you just moving it to g
thieule 2011/03/03 01:27:41 This block needed to be moved down because it impo
1101 def _get_site_job_data_dummy(job):
1102 return {}
1103
1104
1105 # load up site-specific code for generating site-specific job data
1106 get_site_job_data = utils.import_site_function(__file__,
1107 "autotest_lib.server.site_server_job", "get_site_job_data",
1108 _get_site_job_data_dummy)
1109
1110
1111 site_server_job = utils.import_site_class( 1111 site_server_job = utils.import_site_class(
1112 __file__, "autotest_lib.server.site_server_job", "site_server_job", 1112 __file__, "autotest_lib.server.site_server_job", "site_server_job",
1113 base_server_job) 1113 base_server_job)
1114 1114
1115 class server_job(site_server_job): 1115 class server_job(site_server_job):
1116 pass 1116 pass
1117 1117
1118 1118
1119 class warning_manager(object): 1119 class warning_manager(object):
1120 """Class for controlling warning logs. Manages the enabling and disabling 1120 """Class for controlling warning logs. Manages the enabling and disabling
(...skipping 19 matching lines...) Expand all
1140 intervals = self.disabled_warnings.setdefault(warning_type, []) 1140 intervals = self.disabled_warnings.setdefault(warning_type, [])
1141 if not intervals or intervals[-1][1] is not None: 1141 if not intervals or intervals[-1][1] is not None:
1142 intervals.append((int(current_time_func()), None)) 1142 intervals.append((int(current_time_func()), None))
1143 1143
1144 1144
1145 def enable_warnings(self, warning_type, current_time_func=time.time): 1145 def enable_warnings(self, warning_type, current_time_func=time.time):
1146 """As of now, enables all further warnings of this type.""" 1146 """As of now, enables all further warnings of this type."""
1147 intervals = self.disabled_warnings.get(warning_type, []) 1147 intervals = self.disabled_warnings.get(warning_type, [])
1148 if intervals and intervals[-1][1] is None: 1148 if intervals and intervals[-1][1] is None:
1149 intervals[-1] = (intervals[-1][0], int(current_time_func())) 1149 intervals[-1] = (intervals[-1][0], int(current_time_func()))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698