datastore

package
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DATASTORE_INMEMORY = "inmemory"
	DATASTORE_POSTGRES = "postgres"
)

Variables

View Source
var ErrContextNotFound = errors.New("context not found")
View Source
var ErrJobNotFound = errors.New("job not found")
View Source
var ErrNodeNotFound = errors.New("node not found")
View Source
var ErrTaskNotFound = errors.New("task not found")

Functions

This section is empty.

Types

type Datastore

type Datastore interface {
	CreateTask(ctx context.Context, t *task.Task) error
	UpdateTask(ctx context.Context, id string, modify func(u *task.Task) error) error
	GetTaskByID(ctx context.Context, id string) (*task.Task, error)
	GetActiveTasks(ctx context.Context, jobID string) ([]*task.Task, error)

	CreateNode(ctx context.Context, n node.Node) error
	UpdateNode(ctx context.Context, id string, modify func(u *node.Node) error) error
	GetNodeByID(ctx context.Context, id string) (node.Node, error)
	GetActiveNodes(ctx context.Context) ([]node.Node, error)

	CreateJob(ctx context.Context, j *job.Job) error
	UpdateJob(ctx context.Context, id string, modify func(u *job.Job) error) error
	GetJobByID(ctx context.Context, id string) (*job.Job, error)
	GetJobs(ctx context.Context, q string, page, size int) (*Page[*job.Job], error)

	GetStats(ctx context.Context) (*stats.Stats, error)

	WithTx(ctx context.Context, f func(tx Datastore) error) error
}

type InMemoryDatastore

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

func NewInMemoryDatastore

func NewInMemoryDatastore() *InMemoryDatastore

func (*InMemoryDatastore) CreateJob

func (ds *InMemoryDatastore) CreateJob(ctx context.Context, j *job.Job) error

func (*InMemoryDatastore) CreateNode

func (ds *InMemoryDatastore) CreateNode(ctx context.Context, n node.Node) error

func (*InMemoryDatastore) CreateTask

func (ds *InMemoryDatastore) CreateTask(ctx context.Context, t *task.Task) error

func (*InMemoryDatastore) GetActiveNodes

func (ds *InMemoryDatastore) GetActiveNodes(ctx context.Context) ([]node.Node, error)

func (*InMemoryDatastore) GetActiveTasks

func (ds *InMemoryDatastore) GetActiveTasks(ctx context.Context, jobID string) ([]*task.Task, error)

func (*InMemoryDatastore) GetJobByID

func (ds *InMemoryDatastore) GetJobByID(ctx context.Context, id string) (*job.Job, error)

func (*InMemoryDatastore) GetJobs

func (ds *InMemoryDatastore) GetJobs(ctx context.Context, q string, page, size int) (*Page[*job.Job], error)

func (*InMemoryDatastore) GetNodeByID

func (ds *InMemoryDatastore) GetNodeByID(ctx context.Context, id string) (node.Node, error)

func (*InMemoryDatastore) GetStats

func (ds *InMemoryDatastore) GetStats(ctx context.Context) (*stats.Stats, error)

func (*InMemoryDatastore) GetTaskByID

func (ds *InMemoryDatastore) GetTaskByID(ctx context.Context, id string) (*task.Task, error)

func (*InMemoryDatastore) UpdateJob

func (ds *InMemoryDatastore) UpdateJob(ctx context.Context, id string, modify func(u *job.Job) error) error

func (*InMemoryDatastore) UpdateNode

func (ds *InMemoryDatastore) UpdateNode(ctx context.Context, id string, modify func(u *node.Node) error) error

func (*InMemoryDatastore) UpdateTask

func (ds *InMemoryDatastore) UpdateTask(ctx context.Context, id string, modify func(u *task.Task) error) error

func (*InMemoryDatastore) WithTx

func (ds *InMemoryDatastore) WithTx(ctx context.Context, f func(tx Datastore) error) error

type Page

type Page[T any] struct {
	Items      []T `json:"items"`
	Number     int `json:"number"`
	Size       int `json:"size"`
	TotalPages int `json:"totalPages"`
	TotalItems int `json:"totalItems"`
}

type PostgresDatastore

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

func NewPostgresDataStore

func NewPostgresDataStore(dsn string) (*PostgresDatastore, error)

func (*PostgresDatastore) CreateJob

func (ds *PostgresDatastore) CreateJob(ctx context.Context, j *job.Job) error

func (*PostgresDatastore) CreateNode

func (ds *PostgresDatastore) CreateNode(ctx context.Context, n node.Node) error

func (*PostgresDatastore) CreateTask

func (ds *PostgresDatastore) CreateTask(ctx context.Context, t *task.Task) error

func (*PostgresDatastore) ExecScript

func (ds *PostgresDatastore) ExecScript(script string) error

func (*PostgresDatastore) GetActiveNodes

func (ds *PostgresDatastore) GetActiveNodes(ctx context.Context) ([]node.Node, error)

func (*PostgresDatastore) GetActiveTasks

func (ds *PostgresDatastore) GetActiveTasks(ctx context.Context, jobID string) ([]*task.Task, error)

func (*PostgresDatastore) GetJobByID

func (ds *PostgresDatastore) GetJobByID(ctx context.Context, id string) (*job.Job, error)

func (*PostgresDatastore) GetJobs

func (ds *PostgresDatastore) GetJobs(ctx context.Context, q string, page, size int) (*Page[*job.Job], error)

func (*PostgresDatastore) GetNodeByID

func (ds *PostgresDatastore) GetNodeByID(ctx context.Context, id string) (node.Node, error)

func (*PostgresDatastore) GetStats

func (ds *PostgresDatastore) GetStats(ctx context.Context) (*stats.Stats, error)

func (*PostgresDatastore) GetTaskByID

func (ds *PostgresDatastore) GetTaskByID(ctx context.Context, id string) (*task.Task, error)

func (*PostgresDatastore) UpdateJob

func (ds *PostgresDatastore) UpdateJob(ctx context.Context, id string, modify func(u *job.Job) error) error

func (*PostgresDatastore) UpdateNode

func (ds *PostgresDatastore) UpdateNode(ctx context.Context, id string, modify func(u *node.Node) error) error

func (*PostgresDatastore) UpdateTask

func (ds *PostgresDatastore) UpdateTask(ctx context.Context, id string, modify func(t *task.Task) error) error

func (*PostgresDatastore) WithTx

func (ds *PostgresDatastore) WithTx(ctx context.Context, f func(tx Datastore) error) error

Jump to

Keyboard shortcuts

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