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

Side by Side Diff: client/bin/site_logging.py

Issue 5740004: Move site_chrome_test, site_logging, site_log_reader, site_crash_test into cros dir. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: patch Created 10 years 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
(Empty)
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging, os, re
6 from autotest_lib.client.bin import site_log_reader, site_utils, test
7 from autotest_lib.client.common_lib import error, utils
8 from autotest_lib.client.cros.constants import CLEANUP_LOGS_PAUSED_FILE
9
10 class LogRotationPauser(object):
11 """
12 Class to control when logs are rotated from either server or client.
13
14 Assumes all setting of CLEANUP_LOGS_PAUSED_FILE is done by this class
15 and that all calls to begin and end are properly
16 nested. For instance, [ a.begin(), b.begin(), b.end(), a.end() ] is
17 supported, but [ a.begin(), b.begin(), a.end(), b.end() ] is not.
18 We do support redundant calls to the same class, such as
19 [ a.begin(), a.begin(), a.end() ].
20 """
21 def __init__(self, host=None):
22 self._host = host
23 self._begun = False
24 self._is_nested = True
25
26
27 def _run(self, command, *args, **dargs):
28 if self._host:
29 return self._host.run(command, *args, **dargs).exit_status
30 else:
31 return utils.system(command, *args, **dargs)
32
33
34 def begin(self):
35 """Make sure that log rotation is disabled."""
36 if self._begun:
37 return
38 self._is_nested = (self._run(('[ -r %s ]' %
39 CLEANUP_LOGS_PAUSED_FILE),
40 ignore_status=True) == 0)
41 if self._is_nested:
42 logging.info('File %s was already present' %
43 CLEANUP_LOGS_PAUSED_FILE)
44 else:
45 self._run('touch ' + CLEANUP_LOGS_PAUSED_FILE)
46 self._begun = True
47
48
49 def end(self):
50 assert self._begun
51 if not self._is_nested:
52 self._run('rm -f ' + CLEANUP_LOGS_PAUSED_FILE)
53 else:
54 logging.info('Leaving existing %s file' % CLEANUP_LOGS_PAUSED_FILE)
55 self._begun = False
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698