diff options
author | bpastene <bpastene@chromium.org> | 2015-10-27 17:30:43 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-28 00:31:36 +0000 |
commit | 81761c11a13626a6efc97df31bd32d5dc5d22e69 (patch) | |
tree | ba83ff4bb8e25cdd6b5e80742da15f39338c4717 /build | |
parent | 50ddc9894faa40e08311a92b874ea4040178022f (diff) | |
download | chromium_src-81761c11a13626a6efc97df31bd32d5dc5d22e69.zip chromium_src-81761c11a13626a6efc97df31bd32d5dc5d22e69.tar.gz chromium_src-81761c11a13626a6efc97df31bd32d5dc5d22e69.tar.bz2 |
add event data to blacklist file
This makes the blacklist file a bit more verbose by including time of, and reason for,
blacklisting, which makes it easier to monitor device failures. Will later need to specify the
reason arg for everything that calls Extend().
Old format:
["serial1", "serial2"]
New format:
{
"serial1": {"timestamp": 14444444444, "reason": "unauthorized"},
"serial2": {"timestamp": 14444444444, "reason": "stupid_device"},
}
BUG=482259
Review URL: https://codereview.chromium.org/1406243005
Cr-Commit-Position: refs/heads/master@{#356454}
Diffstat (limited to 'build')
-rw-r--r-- | build/android/devil/android/device_blacklist.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/build/android/devil/android/device_blacklist.py b/build/android/devil/android/device_blacklist.py index 615b3e6..cf72ecb 100644 --- a/build/android/devil/android/device_blacklist.py +++ b/build/android/devil/android/device_blacklist.py @@ -6,6 +6,7 @@ import json import logging import os import threading +import time from pylib import constants @@ -25,11 +26,11 @@ class Blacklist(object): """Reads the blacklist from the blacklist file. Returns: - A list containing bad devices. + A dict containing bad devices. """ with self._blacklist_lock: if not os.path.exists(self._path): - return [] + return dict() with open(self._path, 'r') as f: return json.load(f) @@ -42,18 +43,26 @@ class Blacklist(object): """ with self._blacklist_lock: with open(self._path, 'w') as f: - json.dump(list(set(blacklist)), f) + json.dump(blacklist, f) - def Extend(self, devices): + def Extend(self, devices, reason='unknown'): """Adds devices to blacklist file. Args: devices: list of bad devices to be added to the blacklist file. + reason: string specifying the reason for blacklist (eg: 'unauthorized') """ - logging.info('Adding %s to blacklist %s', ','.join(devices), self._path) + timestamp = time.time() + event_info = { + 'timestamp': timestamp, + 'reason': reason, + } + device_dicts = {device: event_info for device in devices} + logging.info('Adding %s to blacklist %s for reason: %s', + ','.join(devices), self._path, reason) with self._blacklist_lock: blacklist = self.Read() - blacklist.extend(devices) + blacklist.update(device_dicts) self.Write(blacklist) def Reset(self): |