zuul/doc/source/datamodel.rst
James E. Blair e4de4f44dd Add Drivers to documentation
Re-organize the "internals" section into a "Developer's Guide" with
sub-pages and add the drivers documentation as one of them.

Change-Id: Ibdf0287a7a077dfeaac6c63d1c8beca8d5f3f4be
2017-01-20 05:43:31 -08:00

2.2 KiB

Data Model

It all starts with the :py~zuul.model.Pipeline. A Pipeline is the basic organizational structure that everything else hangs off.

zuul.model.Pipeline

Pipelines have a configured :py~zuul.manager.PipelineManager which controlls how the :pyChange <zuul.model.Changeish> objects are enqueued and processed.

There are currently two, :py~zuul.manager.dependent.DependentPipelineManager and :py~zuul.manager.independent.IndependentPipelineManager

zuul.manager.PipelineManager

zuul.manager.dependent.DependentPipelineManager

zuul.manager.independent.IndependentPipelineManager

A :py~zuul.model.Pipeline has one or more :py~zuul.model.ChangeQueue objects.

zuul.model.ChangeQueue

A :py~zuul.model.Job represents the definition of what to do. A :py~zuul.model.Build represents a single run of a :py~zuul.model.Job. A :py~zuul.model.JobTree is used to encapsulate the dependencies between one or more :py~zuul.model.Job objects.

zuul.model.Job

zuul.model.JobTree

zuul.model.Build

The :py~zuul.manager.base.PipelineManager enqueues each :pyChange <zuul.model.Changeish> into the :py~zuul.model.ChangeQueue in a :py~zuul.model.QueueItem.

zuul.model.QueueItem

As the Changes are processed, each :py~zuul.model.Build is put into a :py~zuul.model.BuildSet

zuul.model.BuildSet

Changes

zuul.model.Changeish

zuul.model.Change

zuul.model.Ref

Filters

zuul.model.ChangeishFilter

zuul.model.EventFilter

Tenants

An abide is a collection of tenants.

zuul.model.Tenant

zuul.model.UnparsedAbideConfig

zuul.model.UnparsedTenantConfig

Other Global Objects

zuul.model.Project

zuul.model.Layout

zuul.model.RepoFiles

zuul.model.Worker

zuul.model.TriggerEvent