def _TryTakeControl(self, client, detect_abandonment, callback):
    former_owner_id = self.owner_id
    self._GenerateOwnerId()
    self.expiration = time.time() + Lock.ABANDONMENT_SECS if detect_abandonment else None
    self.Update(client, expected={'owner_id': former_owner_id}, callback=callback)
Sets new owner on this lock and update expiration.
dataset/ETHPy150Open viewfinderco/viewfinder/backend/db/lock.py/Lock._TryTakeControl