diff options
author | Stephen Hines <srhines@google.com> | 2017-02-08 10:44:04 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-02-08 10:44:04 +0000 |
commit | 271389dd3199539c4474c351942f4d4fa975b81b (patch) | |
tree | 87b3a32b13c392939d66fa93105896f5df0736a6 /cros_utils/locks.py | |
parent | baba90fd78c18585d22430dc95c748f96ad0c772 (diff) | |
parent | c5804ce784c39d6cf4f69139ab3197d989181cf9 (diff) | |
download | toolchain-utils-271389dd3199539c4474c351942f4d4fa975b81b.tar.gz |
Merge remote-tracking branch 'aosp/mirror-chromium-master' into initial_import am: 870a8df6fc am: 9c6fa5f9e5
am: c5804ce784
Change-Id: I5ff109272784db60dfef5145242a68779f7f0ccb
Diffstat (limited to 'cros_utils/locks.py')
-rw-r--r-- | cros_utils/locks.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/cros_utils/locks.py b/cros_utils/locks.py new file mode 100644 index 00000000..cb96368e --- /dev/null +++ b/cros_utils/locks.py @@ -0,0 +1,44 @@ +# Copyright 2015 The Chromium OS Authors. All rights reserved. +"""Utilities for locking machines.""" + +from __future__ import print_function + +import time + +import afe_lock_machine + +import logger + + +def AcquireLock(machines, chromeos_root, timeout=1200): + """Acquire lock for machine(s) with timeout, using AFE server for locking.""" + start_time = time.time() + locked = True + sleep_time = min(10, timeout / 10.0) + while True: + try: + afe_lock_machine.AFELockManager(machines, False, chromeos_root, + None).UpdateMachines(True) + break + except Exception as e: + if time.time() - start_time > timeout: + locked = False + logger.GetLogger().LogWarning( + 'Could not acquire lock on {0} within {1} seconds: {2}'.format( + repr(machines), timeout, str(e))) + break + time.sleep(sleep_time) + return locked + + +def ReleaseLock(machines, chromeos_root): + """Release locked machine(s), using AFE server for locking.""" + unlocked = True + try: + afe_lock_machine.AFELockManager(machines, False, chromeos_root, + None).UpdateMachines(False) + except Exception as e: + unlocked = False + logger.GetLogger().LogWarning('Could not unlock %s. %s' % + (repr(machines), str(e))) + return unlocked |