| # Copyright 2017 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. |
| |
| |
| # TODO(borenet): This module was copied from build.git and heavily modified to |
| # remove dependencies on other modules in build.git. It belongs in a different |
| # repo. Remove this once it has been moved. |
| |
| |
| class State(object): |
| """Copied from appengine/swarming/server/task_result.py. |
| |
| KEEP IN SYNC. |
| |
| Used to parse the 'state' value in task result. |
| """ |
| RUNNING = 0x10 # 16 |
| PENDING = 0x20 # 32 |
| EXPIRED = 0x30 # 48 |
| TIMED_OUT = 0x40 # 64 |
| BOT_DIED = 0x50 # 80 |
| CANCELED = 0x60 # 96 |
| COMPLETED = 0x70 # 112 |
| |
| STATES = ( |
| RUNNING, PENDING, EXPIRED, TIMED_OUT, BOT_DIED, CANCELED, COMPLETED) |
| STATES_RUNNING = (RUNNING, PENDING) |
| STATES_NOT_RUNNING = (EXPIRED, TIMED_OUT, BOT_DIED, CANCELED, COMPLETED) |
| STATES_DONE = (TIMED_OUT, COMPLETED) |
| STATES_ABANDONED = (EXPIRED, BOT_DIED, CANCELED) |
| |
| _NAMES = { |
| RUNNING: 'Running', |
| PENDING: 'Pending', |
| EXPIRED: 'Expired', |
| TIMED_OUT: 'Execution timed out', |
| BOT_DIED: 'Bot died', |
| CANCELED: 'User canceled', |
| COMPLETED: 'Completed', |
| } |
| |
| @classmethod |
| def to_string(cls, state): |
| """Returns a user-readable string representing a State.""" |
| return cls._NAMES[state] |