50 lines
1.4 KiB
Python
Executable file
50 lines
1.4 KiB
Python
Executable file
#!/usr/bin/python -t
|
|
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import sys
|
|
import threading
|
|
import time
|
|
|
|
import common
|
|
from autotest_lib.site_utils.lib import infra
|
|
from autotest_lib.site_utils.stats import registry
|
|
|
|
|
|
def main():
|
|
"""
|
|
Runs all of the registered functions in stats/
|
|
"""
|
|
|
|
threads = []
|
|
pollers = registry.registered_functions()
|
|
|
|
for sam in infra.sam_servers():
|
|
for f in pollers.get('sam', []):
|
|
threads.append(threading.Thread(target=f, args=(sam,)))
|
|
|
|
for drone in infra.drone_servers():
|
|
for f in pollers.get('drone', []):
|
|
threads.append(threading.Thread(target=f, args=(drone,)))
|
|
|
|
for devserver in infra.devserver_servers():
|
|
for f in pollers.get('devserver', []):
|
|
threads.append(threading.Thread(target=f, args=(devserver,)))
|
|
|
|
for f in pollers.get(None, []):
|
|
threads.append(threading.Thread(target=f))
|
|
|
|
for thread in threads:
|
|
thread.daemon = True
|
|
thread.start()
|
|
|
|
# Now we want to stay responsive to ctrl-c, so we need to just idle the main
|
|
# thread. If we notice that all of our threads disappeared though, there's
|
|
# no point in continuing to run.
|
|
while threading.active_count() > 0:
|
|
time.sleep(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|