summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorbpastene <bpastene@chromium.org>2015-10-27 17:30:43 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-28 00:31:36 +0000
commit81761c11a13626a6efc97df31bd32d5dc5d22e69 (patch)
treeba83ff4bb8e25cdd6b5e80742da15f39338c4717 /build
parent50ddc9894faa40e08311a92b874ea4040178022f (diff)
downloadchromium_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.py21
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):