orchestrator

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2018 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const ArtifactDirectory = "/var/vcap/store/bbr-backup"

Variables

This section is empty.

Functions

func BuildExitCode added in v1.1.4

func BuildExitCode(errs Error) int

func ConvertErrors

func ConvertErrors(errs []error) error

func JobPostBackupUnlocker added in v1.1.6

func JobPostBackupUnlocker(job Job) error

func JobPostRestoreUnlocker added in v1.1.6

func JobPostRestoreUnlocker(job Job) error

func JobPreBackupLocker added in v1.1.6

func JobPreBackupLocker(job Job) error

func JobPreRestoreLocker added in v1.1.6

func JobPreRestoreLocker(job Job) error

func Reverse added in v1.1.6

func Reverse(jobsSliceOfSlices [][]Job) [][]Job

Types

type AddFinishTimeStep added in v1.1.0

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

func (*AddFinishTimeStep) Run added in v1.1.0

func (s *AddFinishTimeStep) Run(session *Session) error

type ArtifactIdentifier

type ArtifactIdentifier interface {
	InstanceName() string
	InstanceIndex() string
	Name() string
	HasCustomName() bool
}

type AuthInfo

type AuthInfo struct {
	Type   string
	UaaUrl string
}

type Backup

type Backup interface {
	CreateArtifact(ArtifactIdentifier) (io.WriteCloser, error)
	ReadArtifact(ArtifactIdentifier) (io.ReadCloser, error)
	AddChecksum(ArtifactIdentifier, BackupChecksum) error
	CreateMetadataFileWithStartTime(time.Time) error
	AddFinishTime(time.Time) error
	FetchChecksum(ArtifactIdentifier) (BackupChecksum, error)
	CalculateChecksum(ArtifactIdentifier) (BackupChecksum, error)
	DeploymentMatches(string, []Instance) (bool, error)
	SaveManifest(manifest string) error
	Valid() (bool, error)
}

type BackupArtifact

type BackupArtifact interface {
	ArtifactIdentifier
	Size() (string, error)
	Checksum() (BackupChecksum, error)
	StreamFromRemote(io.Writer) error
	Delete() error
	StreamToRemote(io.Reader) error
}

type BackupChecker added in v1.1.0

type BackupChecker struct {
	*Workflow
}

func NewBackupChecker added in v1.1.0

func NewBackupChecker(logger Logger, deploymentManager DeploymentManager, lockOrderer LockOrderer) *BackupChecker

func (BackupChecker) CanBeBackedUp added in v1.1.0

func (b BackupChecker) CanBeBackedUp(deploymentName string) (bool, Error)

type BackupChecksum

type BackupChecksum map[string]string

func (BackupChecksum) Match

func (b BackupChecksum) Match(other BackupChecksum) (bool, []string)

type BackupCleaner added in v1.1.0

type BackupCleaner struct {
	Logger
	*Workflow
}

func NewBackupCleaner added in v1.1.0

func NewBackupCleaner(logger Logger, deploymentManager DeploymentManager, lockOrderer LockOrderer,
	jobExecutionStategy JobExecutionStrategy) *BackupCleaner

func (BackupCleaner) Cleanup added in v1.1.0

func (c BackupCleaner) Cleanup(deploymentName string) Error

type BackupError

type BackupError customError

func NewBackupError

func NewBackupError(errorMessage string) BackupError

type BackupManager

type BackupManager interface {
	Create(string, Logger, func() time.Time) (Backup, error)
	Open(string, Logger) (Backup, error)
}

type BackupStep added in v1.1.0

type BackupStep struct{}

func (*BackupStep) Run added in v1.1.0

func (s *BackupStep) Run(session *Session) error

type BackupableStep added in v1.1.0

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

func (*BackupableStep) Run added in v1.1.0

func (s *BackupableStep) Run(session *Session) error

type Backuper

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

func NewBackuper

func NewBackuper(backupManager BackupManager, logger Logger, deploymentManager DeploymentManager,
	lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy, nowFunc func() time.Time) *Backuper

