db

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2025 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TaskRunFlagCleanup uint32 = 0x01
	TaskRunFlagStarted uint32 = 0x02
	TaskRunFlagRunning uint32 = 0x04
	TaskRunFlagSkipped uint32 = 0x08
	TaskRunFlagTimeout uint32 = 0x10
)
View Source
var EmbedPgsqlSchema embed.FS
View Source
var EmbedSqliteSchema embed.FS

Functions

This section is empty.

Types

type AssertoorState

type AssertoorState struct {
	Key   string `db:"key"`
	Value string `db:"value"`
}

type Database

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

func NewDatabase

func NewDatabase(logger logrus.FieldLogger) *Database

func (*Database) ApplySchema

func (db *Database) ApplySchema(version int64) error

func (*Database) CleanupUncleanTestRuns

func (db *Database) CleanupUncleanTestRuns(tx *sqlx.Tx) error

CleanupUncleanTestRuns updates all running test runs and its tasks to aborted

func (*Database) CloseDB

func (db *Database) CloseDB() error

func (*Database) DeleteTestConfig

func (db *Database) DeleteTestConfig(tx *sqlx.Tx, testID string) error

DeleteTestConfig deletes a test config from the database.

func (*Database) DeleteTestRun

func (db *Database) DeleteTestRun(tx *sqlx.Tx, runID int) error

DeleteTestRun deletes a test run and all associated task states and logs.

func (*Database) EngineQuery

func (db *Database) EngineQuery(queryMap map[EngineType]string) string

func (*Database) GetAllTaskResultHeaders added in v0.0.13

func (db *Database) GetAllTaskResultHeaders(runID int) ([]TaskResultHeader, error)

func (*Database) GetAssertoorState

func (db *Database) GetAssertoorState(key string, returnValue interface{}) (interface{}, error)

func (*Database) GetLastLogIndex

func (db *Database) GetLastLogIndex(runID, taskID int) (int, error)

func (*Database) GetTaskLogs

func (db *Database) GetTaskLogs(runID, taskID, fromIdx, limit int) ([]*TaskLog, error)

func (*Database) GetTaskResultByIndex added in v0.0.13

func (db *Database) GetTaskResultByIndex(runID, taskID int, resultType string, index int) (*TaskResult, error)

func (*Database) GetTaskResultByName added in v0.0.13

func (db *Database) GetTaskResultByName(runID, taskID int, resultType, name string) (*TaskResult, error)

func (*Database) GetTaskResults added in v0.0.13

func (db *Database) GetTaskResults(runID, taskID int, summaryType string) ([]TaskResult, error)

func (*Database) GetTaskStateByTaskID

func (db *Database) GetTaskStateByTaskID(runID, taskID int) (*TaskState, error)

GetTaskStateByTaskID returns a task state by task ID.

func (*Database) GetTaskStateIndex

func (db *Database) GetTaskStateIndex(runID int) ([]*TaskStateIndex, error)

GetTaskStateIndex returns the task index for a given test run.

func (*Database) GetTestConfigs

func (db *Database) GetTestConfigs() ([]*TestConfig, error)

GetTestConfigs returns all test configs.

func (*Database) GetTestRunByRunID

func (db *Database) GetTestRunByRunID(runID int) (*TestRun, error)

GetTestRunByRunID returns a test run by run ID.

func (*Database) GetTestRunRange

func (db *Database) GetTestRunRange(testID string, firstRunID, offset, limit int) ([]*TestRun, int, error)

GetTestRunRange returns a range of test runs.

func (*Database) GetTestRunStats

func (db *Database) GetTestRunStats() ([]*TestRunStats, error)

GetTestRunStats returns the test run stats for all tests.

func (*Database) InitDB

func (db *Database) InitDB(config *DatabaseConfig) error

func (*Database) InsertTaskLog

func (db *Database) InsertTaskLog(tx *sqlx.Tx, log *TaskLog) error

func (*Database) InsertTaskState

func (db *Database) InsertTaskState(tx *sqlx.Tx, state *TaskState) error

InsertTaskState inserts a task state into the database.

func (*Database) InsertTestConfig

func (db *Database) InsertTestConfig(tx *sqlx.Tx, config *TestConfig) error

InsertTestConfig inserts a test config into the database.

func (*Database) InsertTestRun

func (db *Database) InsertTestRun(tx *sqlx.Tx, run *TestRun) error

InsertTestRun inserts a test run into the database.

func (*Database) RunTransaction

func (db *Database) RunTransaction(handler func(tx *sqlx.Tx) error) error

func (*Database) SetAssertoorState

func (db *Database) SetAssertoorState(tx *sqlx.Tx, key string, value interface{}) error

