db

package
v0.0.0-...-0e89551 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2015 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBuildEventStreamClosed = errors.New("build event stream closed")
View Source
var ErrConfigComparisonFailed = errors.New("comparison with existing config failed during save")
View Source
var ErrEndOfBuildEventStream = errors.New("end of build event stream")
View Source
var ErrLockRowNotPresentOrAlreadyDeleted = errors.New("lock could not be acquired because it didn't exist or was already cleaned up")
View Source
var ErrNoBuild = errors.New("no build found")
View Source
var ErrNoPipelines = errors.New("no pipelines configured")
View Source
var ErrNoVersions = errors.New("no versions found")

Functions

func NewNotificationsBus

func NewNotificationsBus(listener *pq.Listener) *notificationsBus

func NewPipelineDBFactory

func NewPipelineDBFactory(
	logger lager.Logger,
	sqldbConnection *sql.DB,
	bus *notificationsBus,
	pipelinesDB PipelinesDB,
) *pipelineDBFactory

Types

type Build

type Build struct {
	ID        int
	Name      string
	Status    Status
	Scheduled bool

	JobID        int
	JobName      string
	PipelineName string

	Engine         string
	EngineMetadata string

	StartTime time.Time
	EndTime   time.Time
}

func (Build) Abortable

func (b Build) Abortable() bool

func (Build) IsRunning

func (b Build) IsRunning() bool

func (Build) OneOff

func (b Build) OneOff() bool

type BuildInput

type BuildInput struct {
	Name string

	VersionedResource

	FirstOccurrence bool
}

type BuildOutput

type BuildOutput struct {
	VersionedResource
}

type BuildTrackingLock

type BuildTrackingLock int

func (BuildTrackingLock) Name

func (buildTrackingLock BuildTrackingLock) Name() string

type ConfigDB

type ConfigDB interface {
	GetConfig(pipelineName string) (atc.Config, ConfigVersion, error)
	SaveConfig(string, atc.Config, ConfigVersion, PipelinePausedState) (bool, error)
}

type ConfigVersion

type ConfigVersion int

sequence identifier used for compare-and-swap

type DB

type DB interface {
	GetBuild(buildID int) (Build, error)
	GetAllBuilds() ([]Build, error)
	GetAllStartedBuilds() ([]Build, error)

	CreatePipe(pipeGUID string, url string) error
	GetPipe(pipeGUID string) (Pipe, error)

	CreateOneOffBuild() (Build, error)

	StartBuild(buildID int, engineName, engineMetadata string) (bool, error)
	FinishBuild(buildID int, status Status) error
	ErrorBuild(buildID int, cause error) error

	SaveBuildInput(buildID int, input BuildInput) (SavedVersionedResource, error)
	SaveBuildOutput(buildID int, vr VersionedResource) (SavedVersionedResource, error)

	GetBuildEvents(buildID int, from uint) (EventSource, error)
	SaveBuildEvent(buildID int, event atc.Event) error

	AcquireWriteLockImmediately(locks []NamedLock) (Lock, error)
	AcquireWriteLock(locks []NamedLock) (Lock, error)
	AcquireReadLock(locks []NamedLock) (Lock, error)
	ListLocks() ([]string, error)

	SaveBuildEngineMetadata(buildID int, engineMetadata string) error

	AbortBuild(buildID int) error
	AbortNotifier(buildID int) (Notifier, error)

	Workers() ([]WorkerInfo, error) // auto-expires workers based on ttl
	SaveWorker(WorkerInfo, time.Duration) error

	GetConfigByBuildID(buildID int) (atc.Config, ConfigVersion, error)
}

type EventSource

type EventSource interface {
	Next() (atc.Event, error)
	Close() error
}

type Job

type Job struct {
	Name string
}

type JobHistory

type JobHistory struct {
	JobName string
	Builds  []Build
}

type JobSchedulingLock

type JobSchedulingLock string

func (JobSchedulingLock) Name

func (jobSchedulingLock JobSchedulingLock) Name() string

type JobService

type JobService struct {
	JobConfig atc.JobConfig
	DBJob     SavedJob
	DB        JobServiceDB
}

func NewJobService

func NewJobService(config atc.JobConfig, jobServiceDB JobServiceDB) (JobService, error)

func (JobService) CanBuildBeScheduled

func (s JobService) CanBuildBeScheduled(build Build) (bool, string, error)

type JobServiceDB

type JobServiceDB interface {
	GetJob(job string) (SavedJob, error)
	GetRunningBuildsBySerialGroup(jobName string, serialGroups []string) ([]Build, error)
	GetNextPendingBuildBySerialGroup(jobName string, serialGroups []string) (Build, error)
}

type Lock

type Lock interface {
	Release() error
}

type MetadataField

type MetadataField struct {
	Name  string
	Value string
}

type NamedLock

type NamedLock interface {
	Name() string
}