func (Backuper) Backup

func (b Backuper) Backup(deploymentName string) Error

Backup checks if a deployment has backupable instances and backs them up.

type CleanupError

type CleanupError customError

func NewCleanupError

func NewCleanupError(errorMessage string) CleanupError

type CleanupPreviousStep added in v1.1.0

type CleanupPreviousStep struct{}

func (*CleanupPreviousStep) Run added in v1.1.0

func (s *CleanupPreviousStep) Run(session *Session) error

type CleanupStep added in v1.1.0

type CleanupStep struct{}

func (*CleanupStep) Run added in v1.1.0

func (s *CleanupStep) Run(session *Session) error

type CopyToRemoteStep added in v1.1.0

type CopyToRemoteStep struct{}

func (*CopyToRemoteStep) Run added in v1.1.0

func (s *CopyToRemoteStep) Run(session *Session) error

type CreateArtifactStep added in v1.1.0

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

func (*CreateArtifactStep) Run added in v1.1.0

func (s *CreateArtifactStep) Run(session *Session) error

type Deployment

type Deployment interface {
	IsBackupable() bool
	HasUniqueCustomArtifactNames() bool
	CheckArtifactDir() error
	IsRestorable() bool
	PreBackupLock(orderer LockOrderer, jobExecutionStategy JobExecutionStrategy) error
	Backup() error
	PostBackupUnlock(orderer LockOrderer, jobExecutionStategy JobExecutionStrategy) error
	Restore() error
	CopyRemoteBackupToLocal(Backup) error
	CopyLocalBackupToRemote(Backup) error
	Cleanup() error
	CleanupPrevious() error
	Instances() []Instance
	CustomArtifactNamesMatch() error
	PreRestoreLock(orderer LockOrderer, jobExecutionStategy JobExecutionStrategy) error
	PostRestoreUnlock(orderer LockOrderer, jobExecutionStategy JobExecutionStrategy) error
	ValidateLockingDependencies(orderer LockOrderer) error
}

func NewDeployment

func NewDeployment(logger Logger, instancesArray []Instance) Deployment

type DeploymentManager

type DeploymentManager interface {
	Find(deploymentName string) (Deployment, error)
	SaveManifest(deploymentName string, artifact Backup) error
}

type DrainStep added in v1.1.0

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

func (*DrainStep) Run added in v1.1.0

func (s *DrainStep) Run(session *Session) error

type Error

type Error []error

func NewError added in v1.1.4

func NewError(errs ...error) Error

func (Error) ContainsUnlockOrCleanup added in v1.1.0

func (err Error) ContainsUnlockOrCleanup() bool

func (Error) Error

func (e Error) Error() string

func (Error) IsCleanup

func (e Error) IsCleanup() bool

func (Error) IsFatal

func (e Error) IsFatal() bool

func (Error) IsNil

func (e Error) IsNil() bool

func (Error) IsPostBackup

func (err Error) IsPostBackup() bool

func (Error) Join added in v1.0.0

func (e Error) Join(otherError Error) Error

func (Error) PrettyError

func (e Error) PrettyError(includeStacktrace bool) string

type FindDeploymentStep added in v1.1.0

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

func (*FindDeploymentStep) Run added in v1.1.0

func (s *FindDeploymentStep) Run(session *Session) error

type Instance

type Instance interface {
	InstanceIdentifer
	IsBackupable() bool
	ArtifactDirExists() (bool, error)
	ArtifactDirCreated() bool
	MarkArtifactDirCreated()
	IsRestorable() bool
	Backup() error
	Restore() error
	Cleanup() error
	CleanupPrevious() error
	ArtifactsToBackup() []BackupArtifact
	ArtifactsToRestore() []BackupArtifact
	CustomBackupArtifactNames() []string
	CustomRestoreArtifactNames() []string
	Jobs() []Job
}

type InstanceIdentifer

type InstanceIdentifer interface {
	Name() string
	Index() string
	ID() string
}

type Job added in v1.1.0