func (*Database) UpdateTaskStateStatus

func (db *Database) UpdateTaskStateStatus(tx *sqlx.Tx, state *TaskState, updateFields []string) error

UpdateTaskStateStatus updates the status fields of a task state.

func (*Database) UpdateTestRunStatus

func (db *Database) UpdateTestRunStatus(tx *sqlx.Tx, run *TestRun) error

UpdateTestRunStatus updates the status fields of a test run.

func (*Database) UpsertTaskResult added in v0.0.13

func (db *Database) UpsertTaskResult(tx *sqlx.Tx, result *TaskResult) error

type DatabaseConfig

type DatabaseConfig struct {
	Engine string                `yaml:"engine"`
	Sqlite *SqliteDatabaseConfig `yaml:"sqlite"`
	Pgsql  *PgsqlDatabaseConfig  `yaml:"pgsql"`
}

type EngineType

type EngineType int
const (
	EngineAny    EngineType = 0
	EngineSqlite EngineType = 1
	EnginePgsql  EngineType = 2
)

type PgsqlDatabaseConfig

type PgsqlDatabaseConfig struct {
	Host         string `yaml:"host"`
	Port         string `yaml:"port"`
	Username     string `yaml:"username"`
	Password     string `yaml:"password"`
	Database     string `yaml:"database"`
	MaxOpenConns int    `yaml:"max_open_conns"`
	MaxIdleConns int    `yaml:"max_idle_conns"`
}

type SqliteDatabaseConfig

type SqliteDatabaseConfig struct {
	File         string `yaml:"file"`
	MaxOpenConns int    `yaml:"max_open_conns"`
	MaxIdleConns int    `yaml:"max_idle_conns"`
}

type TaskLog

type TaskLog struct {
	RunID      int    `db:"run_id"`
	TaskID     int    `db:"task_id"`
	LogIndex   int    `db:"log_idx"`
	LogTime    int64  `db:"log_time"`
	LogLevel   int    `db:"log_level"`
	LogFields  string `db:"log_fields"`
	LogMessage string `db:"log_message"`
}

type TaskResult added in v0.0.13

type TaskResult struct {
	RunID  int    `db:"run_id"`
	TaskID int    `db:"task_id"`
	Type   string `db:"result_type"`
	Index  int    `db:"result_index"`
	Name   string `db:"name"`
	Size   int    `db:"size"`
	Data   []byte `db:"data"`
}

type TaskResultHeader added in v0.0.13

type TaskResultHeader struct {
	TaskID int    `db:"task_id"`
	Type   string `db:"result_type"`
	Index  int    `db:"result_index"`
	Name   string `db:"name"`
	Size   int    `db:"size"`
}

type TaskState

type TaskState struct {
	RunID      int    `db:"run_id"`
	TaskID     int    `db:"task_id"`
	ParentTask int    `db:"parent_task"`
	Name       string `db:"name"`
	Title      string `db:"title"`
	RefID      string `db:"ref_id"`
	Timeout    int    `db:"timeout"`
	IfCond     string `db:"ifcond"`
	RunFlags   uint32 `db:"run_flags"`
	StartTime  int64  `db:"start_time"`
	StopTime   int64  `db:"stop_time"`
	ScopeOwner int    `db:"scope_owner"`
	TaskConfig string `db:"task_config"`
	TaskStatus string `db:"task_status"`
	TaskResult int    `db:"task_result"`
	TaskError  string `db:"task_error"`
}

type TaskStateIndex

type TaskStateIndex struct {
	TaskID     int    `db:"task_id"`
	ParentTask int    `db:"parent_task"`
	RunFlags   uint32 `db:"run_flags"`
}

type TestConfig

type TestConfig struct {
	TestID           string `db:"test_id"`
	Source           string `db:"source"`
	Name             string `db:"name"`
	Timeout          int    `db:"timeout"`
	Config           string `db:"config"`
	ConfigVars       string `db:"config_vars"`
	ScheduleStartup  bool   `db:"schedule_startup"`
	ScheduleCronYaml string `db:"schedule_cron_yaml"`
}

type TestRun

type TestRun struct {
	RunID     int    `db:"run_id"`
	TestID    string `db:"test_id"`
	Name      string `db:"name"`
	Source    string `db:"source"`
	Config    string `db:"config"`
	StartTime int64  `db:"start_time"`
	StopTime  int64  `db:"stop_time"`
	Timeout   int32  `db:"timeout"`
	Status    string `db:"status"`
}

type TestRunStats

type TestRunStats struct {
	TestID  string `db:"test_id"`
	Count   int    `db:"count"`
	LastRun uint64 `db:"last_run"`
}

Jump to

Keyboard shortcuts

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