Index: devil/docs/device_blacklist.md |
diff --git a/devil/docs/device_blacklist.md b/devil/docs/device_blacklist.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c6eed5146d8738d332c6f3825e5a292c3ddb3daf |
--- /dev/null |
+++ b/devil/docs/device_blacklist.md |
@@ -0,0 +1,59 @@ |
+<!-- Copyright 2016 The Chromium Authors. All rights reserved. |
+ Use of this source code is governed by a BSD-style license that can be |
+ found in the LICENSE file. |
+--> |
+ |
+# Devil: Device Blacklist |
+ |
+## What is it? |
+ |
+The device blacklist is a per-run list of devices detected to be in a known bad |
+state along with the reason they are suspected of being in a bad state (offline, |
+not responding, etc). It is stored as a json file. This gets reset every run |
+during the device recovery step (currently part of `bb_device_status_check`). |
+ |
+## Bots |
+ |
+On bots, this is normally found at `//out/bad_devices.json`. If you are having |
+problems with blacklisted devices locally even though a device is in a good |
+state, you can safely delete this file. |
+ |
+# Tools for interacting with device black list. |
+ |
+You can interact with the device blacklist via [devil.android.device\_blacklist](https://cs.chromium.org/chromium/src/third_party/catapult/devil/devil/android/device_blacklist.py). |
+This allows for any interaction you would need with a device blacklist: |
+ |
+ - Reading |
+ - Writing |
+ - Extending |
+ - Resetting |
+ |
+An example usecase of this is: |
+```python |
+from devil.android import device_blacklist |
+ |
+blacklist = device_blacklist.Blacklist(blacklist_path) |
+blacklisted_devices = blacklist.Read() |
+for device in blacklisted_devices: |
+ print 'Device %s is blacklisted' % device |
+blacklist.Reset() |
+new_blacklist = {'device_id1': {'timestamp': ts, 'reason': reason}} |
+blacklist.Write(new_blacklist) |
+blacklist.Extend([device_2, device_3], reason='Reason for blacklisting') |
+``` |
+ |
+ |
+## Where it is used. |
+ |
+The blacklist file path is passed directly to the following scripts in chromium: |
+ |
+ - [test\_runner.py](https://cs.chromium.org/chromium/src/build/android/test_runner.py) |
+ - [provision\_devices.py](https://cs.chromium.org/chromium/src/build/android/provision_devices.py) |
+ - [bb\_device\_status\_check.py](https://cs.chromium.org/chromium/src/build/android/buildbot/bb_device_status_check.py) |
+ |
+The blacklist is also used in the following scripts: |
+ |
+ - [device\_status.py](https://cs.chromium.org/chromium/src/third_party/catapult/devil/devil/android/tools/device_status.py) |
+ - [device\_recovery.py](https://cs.chromium.org/chromium/src/third_party/catapult/devil/devil/android/tools/device_recovery.py) |
+ |
+ |