Documentation ¶
Index ¶
- Constants
- Variables
- func Close(c io.Closer)
- func Rollback(tx Tx)
- func SetupConnectionRetryingDriver(delegateDriverName, sqlDataSource, newDriverName string)
- type BaseResourceType
- type BaseResourceTypeFactory
- type Build
- type BuildFactory
- type BuildInput
- type BuildOutput
- type BuildPreparation
- type BuildPreparationStatus
- type BuildStatus
- type Cause
- type ConfigVersion
- type Conn
- type ConnectionSession
- type ConnectionTracker
- type Container
- type ContainerMetadata
- type ContainerOwner
- func NewBuildStepContainerOwner(buildID int, planID atc.PlanID) ContainerOwner
- func NewImageCheckContainerOwner(container CreatingContainer) ContainerOwner
- func NewImageGetContainerOwner(container CreatingContainer) ContainerOwner
- func NewResourceConfigCheckSessionContainerOwner(resourceConfigCheckSession ResourceConfigCheckSession, teamID int) ContainerOwner
- type ContainerOwnerExpiries
- type ContainerRepository
- type ContainerState
- type ContainerType
- type CreatedContainer
- type CreatedVolume
- type CreatingContainer
- type CreatingVolume
- type Dashboard
- type DashboardJob
- type DestroyingContainer
- type DestroyingVolume
- type ErrCustomResourceTypeVersionNotFound
- type ErrResourceNotFound
- type ErrVolumeMarkCreatedFailed
- type ErrVolumeMarkStateFailed
- type EventSource
- type FailedContainer
- type FailedVolume
- type FirstLoggedBuildIDDecreasedError
- type Job
- type JobFactory
- type Jobs
- type MissingInputReasons
- type NotificationsBus
- type Notifier
- type Page
- type Pagination
- type Pipe
- type Pipeline
- type PipelineFactory
- type PipelinePausedState
- type Resource
- type ResourceCache
- type ResourceCacheFactory
- type ResourceCacheLifecycle
- type ResourceCacheUser
- type ResourceConfig
- type ResourceConfigCheckSession
- type ResourceConfigCheckSessionFactory
- type ResourceConfigCheckSessionLifecycle
- type ResourceConfigFactory
- type ResourceFactory
- type ResourceMetadataField
- type ResourceMetadataFields
- type ResourceNotFoundError
- type ResourceType
- type ResourceTypeNotFoundError
- type ResourceTypes
- type ResourceVersion
- type Resources
- type SavedVersionedResource
- type SavedVersionedResources
- type Team
- type TeamFactory
- type Tx
- type UsedBaseResourceType
- type UsedResourceCache
- type UsedResourceConfig
- type UsedWorkerBaseResourceType
- type UsedWorkerResourceCache
- type UsedWorkerResourceCerts
- type UsedWorkerResourceType
- type UsedWorkerTaskCache
- type VersionedResource
- type VolumeRepository
- type VolumeResourceType
- type VolumeState
- type VolumeType
- type Worker
- type WorkerBaseResourceType
- type WorkerBaseResourceTypeAlreadyExistsError
- type WorkerBaseResourceTypeFactory
- type WorkerFactory
- type WorkerLifecycle
- type WorkerResourceCache
- type WorkerResourceCerts
- type WorkerResourceType
- type WorkerState
- type WorkerTaskCache
- type WorkerTaskCacheFactory
Constants ¶
const ( NoVerionsSatisfiedPassedConstraints string = "no versions satisfy passed constraints" NoVersionsAvailable string = "no versions available" )
const ( ContainerStateCreated = "created" ContainerStateCreating = "creating" ContainerStateDestroying = "destroying" ContainerStateFailed = "failed" )
const ( WorkerStateRunning = WorkerState("running") WorkerStateStalled = WorkerState("stalled") WorkerStateLanding = WorkerState("landing") WorkerStateLanded = WorkerState("landed") WorkerStateRetiring = WorkerState("retiring") )
Variables ¶
var ( ErrVolumeCannotBeDestroyedWithChildrenPresent = errors.New("volume cannot be destroyed as children are present") ErrVolumeStateTransitionFailed = errors.New("could not transition volume state") ErrVolumeMissing = errors.New("volume no longer in db") ErrInvalidResourceCache = errors.New("invalid resource cache") )
var ( ErrWorkerNotPresent = errors.New("worker-not-present-in-db") ErrCannotPruneRunningWorker = errors.New("worker-not-stalled-for-pruning") )
var ErrBaseResourceTypeAlreadyExists = errors.New("base-resource-type-already-exists")
var ErrBuildDisappeared = errors.New("build-disappeared-from-db")
var ErrBuildEventStreamClosed = errors.New("build event stream closed")
var ErrConfigComparisonFailed = errors.New("comparison with existing config failed during save")
var ErrContainerDisappeared = errors.New("container disappeared from db")
var ErrEncryptedWithUnknownKey = errors.New("row encrypted with neither old nor new key")
var ErrEndOfBuildEventStream = errors.New("end of build event stream")
var ErrResourceCacheAlreadyExists = errors.New("resource-cache-already-exists")
var ErrResourceCacheDisappeared = errors.New("resource-cache-disappeared")
var ErrResourceConfigAlreadyExists = errors.New("resource config already exists")
var ErrResourceConfigDisappeared = errors.New("resource config disappeared")
var ErrResourceConfigParentDisappeared = errors.New("resource config parent disappeared")
var ErrSafeRetryCreateOrUpdate = errors.New("failed-to-run-safe-create-or-update-retrying")
var ErrSafeRetryFindOrCreate = errors.New("failed-to-run-safe-find-or-create-retrying")
var ErrWorkerBaseResourceTypeDisappeared = errors.New("worker base resource type disappeared")
var ErrWorkerResourceTypeNotFound = errors.New("worker resource type no longer exists (stale?)")
var GlobalConnectionTracker = NewConnectionTracker()
Functions ¶
func Close ¶
Close ignores errors, and should used with defer. makes errcheck happy that those errs are captured
func Rollback ¶
func Rollback(tx Tx)
Rollback ignores errors, and should be used with defer. makes errcheck happy that those errs are captured
func SetupConnectionRetryingDriver ¶
func SetupConnectionRetryingDriver(delegateDriverName, sqlDataSource, newDriverName string)
Types ¶
type BaseResourceType ¶
type BaseResourceType struct {
Name string // The name of the type, e.g. 'git'.
}
BaseResourceType represents a resource type provided by workers.
It is created via worker registration. All creates are upserts.
It is removed by gc.BaseResourceTypeCollector, once there are no references to it from worker_base_resource_types.
func (BaseResourceType) Find ¶
func (brt BaseResourceType) Find(tx Tx) (*UsedBaseResourceType, bool, error)
func (BaseResourceType) FindOrCreate ¶
func (brt BaseResourceType) FindOrCreate(tx Tx) (*UsedBaseResourceType, error)
FindOrCreate looks for an existing BaseResourceType and creates it if it doesn't exist. It returns a UsedBaseResourceType.
Note that if the BaseResourceType already existed, there's a chance that it will be garbage-collected before the referencing ResourceConfig can be created and used.
This method can return ErrBaseResourceTypeAlreadyExists if two concurrent FindOrCreates clashed. The caller should retry from the start of the transaction.
type BaseResourceTypeFactory ¶
type BaseResourceTypeFactory interface {
Find(name string) (*UsedBaseResourceType, bool, error)
}
func NewBaseResourceTypeFactory ¶
func NewBaseResourceTypeFactory(conn Conn) BaseResourceTypeFactory
type Build ¶
type Build interface { ID() int Name() string JobID() int JobName() string PipelineID() int PipelineName() string TeamID() int TeamName() string Engine() string EngineMetadata() string PublicPlan() *json.RawMessage Status() BuildStatus StartTime() time.Time EndTime() time.Time ReapTime() time.Time Tracker() string IsManuallyTriggered() bool IsScheduled() bool IsRunning() bool Reload() (bool, error) AcquireTrackingLock(logger lager.Logger, interval time.Duration) (lock.Lock, bool, error) TrackedBy(peerURL string) error Interceptible() (bool, error) Preparation() (BuildPreparation, bool, error) Start(string, string, atc.Plan) (bool, error) FinishWithError(cause error) error Finish(BuildStatus) error SetInterceptible(bool) error Events(uint) (EventSource, error) SaveEvent(event atc.Event) error SaveInput(input BuildInput) error SaveOutput(vr VersionedResource) error UseInputs(inputs []BuildInput) error Resources() ([]BuildInput, []BuildOutput, error) GetVersionedResources() (SavedVersionedResources, error) SaveImageResourceVersion(*UsedResourceCache) error Pipeline() (Pipeline, bool, error) Delete() (bool, error) MarkAsAborted() error AbortNotifier() (Notifier, error) Schedule() (bool, error) }
type BuildFactory ¶
type BuildFactory interface { Build(int) (Build, bool, error) VisibleBuilds([]string, Page) ([]Build, Pagination, error) PublicBuilds(Page) ([]Build, Pagination, error) GetAllStartedBuilds() ([]Build, error) // TODO: move to BuildLifecycle, new interface (see WorkerLifecycle) MarkNonInterceptibleBuilds() error }
func NewBuildFactory ¶
func NewBuildFactory(conn Conn, lockFactory lock.LockFactory) BuildFactory
type BuildInput ¶
type BuildInput struct { Name string VersionedResource FirstOccurrence bool }
type BuildOutput ¶
type BuildOutput struct {
VersionedResource
}
type BuildPreparation ¶
type BuildPreparation struct { BuildID int PausedPipeline BuildPreparationStatus PausedJob BuildPreparationStatus MaxRunningBuilds BuildPreparationStatus Inputs map[string]BuildPreparationStatus InputsSatisfied BuildPreparationStatus MissingInputReasons MissingInputReasons }
type BuildPreparationStatus ¶
type BuildPreparationStatus string
const ( BuildPreparationStatusUnknown BuildPreparationStatus = "unknown" BuildPreparationStatusBlocking BuildPreparationStatus = "blocking" BuildPreparationStatusNotBlocking BuildPreparationStatus = "not_blocking" )
type BuildStatus ¶
type BuildStatus string
const ( BuildStatusPending BuildStatus = "pending" BuildStatusStarted BuildStatus = "started" BuildStatusAborted BuildStatus = "aborted" BuildStatusSucceeded BuildStatus = "succeeded" BuildStatusFailed BuildStatus = "failed" BuildStatusErrored BuildStatus = "errored" )
type ConfigVersion ¶
type ConfigVersion int
ConfigVersion is a sequence identifier used for compare-and-swap
type Conn ¶
type Conn interface { Bus() NotificationsBus EncryptionStrategy() encryption.Strategy Ping() error Driver() driver.Driver Begin() (Tx, error) Exec(query string, args ...interface{}) (sql.Result, error) Prepare(query string) (*sql.Stmt, error) Query(query string, args ...interface{}) (*sql.Rows, error) QueryRow(query string, args ...interface{}) squirrel.RowScanner SetMaxIdleConns(n int) SetMaxOpenConns(n int) Stats() sql.DBStats Close() error Name() string }
func Open ¶
func Open(logger lager.Logger, sqlDriver string, sqlDataSource string, newKey *encryption.Key, oldKey *encryption.Key, connectionName string, lockFactory lock.LockFactory) (Conn, error)
type ConnectionSession ¶
type ConnectionSession struct {
// contains filtered or unexported fields
}
func (*ConnectionSession) Release ¶
func (session *ConnectionSession) Release()
type ConnectionTracker ¶
type ConnectionTracker struct {
// contains filtered or unexported fields
}
func NewConnectionTracker ¶
func NewConnectionTracker() *ConnectionTracker
func (*ConnectionTracker) Current ¶
func (tracker *ConnectionTracker) Current() []string
func (*ConnectionTracker) Track ¶
func (tracker *ConnectionTracker) Track() *ConnectionSession
type Container ¶
type Container interface { ID() int Handle() string WorkerName() string Metadata() ContainerMetadata }
type ContainerMetadata ¶
type ContainerMetadata struct { Type ContainerType StepName string Attempt string WorkingDirectory string User string PipelineID int JobID int BuildID int PipelineName string JobName string BuildName string }
func (ContainerMetadata) SQLMap ¶
func (metadata ContainerMetadata) SQLMap() map[string]interface{}
func (*ContainerMetadata) ScanTargets ¶
func (metadata *ContainerMetadata) ScanTargets() []interface{}
type ContainerOwner ¶
type ContainerOwner interface { Find(conn Conn) (sq.Eq, bool, error) Create(tx Tx, workerName string) (map[string]interface{}, error) }
ContainerOwner designates the data the container should reference that identifies its lifecycle. When the owner goes away, the container should be garbage collected.
func NewBuildStepContainerOwner ¶
func NewBuildStepContainerOwner( buildID int, planID atc.PlanID, ) ContainerOwner
NewBuildStepContainerOwner references a step within a build. When the build becomes non-interceptible or disappears, the container can be removed.
func NewImageCheckContainerOwner ¶
func NewImageCheckContainerOwner( container CreatingContainer, ) ContainerOwner
NewImageCheckContainerOwner references a container whose image resource this container is checking. When the referenced container transitions to another state, or disappears, the container can be removed.
func NewImageGetContainerOwner ¶
func NewImageGetContainerOwner( container CreatingContainer, ) ContainerOwner
NewImageGetContainerOwner references a container whose image resource this container is fetching. When the referenced container transitions to another state, or disappears, the container can be removed.
func NewResourceConfigCheckSessionContainerOwner ¶
func NewResourceConfigCheckSessionContainerOwner( resourceConfigCheckSession ResourceConfigCheckSession, teamID int, ) ContainerOwner
NewResourceConfigCheckSessionContainerOwner references a resource config and worker base resource type, with an expiry. When the resource config or worker base resource type disappear, or the expiry is reached, the container can be removed.
type ContainerOwnerExpiries ¶
type ContainerRepository ¶
type ContainerRepository interface { FindOrphanedContainers() ([]CreatingContainer, []CreatedContainer, []DestroyingContainer, error) DestroyFailedContainers() (int, error) FindDestroyingContainers(workerName string) ([]string, error) RemoveDestroyingContainers(workerName string, currentHandles []string) (int, error) }
func NewContainerRepository ¶
func NewContainerRepository(conn Conn) ContainerRepository
type ContainerState ¶
type ContainerState string
type ContainerType ¶
type ContainerType string
const ( ContainerTypeCheck ContainerType = "check" ContainerTypeGet ContainerType = "get" ContainerTypePut ContainerType = "put" ContainerTypeTask ContainerType = "task" )
func ContainerTypeFromString ¶
func ContainerTypeFromString(containerType string) (ContainerType, error)
type CreatedContainer ¶
type CreatedContainer interface { Container Discontinue() (DestroyingContainer, error) Destroying() (DestroyingContainer, error) IsHijacked() bool MarkAsHijacked() error }
type CreatedVolume ¶
type CreatedVolume interface { Handle() string Path() string Type() VolumeType TeamID() int CreateChildForContainer(CreatingContainer, string) (CreatingVolume, error) Destroying() (DestroyingVolume, error) WorkerName() string InitializeResourceCache(*UsedResourceCache) error InitializeTaskCache(int, string, string) error ContainerHandle() string ParentHandle() string ResourceType() (*VolumeResourceType, error) BaseResourceType() (*UsedWorkerBaseResourceType, error) TaskIdentifier() (string, string, string, error) }
type CreatingContainer ¶
type CreatingContainer interface { Container Created() (CreatedContainer, error) Failed() (FailedContainer, error) }
type CreatingVolume ¶
type CreatingVolume interface { Handle() string ID() int Created() (CreatedVolume, error) Failed() (FailedVolume, error) }
type Dashboard ¶
type Dashboard []DashboardJob
type DashboardJob ¶
type DestroyingContainer ¶
type DestroyingVolume ¶
type ErrCustomResourceTypeVersionNotFound ¶
type ErrCustomResourceTypeVersionNotFound struct {
Name string
}
func (ErrCustomResourceTypeVersionNotFound) Error ¶
func (e ErrCustomResourceTypeVersionNotFound) Error() string
type ErrResourceNotFound ¶
type ErrResourceNotFound struct {
Name string
}
func (ErrResourceNotFound) Error ¶
func (e ErrResourceNotFound) Error() string
type ErrVolumeMarkCreatedFailed ¶
type ErrVolumeMarkCreatedFailed struct {
Handle string
}
func (ErrVolumeMarkCreatedFailed) Error ¶
func (e ErrVolumeMarkCreatedFailed) Error() string
type ErrVolumeMarkStateFailed ¶
type ErrVolumeMarkStateFailed struct {
State VolumeState
}
func (ErrVolumeMarkStateFailed) Error ¶
func (e ErrVolumeMarkStateFailed) Error() string
type FailedContainer ¶
type FailedVolume ¶
type FirstLoggedBuildIDDecreasedError ¶
func (FirstLoggedBuildIDDecreasedError) Error ¶
func (e FirstLoggedBuildIDDecreasedError) Error() string
type Job ¶
type Job interface { ID() int Name() string Paused() bool FirstLoggedBuildID() int PipelineID() int PipelineName() string TeamID() int TeamName() string Config() atc.JobConfig Tags() []string Reload() (bool, error) Pause() error Unpause() error CreateBuild() (Build, error) Builds(page Page) ([]Build, Pagination, error) Build(name string) (Build, bool, error) FinishedAndNextBuild() (Build, Build, error) UpdateFirstLoggedBuildID(newFirstLoggedBuildID int) error EnsurePendingBuildExists() error GetPendingBuilds() ([]Build, error) GetIndependentBuildInputs() ([]BuildInput, error) GetNextBuildInputs() ([]BuildInput, bool, error) SaveNextInputMapping(inputMapping algorithm.InputMapping) error SaveIndependentInputMapping(inputMapping algorithm.InputMapping) error DeleteNextInputMapping() error SetMaxInFlightReached(bool) error GetRunningBuildsBySerialGroup(serialGroups []string) ([]Build, error) GetNextPendingBuildBySerialGroup(serialGroups []string) (Build, bool, error) }
type JobFactory ¶
func NewJobFactory ¶
func NewJobFactory(conn Conn, lockFactory lock.LockFactory) JobFactory
type MissingInputReasons ¶
func (MissingInputReasons) RegisterNoVersions ¶
func (mir MissingInputReasons) RegisterNoVersions(inputName string)
func (MissingInputReasons) RegisterPassedConstraint ¶
func (mir MissingInputReasons) RegisterPassedConstraint(inputName string)
func (MissingInputReasons) RegisterPinnedVersionUnavailable ¶
func (mir MissingInputReasons) RegisterPinnedVersionUnavailable(inputName string, version string)
type NotificationsBus ¶
type NotificationsBus interface { Listen(channel string) (chan bool, error) Notify(channel string) error Unlisten(channel string, notify chan bool) error Close() error }
func NewNotificationsBus ¶
func NewNotificationsBus(listener *pq.Listener, conn *sql.DB) NotificationsBus
type Pagination ¶
type Pipeline ¶
type Pipeline interface { ID() int Name() string TeamID() int TeamName() string Groups() atc.GroupConfigs ConfigVersion() ConfigVersion Public() bool Paused() bool ScopedName(string) string CheckPaused() (bool, error) Reload() (bool, error) Causality(versionedResourceID int) ([]Cause, error) SetResourceCheckError(Resource, error) error SaveResourceVersions(atc.ResourceConfig, []atc.Version) error GetResourceVersions(resourceName string, page Page) ([]SavedVersionedResource, Pagination, bool, error) GetAllPendingBuilds() (map[string][]Build, error) GetLatestVersionedResource(resourceName string) (SavedVersionedResource, bool, error) GetVersionedResourceByVersion(atcVersion atc.Version, resourceName string) (SavedVersionedResource, bool, error) VersionedResource(versionedResourceID int) (SavedVersionedResource, bool, error) DisableVersionedResource(versionedResourceID int) error EnableVersionedResource(versionedResourceID int) error GetBuildsWithVersionAsInput(versionedResourceID int) ([]Build, error) GetBuildsWithVersionAsOutput(versionedResourceID int) ([]Build, error) Builds(page Page) ([]Build, Pagination, error) DeleteBuildEventsByBuildIDs(buildIDs []int) error AcquireSchedulingLock(lager.Logger, time.Duration) (lock.Lock, bool, error) AcquireResourceCheckingLockWithIntervalCheck( logger lager.Logger, resourceName string, usedResourceConfig *UsedResourceConfig, interval time.Duration, immediate bool, ) (lock.Lock, bool, error) AcquireResourceTypeCheckingLockWithIntervalCheck( logger lager.Logger, resourceTypeName string, usedResourceConfig *UsedResourceConfig, interval time.Duration, immediate bool, ) (lock.Lock, bool, error) LoadVersionsDB() (*algorithm.VersionsDB, error) Resource(name string) (Resource, bool, error) Resources() (Resources, error) ResourceTypes() (ResourceTypes, error) ResourceType(name string) (ResourceType, bool, error) Job(name string) (Job, bool, error) Jobs() (Jobs, error) Dashboard() (Dashboard, error) Expose() error Hide() error Pause() error Unpause() error Destroy() error Rename(string) error CreateOneOffBuild() (Build, error) }
type PipelineFactory ¶
type PipelineFactory interface { VisiblePipelines([]string) ([]Pipeline, error) AllPipelines() ([]Pipeline, error) }
func NewPipelineFactory ¶
func NewPipelineFactory(conn Conn, lockFactory lock.LockFactory) PipelineFactory
type PipelinePausedState ¶
type PipelinePausedState string
const ( PipelinePaused PipelinePausedState = "paused" PipelineUnpaused PipelinePausedState = "unpaused" PipelineNoChange PipelinePausedState = "nochange" )
func (PipelinePausedState) Bool ¶
func (state PipelinePausedState) Bool() *bool
type Resource ¶
type Resource interface { ID() int Name() string PipelineName() string TeamName() string Type() string Source() atc.Source CheckEvery() string LastChecked() time.Time Tags() atc.Tags CheckError() error Paused() bool WebhookToken() string FailingToCheck() bool SetResourceConfig(int) error Pause() error Unpause() error Reload() (bool, error) }
type ResourceCache ¶
type ResourceCache struct { ResourceConfig ResourceConfig // The resource configuration. Version atc.Version // The version of the resource. Params atc.Params // The params used when fetching the version. }
ResourceCache represents an instance of a ResourceConfig's version.
A ResourceCache is created by a `get`, an `image_resource`, or a resource type in a pipeline.
ResourceCaches are garbage-collected by gc.ResourceCacheCollector.
func (ResourceCache) Find ¶
func (cache ResourceCache) Find(tx Tx) (*UsedResourceCache, bool, error)
type ResourceCacheFactory ¶
type ResourceCacheFactory interface { FindOrCreateResourceCache( logger lager.Logger, resourceCacheUser ResourceCacheUser, resourceTypeName string, version atc.Version, source atc.Source, params atc.Params, resourceTypes creds.VersionedResourceTypes, ) (*UsedResourceCache, error) // changing resource cache to interface to allow updates on object is not feasible. // Since we need to pass it recursively in UsedResourceConfig. // Also, metadata will be available to us before we create resource cache so this // method can be removed at that point. See https://github.com/concourse/concourse/issues/534 UpdateResourceCacheMetadata(*UsedResourceCache, []atc.MetadataField) error ResourceCacheMetadata(*UsedResourceCache) (ResourceMetadataFields, error) }
func NewResourceCacheFactory ¶
func NewResourceCacheFactory(conn Conn) ResourceCacheFactory
type ResourceCacheLifecycle ¶
type ResourceCacheLifecycle interface { CleanUsesForFinishedBuilds(lager.Logger) error CleanBuildImageResourceCaches(lager.Logger) error CleanUpInvalidCaches(lager.Logger) error }
func NewResourceCacheLifecycle ¶
func NewResourceCacheLifecycle(conn Conn) ResourceCacheLifecycle
type ResourceCacheUser ¶
type ResourceCacheUser interface {
SQLMap() map[string]interface{}
}
ResourceCacheUser designates the column to set in the resource_cache_users table.
func ForBuild ¶
func ForBuild(id int) ResourceCacheUser
func ForContainer ¶
func ForContainer(id int) ResourceCacheUser
type ResourceConfig ¶
type ResourceConfig struct { // A resource type provided by a resource. CreatedByResourceCache *ResourceCache // A resource type provided by a worker. CreatedByBaseResourceType *BaseResourceType // The resource's source configuration. Source atc.Source }
ResourceConfig represents a resource type and config source.
Resources in a pipeline, resource types in a pipeline, and `image_resource` fields in a task all result in a reference to a ResourceConfig.
ResourceConfigs are garbage-collected by gc.ResourceConfigCollector.
func (ResourceConfig) Find ¶
func (resourceConfig ResourceConfig) Find(tx Tx) (*UsedResourceConfig, bool, error)
type ResourceConfigCheckSession ¶
type ResourceConfigCheckSession interface { ID() int ResourceConfig() *UsedResourceConfig }
type ResourceConfigCheckSessionFactory ¶
type ResourceConfigCheckSessionFactory interface { FindOrCreateResourceConfigCheckSession( logger lager.Logger, resourceType string, source atc.Source, resourceTypes creds.VersionedResourceTypes, expiries ContainerOwnerExpiries, ) (ResourceConfigCheckSession, error) }
func NewResourceConfigCheckSessionFactory ¶
func NewResourceConfigCheckSessionFactory(conn Conn, lockFactory lock.LockFactory) ResourceConfigCheckSessionFactory
type ResourceConfigCheckSessionLifecycle ¶
type ResourceConfigCheckSessionLifecycle interface { CleanInactiveResourceConfigCheckSessions() error CleanExpiredResourceConfigCheckSessions() error }
func NewResourceConfigCheckSessionLifecycle ¶
func NewResourceConfigCheckSessionLifecycle(conn Conn) ResourceConfigCheckSessionLifecycle
type ResourceConfigFactory ¶
type ResourceConfigFactory interface { FindResourceConfig( logger lager.Logger, resourceType string, source atc.Source, resourceTypes creds.VersionedResourceTypes, ) (*UsedResourceConfig, bool, error) CleanUnreferencedConfigs() error }
func NewResourceConfigFactory ¶
func NewResourceConfigFactory(conn Conn, lockFactory lock.LockFactory) ResourceConfigFactory
type ResourceFactory ¶
func NewResourceFactory ¶
func NewResourceFactory(conn Conn, lockFactory lock.LockFactory) ResourceFactory
type ResourceMetadataField ¶
type ResourceMetadataFields ¶
type ResourceMetadataFields []ResourceMetadataField
func NewResourceMetadataFields ¶
func NewResourceMetadataFields(atcm []atc.MetadataField) ResourceMetadataFields
func (ResourceMetadataFields) ToATCMetadata ¶
func (rmf ResourceMetadataFields) ToATCMetadata() []atc.MetadataField
type ResourceNotFoundError ¶
type ResourceNotFoundError struct {
Name string
}
func (ResourceNotFoundError) Error ¶
func (e ResourceNotFoundError) Error() string
type ResourceType ¶
type ResourceTypeNotFoundError ¶
type ResourceTypeNotFoundError struct {
Name string
}
func (ResourceTypeNotFoundError) Error ¶
func (e ResourceTypeNotFoundError) Error() string
type ResourceTypes ¶
type ResourceTypes []ResourceType
func (ResourceTypes) Configs ¶
func (resourceTypes ResourceTypes) Configs() atc.ResourceTypes
func (ResourceTypes) Deserialize ¶
func (resourceTypes ResourceTypes) Deserialize() atc.VersionedResourceTypes
type ResourceVersion ¶
type Resources ¶
type Resources []Resource
func (Resources) Configs ¶
func (resources Resources) Configs() atc.ResourceConfigs
type SavedVersionedResource ¶
type SavedVersionedResources ¶
type SavedVersionedResources []SavedVersionedResource
type Team ¶
type Team interface { ID() int Name() string Admin() bool Auth() map[string]*json.RawMessage Delete() error Rename(string) error SavePipeline( pipelineName string, config atc.Config, from ConfigVersion, pausedState PipelinePausedState, ) (Pipeline, bool, error) Pipeline(pipelineName string) (Pipeline, bool, error) Pipelines() ([]Pipeline, error) PublicPipelines() ([]Pipeline, error) VisiblePipelines() ([]Pipeline, error) OrderPipelines([]string) error CreateOneOffBuild() (Build, error) PrivateAndPublicBuilds(Page) ([]Build, Pagination, error) Builds(page Page) ([]Build, Pagination, error) SaveWorker(atcWorker atc.Worker, ttl time.Duration) (Worker, error) Workers() ([]Worker, error) FindContainerByHandle(string) (Container, bool, error) FindContainersByMetadata(ContainerMetadata) ([]Container, error) FindCheckContainers(lager.Logger, string, string, creds.VariablesFactory) ([]Container, error) FindCreatedContainerByHandle(string) (CreatedContainer, bool, error) FindWorkerForContainer(handle string) (Worker, bool, error) FindWorkerForContainerByOwner(ContainerOwner) (Worker, bool, error) FindContainerOnWorker(workerName string, owner ContainerOwner) (CreatingContainer, CreatedContainer, error) CreateContainer(workerName string, owner ContainerOwner, meta ContainerMetadata) (CreatingContainer, error) UpdateProviderAuth(auth map[string]*json.RawMessage) error }
type TeamFactory ¶
type TeamFactory interface { CreateTeam(atc.Team) (Team, error) FindTeam(string) (Team, bool, error) GetTeams() ([]Team, error) GetByID(teamID int) Team CreateDefaultTeamIfNotExists() (Team, error) }
func NewTeamFactory ¶
func NewTeamFactory(conn Conn, lockFactory lock.LockFactory) TeamFactory
type Tx ¶
type Tx interface { Commit() error Exec(query string, args ...interface{}) (sql.Result, error) Prepare(query string) (*sql.Stmt, error) Query(query string, args ...interface{}) (*sql.Rows, error) QueryRow(query string, args ...interface{}) squirrel.RowScanner Rollback() error Stmt(stmt *sql.Stmt) *sql.Stmt }
type UsedBaseResourceType ¶
UsedBaseResourceType is created whenever a ResourceConfig is used, either for a build, a resource in the pipeline, or a resource type in the pipeline.
So long as the UsedBaseResourceType's ID is referenced by a ResourceConfig that is in use, this guarantees that the BaseResourceType will not be removed. That is to say that its "Use" is vicarious.
type UsedResourceCache ¶
type UsedResourceCache struct { ID int ResourceConfig *UsedResourceConfig Version atc.Version }
UsedResourceCache is created whenever a ResourceCache is Created and/or Used.
So long as the UsedResourceCache exists, the underlying ResourceCache can not be removed.
UsedResourceCaches become unused by the gc.ResourceCacheCollector, which may then lead to the ResourceCache being garbage-collected.
See FindOrCreateForBuild, FindOrCreateForResource, and FindOrCreateForResourceType for more information on when it becomes unused.
func (*UsedResourceCache) BaseResourceType ¶
func (cache *UsedResourceCache) BaseResourceType() *UsedBaseResourceType
type UsedResourceConfig ¶
type UsedResourceConfig struct { ID int CreatedByResourceCache *UsedResourceCache CreatedByBaseResourceType *UsedBaseResourceType }
UsedResourceConfig is created whenever a ResourceConfig is Created and/or Used.
So long as the UsedResourceConfig exists, the underlying ResourceConfig can not be removed.
UsedResourceConfigs become unused by the gc.ResourceConfigCollector, which may then lead to the ResourceConfig being garbage-collected.
See FindOrCreateForBuild, FindOrCreateForResource, and FindOrCreateForResourceType for more information on when it becomes unused.
XXX: don't call this Used
func (*UsedResourceConfig) OriginBaseResourceType ¶
func (resourceConfig *UsedResourceConfig) OriginBaseResourceType() *UsedBaseResourceType
type UsedWorkerResourceCache ¶
type UsedWorkerResourceCache struct {
ID int
}
type UsedWorkerResourceCerts ¶
type UsedWorkerResourceCerts struct {
ID int
}
type UsedWorkerResourceType ¶
type UsedWorkerResourceType struct { ID int Worker Worker UsedBaseResourceType *UsedBaseResourceType }
type UsedWorkerTaskCache ¶
type VersionedResource ¶
type VersionedResource struct { Resource string Type string Version ResourceVersion Metadata ResourceMetadataFields }
type VolumeRepository ¶
type VolumeRepository interface { GetTeamVolumes(teamID int) ([]CreatedVolume, error) CreateContainerVolume(int, string, CreatingContainer, string) (CreatingVolume, error) FindContainerVolume(int, string, CreatingContainer, string) (CreatingVolume, CreatedVolume, error) FindBaseResourceTypeVolume(int, *UsedWorkerBaseResourceType) (CreatingVolume, CreatedVolume, error) CreateBaseResourceTypeVolume(int, *UsedWorkerBaseResourceType) (CreatingVolume, error) FindResourceCacheVolume(string, *UsedResourceCache) (CreatedVolume, bool, error) FindTaskCacheVolume(teamID int, uwtc *UsedWorkerTaskCache) (CreatingVolume, CreatedVolume, error) CreateTaskCacheVolume(teamID int, uwtc *UsedWorkerTaskCache) (CreatingVolume, error) FindResourceCertsVolume(workerName string, uwrc *UsedWorkerResourceCerts) (CreatingVolume, CreatedVolume, error) CreateResourceCertsVolume(workerName string, uwrc *UsedWorkerResourceCerts) (CreatingVolume, error) FindVolumesForContainer(CreatedContainer) ([]CreatedVolume, error) GetOrphanedVolumes(workerName string) ([]CreatedVolume, []string, error) DestroyFailedVolumes() (int, error) GetDestroyingVolumes(workerName string) ([]string, error) FindCreatedVolume(handle string) (CreatedVolume, bool, error) RemoveDestroyingVolumes(workerName string, handles []string) (int, error) }
func NewVolumeRepository ¶
func NewVolumeRepository(conn Conn) VolumeRepository
type VolumeResourceType ¶
type VolumeResourceType struct { WorkerBaseResourceType *UsedWorkerBaseResourceType ResourceType *VolumeResourceType Version atc.Version }
type VolumeState ¶
type VolumeState string
const ( VolumeStateCreating VolumeState = "creating" VolumeStateCreated VolumeState = "created" VolumeStateDestroying VolumeState = "destroying" VolumeStateFailed VolumeState = "failed" )
type VolumeType ¶
type VolumeType string
const ( VolumeTypeContainer VolumeType = "container" VolumeTypeResource VolumeType = "resource" VolumeTypeResourceType VolumeType = "resource-type" VolumeTypeResourceCerts VolumeType = "resource-certs" VolumeTypeTaskCache VolumeType = "task-cache" VolumeTypeUknown VolumeType = "unknown" // for migration to life )
type Worker ¶
type Worker interface { Name() string Version() *string State() WorkerState GardenAddr() *string BaggageclaimURL() *string CertsPath() *string ResourceCerts() (*UsedWorkerResourceCerts, bool, error) HTTPProxyURL() string HTTPSProxyURL() string NoProxy() string ActiveContainers() int ResourceTypes() []atc.WorkerResourceType Platform() string Tags() []string TeamID() int TeamName() string StartTime() int64 ExpiresAt() time.Time Reload() (bool, error) Land() error Retire() error Prune() error Delete() error }
type WorkerBaseResourceType ¶
func (WorkerBaseResourceType) Find ¶
func (workerBaseResourceType WorkerBaseResourceType) Find(runner sq.Runner) (*UsedWorkerBaseResourceType, bool, error)
type WorkerBaseResourceTypeAlreadyExistsError ¶
type WorkerBaseResourceTypeAlreadyExistsError struct { WorkerName string BaseResourceTypeName string }
func (WorkerBaseResourceTypeAlreadyExistsError) Error ¶
func (e WorkerBaseResourceTypeAlreadyExistsError) Error() string
type WorkerBaseResourceTypeFactory ¶
type WorkerBaseResourceTypeFactory interface {
Find(name string, worker Worker) (*UsedWorkerBaseResourceType, bool, error)
}
func NewWorkerBaseResourceTypeFactory ¶
func NewWorkerBaseResourceTypeFactory(conn Conn) WorkerBaseResourceTypeFactory
type WorkerFactory ¶
type WorkerFactory interface { GetWorker(name string) (Worker, bool, error) SaveWorker(atcWorker atc.Worker, ttl time.Duration) (Worker, error) HeartbeatWorker(worker atc.Worker, ttl time.Duration) (Worker, error) Workers() ([]Worker, error) VisibleWorkers([]string) ([]Worker, error) }
func NewWorkerFactory ¶
func NewWorkerFactory(conn Conn) WorkerFactory
type WorkerLifecycle ¶
type WorkerLifecycle interface { StallUnresponsiveWorkers() ([]string, error) LandFinishedLandingWorkers() ([]string, error) DeleteFinishedRetiringWorkers() ([]string, error) }
func NewWorkerLifecycle ¶
func NewWorkerLifecycle(conn Conn) WorkerLifecycle
type WorkerResourceCache ¶
type WorkerResourceCache struct { WorkerName string ResourceCache *UsedResourceCache }
func (WorkerResourceCache) Find ¶
func (workerResourceCache WorkerResourceCache) Find(runner sq.Runner) (*UsedWorkerResourceCache, bool, error)
func (WorkerResourceCache) FindOrCreate ¶
func (workerResourceCache WorkerResourceCache) FindOrCreate(tx Tx) (*UsedWorkerResourceCache, error)
type WorkerResourceCerts ¶
func (WorkerResourceCerts) Find ¶
func (workerResourceCerts WorkerResourceCerts) Find(runner sq.BaseRunner) (*UsedWorkerResourceCerts, bool, error)
func (WorkerResourceCerts) FindOrCreate ¶
func (workerResourceCerts WorkerResourceCerts) FindOrCreate(tx Tx) (*UsedWorkerResourceCerts, error)
type WorkerResourceType ¶
type WorkerResourceType struct { Worker Worker Image string // The path to the image, e.g. '/opt/concourse/resources/git'. Version string // The version of the image, e.g. a SHA of the rootfs. BaseResourceType *BaseResourceType }
func (WorkerResourceType) FindOrCreate ¶
func (wrt WorkerResourceType) FindOrCreate(tx Tx) (*UsedWorkerResourceType, error)
type WorkerState ¶
type WorkerState string
type WorkerTaskCache ¶
func (WorkerTaskCache) FindOrCreate ¶
func (wtc WorkerTaskCache) FindOrCreate( tx Tx, ) (*UsedWorkerTaskCache, error)
type WorkerTaskCacheFactory ¶
type WorkerTaskCacheFactory interface { Find(jobID int, stepName string, path string, workerName string) (*UsedWorkerTaskCache, bool, error) FindOrCreate(jobID int, stepName string, path string, workerName string) (*UsedWorkerTaskCache, error) }
func NewWorkerTaskCacheFactory ¶
func NewWorkerTaskCacheFactory(conn Conn) WorkerTaskCacheFactory
Source Files ¶
- base_resource_type.go
- base_resource_type_factory.go
- build.go
- build_event_source.go
- build_factory.go
- build_preparation.go
- connection_retrying_driver.go
- connection_tracker.go
- container.go
- container_metadata.go
- container_owner.go
- container_repository.go
- dashboard_job.go
- job.go
- job_factory.go
- log_conn.go
- notifications_bus.go
- notifier.go
- open.go
- pagination.go
- pipe.go
- pipeline.go
- pipeline_factory.go
- pipeline_locks.go
- pipeline_resource.go
- psql.go
- resource.go
- resource_cache.go
- resource_cache_factory.go
- resource_cache_lifecycle.go
- resource_cache_user.go
- resource_config.go
- resource_config_check_session.go
- resource_config_check_session_lifecycle.go
- resource_config_factory.go
- resource_factory.go
- resource_type.go
- safe_find_or_create.go
- scannable.go
- team.go
- team_factory.go
- volume.go
- volume_repository.go
- worker.go
- worker_base_resource_type.go
- worker_base_resource_type_factory.go
- worker_factory.go
- worker_lifecycle.go
- worker_resource_cache.go
- worker_resource_certs.go
- worker_resource_type.go
- worker_task_cache_factory.go
Directories ¶
Path | Synopsis |
---|---|
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
encryptionfakes
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
lockfakes
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
migrationfakes
Code generated by counterfeiter.
|
Code generated by counterfeiter. |