xref: /aosp_15_r20/external/cronet/build/android/host_heartbeat.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env vpython3
2*6777b538SAndroid Build Coastguard Worker#
3*6777b538SAndroid Build Coastguard Worker# Copyright 2013 The Chromium Authors
4*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
5*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker"""Sends a heart beat pulse to the currently online Android devices.
8*6777b538SAndroid Build Coastguard WorkerThis heart beat lets the devices know that they are connected to a host.
9*6777b538SAndroid Build Coastguard Worker"""
10*6777b538SAndroid Build Coastguard Worker# pylint: disable=W0702
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Workerimport sys
13*6777b538SAndroid Build Coastguard Workerimport time
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard Workerimport devil_chromium
16*6777b538SAndroid Build Coastguard Workerfrom devil.android import device_utils
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard WorkerPULSE_PERIOD = 20
19*6777b538SAndroid Build Coastguard Worker
20*6777b538SAndroid Build Coastguard Workerdef main():
21*6777b538SAndroid Build Coastguard Worker  devil_chromium.Initialize()
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Worker  while True:
24*6777b538SAndroid Build Coastguard Worker    try:
25*6777b538SAndroid Build Coastguard Worker      devices = device_utils.DeviceUtils.HealthyDevices(denylist=None)
26*6777b538SAndroid Build Coastguard Worker      for d in devices:
27*6777b538SAndroid Build Coastguard Worker        d.RunShellCommand(['touch', '/sdcard/host_heartbeat'],
28*6777b538SAndroid Build Coastguard Worker                          check_return=True)
29*6777b538SAndroid Build Coastguard Worker    except:
30*6777b538SAndroid Build Coastguard Worker      # Keep the heatbeat running bypassing all errors.
31*6777b538SAndroid Build Coastguard Worker      pass
32*6777b538SAndroid Build Coastguard Worker    time.sleep(PULSE_PERIOD)
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Worker
35*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__':
36*6777b538SAndroid Build Coastguard Worker  sys.exit(main())
37