Get desktop application:
View/edit binary Protocol Buffers messages
Service provides functionality to work with the cluster
IsNodeLeader, Check if this current node is a leader
is_leader is a boolean value indicating if this current node is a leader or not
Join, allows a calling node to make a request to join this cluster. It is required that the node that this is called into is a leader node. Refer: the specific implementation for error codes
Node ID of the node interested in joining
Address of the replica interested in joining
Leave, allows a calling node to leave the cluster. It is required that the node that this is called into is a leader node. Refer: the specific implementation for error codes
Node ID of the node requested to leave
Snaoshot, requests the server to return a user defined snapshot of the specific node.
Bury this job, if this job is in the reserved state
The job identifier of the job to be buried
Refer Job.priority, the new priority for the job
Client id of the request
proxy_id is the id of the proxy server that forwarded this request
CheckClientState queries the job state machine whether the provided list of clientIds are waiting for reservations.
proxy_id is the id of the proxy server that forwarded this request
Array of all client_ids
proxy_id is the id of the proxy server that forwarded this request
Array of all client_ids waiting for reservations
Array of all client_ids not waiting for reservations
Array of all client_ids unknown or missing on the server
Delete a job with the provided job id
The job identifier of the job to be deleted
the proxy identifier forwarding the client's request
the client identifier of the client (deleting this job)
Peek a specific job (by the JobID)
Id of the job to get
An optional job if set.
Retrieve a job statistics
Id of the job to get
Yaml representation stats (key-value pairs)
Retrieve a tube's statistics
name of the tube
Yaml representation stats (key-value pairs)
Retrieve overall statistics
Yaml representation stats (key-value pairs)
Kick this job, if this job is in a buried stated to ready state
The job identifier of the job to be Kicked
Kick at-most n jobs in this tube,
Refer Job.tube_name
bound is the maximum number of jobs to kick
The actual number of jobs kicked
Retreive a list of all Tubes
Peek a tube's buried jobs
Peek a tube's delayed jobs
Peek a tube's ready jobs
Put creates a new job with the provided job parameters The response contains the identifier of the job created
Refer Job.priority
Refer Job.delay
Refer Job.ttr
Refer Job.tube_na,e
Refer Job.body_size
Refer Job.body
The job identifier of the new job created
Release a reserved job back to either a Ready or a Delayed state
The job identifier of the job to be released
The identifier of the client asking for the release
proxy_id is the id of the proxy server that forwarded this request
A delay if set to a value > 0 marks the job as delayed
the new priority with which this job is released
Reserve is a request to reserve a channel for a client by this proxy
client id of the reservation
request id identify this reservation
reservation timeout in seconds
array of tubes to watch
the proxy identifier forwarding the client's request
StreamReserveUpdates is a streaming RPC from the server back to client Reservations are streamed as they are available for this proxy
the proxy identifier requesting reservation update
Extend a reserved job's reservation TTL by its TTR (time-to-run)
The job identifier of the job to be touched
The identifier of the client asking for the release
proxy_id is the id of the proxy server that forwarded this request
Indicates the type of operation
time in seconds from epoch this request is made
The operation request body
error code
error message (typically set if error_code > 0
The response body
Used in:
identifier of the client that requested a reservation
reservation deadline at (clock time)
boolean indicating if the client is waiting for a reservation
clock time at which the client needs some processing
request id of the current reservation request
heap index value for this client reservation
names of the tubes current watched for resrervations
Used as request type in: Cluster.IsNodeLeader, Cluster.Snapshot, JobStateMachine.GetStatsYaml, JobStateMachine.ListTubes
Used as response type in: Cluster.Join, Cluster.Leave, Cluster.Snapshot, JobStateMachine.Bury, JobStateMachine.Delete, JobStateMachine.Kick, JobStateMachine.Release, JobStateMachine.Touch
(message has no fields)
Used in: , ,
Unique identifier for job
Priority is an integer < 2**32. Jobs with smaller priority values will be scheduled before jobs with larger priorities. The most urgent priority is 0; the least urgent priority is 4,294,967,295.
delay is an integer number of seconds to wait before putting the job in the ready queue. The job will be in the "delayed" state during this time. Maximum delay is 2**32-1.
TTR/time to run -- is an integer number of seconds to allow a worker to run this job. This time is counted from the moment a worker reserves this job. If the worker does not delete, release, or bury the job within <ttr> seconds, the job will time out and the server will release the job. The minimum ttr is 1. If the client sends 0, the server will silently increase the ttr to 1. Maximum ttr is 2**32-1.
tube_name is the name of the tube associated with this job
created is the time in UTC the job is created
ready_at is the time in UTC the job is ready
expires_at is the time in UTC, when current reservation expires
state is the current state of this job
reserved_by is the identifier of the client which has reserved this job, the value is empty if un-reserved
body_size is an integer indicating the size of the job body, not including the trailing "\r\n". This value must be less than max-job-size (default: 2**16)
body is the job body -- a sequence of bytes of length BodySize
buried_at the clock time when the job is buried
reserve_count is the number of times this job has been reserved.
timeoutCount is the number of times this job has timed out during a reservation.
release_count is the number of times a client has released this job from a reservation.
bury_count is the number of times this job has been buried.
kick_count is the number of times this job has been kicked
Used in:
Used in:
Used as request type in: JobStateMachine.PeekBuried, JobStateMachine.PeekDelayed, JobStateMachine.PeekReady
the name of the tube
Used as response type in: JobStateMachine.PeekBuried, JobStateMachine.PeekDelayed, JobStateMachine.PeekReady
An optional job if set.
Used in: , ,
request_id associated with this reservation
client id assinged to this reservation
Result of this reservation
job id (assigned) if Status is matched
job body size (assigned) if Status is matched
job body (assigned) if Status is matched
error message (assigned) if Status is error
proxy_id is the id of the proxy server that forwarded this reservation request
Used in:
Unknown ~~> UnknownRS (yuck!!) Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, "Unknown" must be unique within "coolbeans.api.v1", not just within "ResultCode"
Used in:
Reservation object encapsulated in this response
Used as response type in: JobStateMachine.Reserve, JobStateMachine.StreamReserveUpdates
Reservation object encapsulated in this response
Reservations encapsulated in this response
C & P from GRPC error codes https://github.com/grpc/grpc-go/blob/master/codes/codes.go
Used in:
OK is returned on success.
Canceled indicates the operation was canceled (typically by the caller).
Unknown error. An example of where this error may be returned is if a Status value received from another address space belongs to an error-space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error.
InvalidArgument indicates client specified an invalid argument. Note that this differs from FailedPrecondition. It indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name).
DeadlineExceeded means operation expired before completion. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire.
NotFound means some requested entity (e.g., file or directory) was not found.
AlreadyExists means an attempt to create an entity failed because one already exists.
PermissionDenied indicates the caller does not have permission to execute the specified operation. It must not be used for rejections caused by exhausting some resource (use ResourceExhausted instead for those errors). It must not be used if the caller cannot be identified (use Unauthenticated instead for those errors).
ResourceExhausted indicates some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.
FailedPrecondition indicates operation was rejected because the system is not in a state required for the operation's execution. For example, directory to be deleted may be non-empty, an rmdir operation is applied to a non-directory, etc. A litmus test that may help a service implementor in deciding between FailedPrecondition, Aborted, and Unavailable: (a) Use Unavailable if the client can retry just the failing call. (b) Use Aborted if the client should retry at a higher-level (e.g., restarting a read-modify-write sequence). (c) Use FailedPrecondition if the client should not retry until the system state has been explicitly fixed. E.g., if an "rmdir" fails because the directory is non-empty, FailedPrecondition should be returned since the client should not retry unless they have first fixed up the directory by deleting files from it. (d) Use FailedPrecondition if the client performs conditional REST Get/Update/Delete on a resource and the resource on the server does not match the condition. E.g., conflicting read-modify-write on the same resource.
Aborted indicates the operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc. See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.
OutOfRange means operation was attempted past the valid range. E.g., seeking or reading past end of file. Unlike InvalidArgument, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate InvalidArgument if asked to read at an offset that is not in the range [0,2^32-1], but it will generate OutOfRange if asked to read from an offset past the current file size. There is a fair bit of overlap between FailedPrecondition and OutOfRange. We recommend using OutOfRange (the more specific error) when it applies so that callers who are iterating through a space can easily look for an OutOfRange error to detect when they are done.
Unimplemented indicates operation is not implemented or not supported/enabled in this service.
Internal errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken.
Unavailable indicates the service is currently unavailable. This is a most likely a transient condition and may be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.
DataLoss indicates unrecoverable data loss or corruption.
Unauthenticated indicates the request does not have valid authentication credentials for the operation.
Encapsulates a snap of the entire system
Array of all jobs currently in the system
Arrayy of all client reservation entries in the system
Reservations grouped by proxy id