type Notifier

type Notifier interface {
	Notify() <-chan struct{}
	Close() error
}

type Pipe

type Pipe struct {
	ID  string
	URL string
}

type Pipeline

type Pipeline struct {
	Name    string
	Config  atc.Config
	Version ConfigVersion
}

type PipelineDB

type PipelineDB interface {
	GetPipelineName() string
	ScopedName(string) string

	Pause() error
	Unpause() error
	IsPaused() (bool, error)

	Destroy() error

	GetConfig() (atc.Config, ConfigVersion, error)

	GetResource(resourceName string) (SavedResource, error)
	GetResourceHistory(resource string) ([]*VersionHistory, error)
	PauseResource(resourceName string) error
	UnpauseResource(resourceName string) error

	SaveResourceVersions(atc.ResourceConfig, []atc.Version) error
	GetLatestVersionedResource(resource SavedResource) (SavedVersionedResource, error)
	EnableVersionedResource(resourceID int) error
	DisableVersionedResource(resourceID int) error
	SetResourceCheckError(resource SavedResource, err error) error

	GetJob(job string) (SavedJob, error)
	PauseJob(job string) error
	UnpauseJob(job string) error

	GetJobFinishedAndNextBuild(job string) (*Build, *Build, error)

	GetAllJobBuilds(job string) ([]Build, error)
	GetJobBuild(job string, build string) (Build, error)
	CreateJobBuild(job string) (Build, error)
	CreateJobBuildForCandidateInputs(job string) (Build, bool, error)

	UseInputsForBuild(buildID int, inputs []BuildInput) error

	GetLatestInputVersions([]atc.JobInput) ([]BuildInput, error)
	GetJobBuildForInputs(job string, inputs []BuildInput) (Build, error)
	GetNextPendingBuild(job string) (Build, error)

	GetCurrentBuild(job string) (Build, error)
	GetRunningBuildsBySerialGroup(jobName string, serialGrous []string) ([]Build, error)
	GetNextPendingBuildBySerialGroup(jobName string, serialGroups []string) (Build, error)

	ScheduleBuild(buildID int, job atc.JobConfig) (bool, error)
	SaveBuildInput(buildID int, input BuildInput) (SavedVersionedResource, error)
	SaveBuildOutput(buildID int, vr VersionedResource) (SavedVersionedResource, error)
	GetBuildResources(buildID int) ([]BuildInput, []BuildOutput, error)
}

type PipelineDBFactory

type PipelineDBFactory interface {
	Build(pipeline SavedPipeline) PipelineDB
	BuildWithName(pipelineName string) (PipelineDB, error)
	BuildDefault() (PipelineDB, error)
}

type PipelinePausedState

type PipelinePausedState string
const (
	PipelinePaused   PipelinePausedState = "paused"
	PipelineUnpaused PipelinePausedState = "unpaused"
	PipelineNoChange PipelinePausedState = "nochange"
)

func (PipelinePausedState) Bool

func (state PipelinePausedState) Bool() *bool

type PipelinesDB

type PipelinesDB interface {
	GetAllActivePipelines() ([]SavedPipeline, error)
	GetPipelineByName(pipelineName string) (SavedPipeline, error)

	OrderPipelines([]string) error
}

type PlanConvertingConfigDB

type PlanConvertingConfigDB struct {
	NestedDB ConfigDB
}

func (PlanConvertingConfigDB) GetConfig

func (db PlanConvertingConfigDB) GetConfig(pipelineName string) (atc.Config, ConfigVersion, error)

func (PlanConvertingConfigDB) SaveConfig

func (db PlanConvertingConfigDB) SaveConfig(pipelineName string, config atc.Config, version ConfigVersion, pausedState PipelinePausedState) (bool, error)

type Resource

type Resource struct {
	Name string
}

type ResourceCheckingLock

type ResourceCheckingLock string

func (ResourceCheckingLock) Name

func (resourceCheckingLock ResourceCheckingLock) Name() string

type SQLDB

type SQLDB struct {
	// contains filtered or unexported fields
}

func NewSQL

func NewSQL(
	logger lager.Logger,
	sqldbConnection *sql.DB,
	bus *notificationsBus,
) *SQLDB

func (*SQLDB) AbortBuild

func (db *SQLDB) AbortBuild(buildID int) error

func (*SQLDB) AbortNotifier

func (db *SQLDB) AbortNotifier(buildID int) (Notifier, error)

func (*SQLDB) AcquireReadLock

func (db *SQLDB) AcquireReadLock(lock []NamedLock) (Lock, error)

func (*SQLDB) AcquireWriteLock

func (db *SQLDB) AcquireWriteLock(lock []NamedLock) (Lock, error)

func (*SQLDB) AcquireWriteLockImmediately

func (db *SQLDB) AcquireWriteLockImmediately(lock []NamedLock) (Lock, error)