type Job interface {
	HasBackup() bool
	HasRestore() bool
	HasNamedBackupArtifact() bool
	HasNamedRestoreArtifact() bool
	BackupArtifactName() string
	RestoreArtifactName() string
	Backup() error
	PreBackupLock() error
	PostBackupUnlock() error
	PreRestoreLock() error
	Restore() error
	PostRestoreUnlock() error
	Name() string
	Release() string
	InstanceIdentifier() string
	BackupArtifactDirectory() string
	RestoreArtifactDirectory() string
	BackupShouldBeLockedBefore() []JobSpecifier
	RestoreShouldBeLockedBefore() []JobSpecifier
}

type JobExecutionStrategy added in v1.1.6

type JobExecutionStrategy interface {
	Run(runMethod func(job Job) error, jobs [][]Job) []error
}

type JobSpecifier added in v1.1.0

type JobSpecifier struct {
	Name    string
	Release string
}

type Jobs added in v1.1.0

type Jobs []Job

func (Jobs) AnyAreBackupable added in v1.1.0

func (jobs Jobs) AnyAreBackupable() bool

func (Jobs) AnyAreRestorable added in v1.1.0

func (jobs Jobs) AnyAreRestorable() bool

func (Jobs) Backupable added in v1.1.0

func (jobs Jobs) Backupable() Jobs

func (Jobs) CustomBackupArtifactNames added in v1.1.0

func (jobs Jobs) CustomBackupArtifactNames() []string

func (Jobs) CustomRestoreArtifactNames added in v1.1.0

func (jobs Jobs) CustomRestoreArtifactNames() []string

func (Jobs) Restorable added in v1.1.0

func (jobs Jobs) Restorable() Jobs

type LockError

type LockError customError

func NewLockError

func NewLockError(errorMessage string) LockError

type LockOrderer added in v1.1.0

type LockOrderer interface {
	Order(jobs []Job) ([][]Job, error)
}

type LockStep added in v1.1.0

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

func (*LockStep) Run added in v1.1.0

func (s *LockStep) Run(session *Session) error

type Logger

type Logger interface {
	Debug(tag, msg string, args ...interface{})
	Info(tag, msg string, args ...interface{})
	Warn(tag, msg string, args ...interface{})
	Error(tag, msg string, args ...interface{})
}

type Node added in v1.1.0

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

func NewNode added in v1.1.0

func NewNode(step Step) *Node

func (*Node) OnFailure added in v1.1.0

func (node *Node) OnFailure(failStep Step) *Node

func (*Node) OnSuccess added in v1.1.0

func (node *Node) OnSuccess(successStep Step) *Node

func (*Node) OnSuccessOrFailure added in v1.1.0

func (node *Node) OnSuccessOrFailure(step Step) *Node

type PostBackupUnlockStep added in v1.1.0

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

func (*PostBackupUnlockStep) Run added in v1.1.0

func (s *PostBackupUnlockStep) Run(session *Session) error

type PostRestoreUnlockStep added in v1.1.0

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

func (*PostRestoreUnlockStep) Run added in v1.1.0

func (s *PostRestoreUnlockStep) Run(session *Session) error

type PreRestoreLockStep added in v1.1.0

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

func (*PreRestoreLockStep) Run added in v1.1.0

func (s *PreRestoreLockStep) Run(session *Session) error

type RestorableStep added in v1.1.0

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

func (*RestorableStep) Run added in v1.1.0

func (s *RestorableStep) Run(session *Session) error

type RestoreCleaner added in v1.1.0

type RestoreCleaner struct {
	Logger
	*Workflow
}

func NewRestoreCleaner added in v1.1.0

func NewRestoreCleaner(logger Logger, deploymentManager DeploymentManager, lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) *RestoreCleaner

func (RestoreCleaner) Cleanup added in v1.1.0

func (c RestoreCleaner) Cleanup(deploymentName string) Error

type RestoreStep added in v1.1.0

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

func (*RestoreStep) Run added in v1.1.0

func (s *RestoreStep) Run(session *Session) error

type Restorer

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

func NewRestorer

func NewRestorer(backupManager BackupManager, logger Logger, deploymentManager DeploymentManager,
	lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) *Restorer

func (Restorer) Restore

func (r Restorer) Restore(deploymentName, backupPath string) Error

type Session added in v1.1.0

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

func NewSession added in v1.1.0

func NewSession(deploymentName string) *Session

func (*Session) CurrentArtifact added in v1.1.0

func (session *Session) CurrentArtifact() Backup

func (*Session) CurrentArtifactPath added in v1.1.0

func (session *Session) CurrentArtifactPath() string

func (*Session) CurrentDeployment added in v1.1.0

func (session *Session) CurrentDeployment() Deployment

func (*Session) DeploymentName added in v1.1.0

func (session *Session) DeploymentName() string

func (*Session) SetCurrentArtifact added in v1.1.0

func (session *Session) SetCurrentArtifact(artifact Backup)

func (*Session) SetCurrentArtifactPath added in v1.1.0

func (session *Session) SetCurrentArtifactPath(artifactPath string)

func (*Session) SetCurrentDeployment added in v1.1.0

func (session *Session) SetCurrentDeployment(deployment Deployment)

type Step added in v1.1.0

type Step interface {
	Run(*Session) error
}

func NewAddFinishTimeStep added in v1.1.0

func NewAddFinishTimeStep(nowFunc func() time.Time) Step

func NewBackupStep added in v1.1.0

func NewBackupStep() Step

func NewBackupableStep added in v1.1.0

func NewBackupableStep(lockOrderer LockOrderer, logger Logger) Step

func NewCleanupPreviousStep added in v1.1.0

func NewCleanupPreviousStep() Step

func NewCleanupStep added in v1.1.0

func NewCleanupStep() Step

func NewCopyToRemoteStep added in v1.1.0

func NewCopyToRemoteStep() Step

func NewCreateArtifactStep added in v1.1.0

func NewCreateArtifactStep(logger Logger, backupManager BackupManager, deploymentManager DeploymentManager, nowFunc func() time.Time) Step

func NewDrainStep added in v1.1.0

func NewDrainStep(logger Logger) Step

func NewFindDeploymentStep added in v1.1.0

func NewFindDeploymentStep(deploymentManager DeploymentManager, logger Logger) Step

func NewLockStep added in v1.1.0

func NewLockStep(lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) Step

func NewPostBackupUnlockStep added in v1.1.0

func NewPostBackupUnlockStep(lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) Step

func NewPostRestoreUnlockStep added in v1.1.0

func NewPostRestoreUnlockStep(lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) Step

func NewPreRestoreLockStep added in v1.1.0

func NewPreRestoreLockStep(lockOrderer LockOrderer, jobExecutionStategy JobExecutionStrategy) Step

func NewRestorableStep added in v1.1.0

func NewRestorableStep(lockOrderer LockOrderer) Step

func NewRestoreStep added in v1.1.0

func NewRestoreStep(logger Logger) Step

func NewValidateArtifactStep added in v1.1.0

func NewValidateArtifactStep(logger Logger, backupManager BackupManager) Step

type UnlockError added in v1.0.0

type UnlockError customError

func NewPostUnlockError added in v1.1.0

func NewPostUnlockError(errorMessage string) UnlockError

type ValidateArtifactStep added in v1.1.0

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

func (*ValidateArtifactStep) Run added in v1.1.0

func (s *ValidateArtifactStep) Run(session *Session) error

type Workflow added in v1.1.0

type Workflow struct {
	StartingNode *Node
	Nodes        []*Node
}

func NewWorkflow added in v1.1.0

func NewWorkflow() *Workflow

func (*Workflow) Add added in v1.1.0

func (workflow *Workflow) Add(step Step) *Node

func (*Workflow) Run added in v1.1.0

func (workflow *Workflow) Run(session *Session) Error

func (*Workflow) StartWith added in v1.1.0

func (workflow *Workflow) StartWith(step Step) *Node

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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