buildgrid.server.bots.instance module

class buildgrid.server.bots.instance.BotsInterface(scheduler: Scheduler)

Bases: Instance

SERVICE_NAME: ClassVar[str] = 'google.devtools.remoteworkers.v1test2.Bots'

The expected FULL_NAME of the Service which will wrap this instance. This value should be declared on the class of any Instance implementations.

start() None

A method called when the grpc service is starting.

This method may be overriden if startup logic is required.

stop() None

A method called when the grpc service is shutting down.

This method may be overriden if shutdown logic is required.

create_bot_session(bot_session: BotSession, context: CancellationContext, deadline: float | None = None) BotSession

Creates a new bot session. Server should assign a unique name to the session. If the bot_id already exists in the database then any leases already assigned to that id are requeued (via close_bot_session) and then the name previously associated with the bot_id is replaced with the new name in the database. If the bot_id is not in the database, a new record is created.

update_bot_session(bot_session: BotSession, context: CancellationContext, deadline: float | None = None, partial_execution_metadata: dict[str, buildgrid._protos.build.bazel.remote.execution.v2.remote_execution_pb2.ExecutedActionMetadata] | None = None) tuple[buildgrid._protos.google.devtools.remoteworkers.v1test2.bots_pb2.BotSession, list[tuple[str, bytes]]]

Client updates the server. Any changes in state to the Lease should be registered server side. Assigns available leases with work.

count_bots_by_status() dict[buildgrid.server.enums.BotStatus, int]