func (*SQLDB) CreateOneOffBuild

func (db *SQLDB) CreateOneOffBuild() (Build, error)

func (*SQLDB) CreatePipe

func (db *SQLDB) CreatePipe(pipeGUID string, url string) error

func (*SQLDB) ErrorBuild

func (db *SQLDB) ErrorBuild(buildID int, cause error) error

func (*SQLDB) FinishBuild

func (db *SQLDB) FinishBuild(buildID int, status Status) error

func (*SQLDB) GetAllActivePipelines

func (db *SQLDB) GetAllActivePipelines() ([]SavedPipeline, error)

func (*SQLDB) GetAllBuilds

func (db *SQLDB) GetAllBuilds() ([]Build, error)

func (*SQLDB) GetAllStartedBuilds

func (db *SQLDB) GetAllStartedBuilds() ([]Build, error)

func (*SQLDB) GetBuild

func (db *SQLDB) GetBuild(buildID int) (Build, error)

func (*SQLDB) GetBuildEvents

func (db *SQLDB) GetBuildEvents(buildID int, from uint) (EventSource, error)

func (*SQLDB) GetConfig

func (db *SQLDB) GetConfig(pipelineName string) (atc.Config, ConfigVersion, error)

func (*SQLDB) GetConfigByBuildID

func (db *SQLDB) GetConfigByBuildID(buildID int) (atc.Config, ConfigVersion, error)

func (*SQLDB) GetPipe

func (db *SQLDB) GetPipe(pipeGUID string) (Pipe, error)

func (*SQLDB) GetPipelineByName

func (db *SQLDB) GetPipelineByName(pipelineName string) (SavedPipeline, error)

func (*SQLDB) ListLocks

func (db *SQLDB) ListLocks() ([]string, error)

func (*SQLDB) OrderPipelines

func (db *SQLDB) OrderPipelines(pipelineNames []string) error

func (*SQLDB) SaveBuildEngineMetadata

func (db *SQLDB) SaveBuildEngineMetadata(buildID int, engineMetadata string) error

func (*SQLDB) SaveBuildEvent

func (db *SQLDB) SaveBuildEvent(buildID int, event atc.Event) error

func (*SQLDB) SaveBuildInput

func (db *SQLDB) SaveBuildInput(buildID int, input BuildInput) (SavedVersionedResource, error)

func (*SQLDB) SaveBuildOutput

func (db *SQLDB) SaveBuildOutput(buildID int, vr VersionedResource) (SavedVersionedResource, error)

func (*SQLDB) SaveConfig

func (db *SQLDB) SaveConfig(pipelineName string, config atc.Config, from ConfigVersion, pausedState PipelinePausedState) (bool, error)

func (*SQLDB) SaveWorker

func (db *SQLDB) SaveWorker(info WorkerInfo, ttl time.Duration) error

func (*SQLDB) StartBuild

func (db *SQLDB) StartBuild(buildID int, engine, metadata string) (bool, error)

func (*SQLDB) Workers

func (db *SQLDB) Workers() ([]WorkerInfo, error)

type SavedJob

type SavedJob struct {
	ID           int
	Paused       bool
	PipelineName string
	Job
}

type SavedPipeline

type SavedPipeline struct {
	ID     int
	Paused bool

	Pipeline
}

type SavedResource

type SavedResource struct {
	ID           int
	CheckError   error
	Paused       bool
	PipelineName string
	Resource
}

func (SavedResource) FailingToCheck

func (r SavedResource) FailingToCheck() bool

type SavedVersionedResource

type SavedVersionedResource struct {
	ID int

	Enabled bool

	VersionedResource
}

type SavedVersionedResources

type SavedVersionedResources []SavedVersionedResource

func (SavedVersionedResources) Lookup

type Source

type Source map[string]interface{}

type Status

type Status string
const (
	StatusPending   Status = "pending"
	StatusStarted   Status = "started"
	StatusAborted   Status = "aborted"
	StatusSucceeded Status = "succeeded"
	StatusFailed    Status = "failed"
	StatusErrored   Status = "errored"
	StatusPaused    Status = "paused"
)

type Version

type Version map[string]interface{}

type VersionHistory

type VersionHistory struct {
	VersionedResource SavedVersionedResource
	InputsTo          []*JobHistory
	OutputsOf         []*JobHistory
}

type VersionedResource

type VersionedResource struct {
	Resource     string
	Type         string
	Source       Source
	Version      Version
	Metadata     []MetadataField
	PipelineName string
}

type VersionedResources

type VersionedResources []VersionedResource

func (VersionedResources) Lookup

func (vrs VersionedResources) Lookup(name string) (VersionedResource, bool)

type WorkerInfo

type WorkerInfo struct {
	Addr string

	ActiveContainers int
	ResourceTypes    []atc.WorkerResourceType
	Platform         string
	Tags             []string
}

Directories

Path Synopsis
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL