manager

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 15, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrManagerNotReady            = errors.New("manager not ready")
	ErrTemplateAlreadyInitialized = errors.New("template is already initialized")
	ErrTemplateNotFound           = errors.New("template not found")
	ErrTestNotFound               = errors.New("test database not found")
)
View Source
var ErrDatabaseDiscarded = errors.New("ErrDatabaseDiscarded")

Functions

This section is empty.

Types

type ByID

type ByID []*TestDatabase

func (ByID) Len

func (i ByID) Len() int

func (ByID) Less

func (a ByID) Less(i, j int) bool

func (ByID) Swap

func (a ByID) Swap(i, j int)

type Database

type Database struct {
	sync.RWMutex `json:"-"`

	TemplateHash string         `json:"templateHash"`
	Config       DatabaseConfig `json:"config"`
	// contains filtered or unexported fields
}

func (*Database) FlagAsDiscarded

func (d *Database) FlagAsDiscarded()

func (*Database) FlagAsReady

func (d *Database) FlagAsReady()

func (*Database) Ready

func (d *Database) Ready() bool

func (*Database) State

func (d *Database) State() databaseState

func (*Database) WaitUntilReady

func (d *Database) WaitUntilReady(ctx context.Context) error

type DatabaseConfig

type DatabaseConfig struct {
	Host             string            `json:"host"`
	Port             int               `json:"port"`
	Username         string            `json:"username"`
	Password         string            `json:"password"`
	Database         string            `json:"database"`
	AdditionalParams map[string]string `json:"additionalParams,omitempty"` // Optional additional connection parameters mapped into the connection string
}

func (DatabaseConfig) ConnectionString

func (c DatabaseConfig) ConnectionString() string

Generates a connection string to be passed to sql.Open or equivalents, assuming Postgres syntax

type Manager

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

func DefaultFromEnv

func DefaultFromEnv() *Manager

func New

func New(config ManagerConfig) *Manager

func (*Manager) ClearTrackedTestDatabases

func (m *Manager) ClearTrackedTestDatabases(hash string) error

func (*Manager) Connect

func (m *Manager) Connect(ctx context.Context) error

func (*Manager) DiscardTemplateDatabase

func (m *Manager) DiscardTemplateDatabase(ctx context.Context, hash string) error

func (*Manager) Disconnect

func (m *Manager) Disconnect(ctx context.Context, ignoreCloseError bool) error

func (*Manager) FinalizeTemplateDatabase

func (m *Manager) FinalizeTemplateDatabase(ctx context.Context, hash string) (*TemplateDatabase, error)

func (*Manager) GetTestDatabase

func (m *Manager) GetTestDatabase(ctx context.Context, hash string) (*TestDatabase, error)

func (*Manager) Initialize

func (m *Manager) Initialize(ctx context.Context) error

func (*Manager) InitializeTemplateDatabase

func (m *Manager) InitializeTemplateDatabase(ctx context.Context, hash string) (*TemplateDatabase, error)

func (*Manager) Ready

func (m *Manager) Ready() bool

func (*Manager) Reconnect

func (m *Manager) Reconnect(ctx context.Context, ignoreDisconnectError bool) error

func (*Manager) ResetAllTracking

func (m *Manager) ResetAllTracking() error

func (*Manager) ReturnTestDatabase

func (m *Manager) ReturnTestDatabase(ctx context.Context, hash string, id int) error

type ManagerConfig

type ManagerConfig struct {
	ManagerDatabaseConfig    DatabaseConfig
	TemplateDatabaseTemplate string

	DatabasePrefix              string
	TemplateDatabasePrefix      string
	TestDatabasePrefix          string
	TestDatabaseOwner           string
	TestDatabaseOwnerPassword   string
	TestDatabaseInitialPoolSize int
	TestDatabaseMaxPoolSize     int
}

func DefaultManagerConfigFromEnv

func DefaultManagerConfigFromEnv() ManagerConfig

type TemplateDatabase

type TemplateDatabase struct {
	Database `json:"database"`
	// contains filtered or unexported fields
}

type TestDatabase

type TestDatabase struct {
	Database `json:"database"`

	ID int `json:"id"`
	// contains filtered or unexported fields
}

func (*TestDatabase) Dirty

func (t *TestDatabase) Dirty() bool

func (*TestDatabase) FlagAsClean

func (t *TestDatabase) FlagAsClean()

func (*TestDatabase) FlagAsDirty

func (t *TestDatabase) FlagAsDirty()

func (*TestDatabase) ReadyForTest

func (t *TestDatabase) ReadyForTest() bool

Jump to

Keyboard shortcuts

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