Skip to content

Latest commit

 

History

History
 
 

pb

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Protocol Buffers in TestGrid

TestGrid stores its configuration, state, and other information in cloud storage encoded via these protocol buffers.

Reading a Protocol Buffer

Protocol buffers can be read using the proto compiler protoc. Be sure your working directory is this repository.

This example uses gsutil to read a Configuration from Google Cloud Storage. Then, it uses protoc to decode it.

gsutil cat gs://example-bucket/config | protoc --decode=Configuration pb/config/config.proto

You need to pass protoc the proto name and file used to encode the file.

These components generally generate these types of protos:

Component Message Source
Configurator or Config Merger Configuration config.proto
Summarizer DashboardSummary summary.proto
Updater Grid (see Reading a Grid) state.proto

Reading a Grid

The Updater will compress its state as well as encoding it. To read it, you'll need to do one of the following:

  • In Go: Use DownloadGrid() or zlib.NewReader(reader)
  • In shell: Use a script that will uncompress zlib, then pipe that result to protoc

Reading an Unknown Protocol Buffer

gsutil cat gs://example-bucket/config | protoc --decode_raw

The result will use message numbers instead of message names. For example, 1 instead of test_groups

Changing a Protocol Buffer Definition

If you want to change one of the .proto files in this repository, you'll also need to regenerate the .pb.go files. Do so with this command:

bazel run //hack:update-protos