| // Copyright 2019 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. |
| |
| syntax = "proto3"; |
| |
| package test_platform.multibot; |
| |
| import "test_platform/skylab_local_state/multihost.proto"; |
| |
| // FollowerStateChange is sent over the multibot Leader->Follower channel, to |
| // carry state change information. The follower will only respect forward state |
| // changes. The same message is used internally between follower states. |
| message FollowerStateChange { |
| enum FollowerState { |
| STATE_UNDEFINED = 0x00; |
| // Follower task has started executing. Note: follower will enter this state |
| // automatically once it starts. |
| STATE_STARTED = 0x10; |
| // Follower task is waiting; payload has not started running. |
| // Note: follower will enter this state automatically after finishing |
| // prejob work and informing leader. |
| STATE_WAITING_TO_RUN_PAYLOAD = 0x20; |
| // Follower task is waiting; payload is running on leader. |
| STATE_RUNNING_PAYLOAD = 0x30; |
| // Follower task is running any necessary cleanup, after which it will |
| // terminate. |
| STATE_CLEANING = 0x40; |
| } |
| FollowerState new_state = 1; |
| } |
| |
| |
| // FollowerEvent is sent over the multibot Follower->Leader channel, to carry |
| // follower event information. The leader may use this to change state, |
| // depending on leader-specific logic and its internal state. |
| message FollowerEvent { |
| message FinishedPrejob { |
| skylab_local_state.MultiBotHostInfo host_info = 1; |
| } |
| |
| oneof event { |
| FinishedPrejob finished_prejob =1; |
| bool died = 2; |
| } |
| } |