Skip to content

Latest commit

 

History

History
202 lines (115 loc) · 6.75 KB

cls-protocols.rst

File metadata and controls

202 lines (115 loc) · 6.75 KB

Protocols

To exchange information over the network between master and worker, we need to use a protocol.

buildbot.worker.protocols.base provide interfaces to implement wrappers around protocol specific calls, so other classes which use them do not need to know about protocol calls or handle protocol specific exceptions.

The following classes describe the worker -> master part of the protocol.

In order to support old workers, we must make sure we do not change the current pb protocol. This is why we implement a Impl vs Proxy method. All the objects that are referenced from the workers for remote calls have an Impl and a Proxy base class in this module.

Impl classes are subclassed by Buildbot master, and implement the actual logic for the protocol API. Proxy classes are implemented by the worker/master protocols, and implement the demux and de-serialization of protocol calls.

On worker sides, those proxy objects are replaced by a proxy object having a single method to call master side methods: