storage

package
v0.0.0-...-cb75784 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2020 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AssignedTasks

type AssignedTasks struct {
	Assignee  string `json:"assignee"`
	TaskCount int64  `json:"task_count"`
}

type Database

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

func New

func New() *Database

func (*Database) AcceptAccessRequest

func (database *Database) AcceptAccessRequest(worker int64, projectId int64) bool

func (Database) BulkSaveTask

func (database Database) BulkSaveTask(bulkSaveTaskReqs []SaveTaskRequest) []error

func (*Database) GetAllAccesses

func (database *Database) GetAllAccesses(projectId int64) *[]WorkerAccess

func (Database) GetAllProjects

func (database Database) GetAllProjects(managerId int64) *[]Project

func (*Database) GetAllWorkerStats

func (database *Database) GetAllWorkerStats() *[]WorkerStats

func (*Database) GetAssigneeStats

func (database *Database) GetAssigneeStats(pid int64, count int64) *[]AssignedTasks

func (*Database) GetLogs

func (database *Database) GetLogs(since int64, level LogLevel) *[]LogEntry

func (*Database) GetManagerList

func (database *Database) GetManagerList() *[]Manager

func (*Database) GetManagerListWithRoleOn

func (database *Database) GetManagerListWithRoleOn(project int64) *[]ManagerRoleOn

func (*Database) GetManagerRoleOn

func (database *Database) GetManagerRoleOn(manager *Manager, projectId int64) ManagerRole

func (*Database) GetMonitoringSnapshotsBetween

func (database *Database) GetMonitoringSnapshotsBetween(pid int64, from int, to int) (ss *[]ProjectMonitoringSnapshot)

func (*Database) GetNMonitoringSnapshots

func (database *Database) GetNMonitoringSnapshots(pid int64, count int) (ss *[]ProjectMonitoringSnapshot)

func (*Database) GetProject

func (database *Database) GetProject(id int64) *Project

func (*Database) GetProjectWithRepoName

func (database *Database) GetProjectWithRepoName(repoName string) *Project

func (*Database) GetSecret

func (database *Database) GetSecret(pid int64, workerId int64) (secret string, err error)

func (*Database) GetTaskFromProject

func (database *Database) GetTaskFromProject(worker *Worker, projectId int64) *Task

func (*Database) GetWebhookSecret

func (database *Database) GetWebhookSecret(pid int64) (secret string, err error)

func (*Database) GetWorker

func (database *Database) GetWorker(id int64) *Worker

func (Database) HardReset

func (database Database) HardReset(pid int64) int64

func (*Database) MakeProjectSnapshots

func (database *Database) MakeProjectSnapshots()

func (Database) ReclaimAssignedTasks

func (database Database) ReclaimAssignedTasks(pid int64) int64

func (*Database) RejectAccessRequest

func (database *Database) RejectAccessRequest(workerId int64, projectId int64) bool

func (Database) ReleaseTask

func (database Database) ReleaseTask(id int64, workerId int64, result TaskResult, verification int64) bool

func (*Database) Reset

func (database *Database) Reset()

func (*Database) ResetFailedTasks

func (database *Database) ResetFailedTasks(pid int64) int64

func (*Database) ResetTimedOutTasks

func (database *Database) ResetTimedOutTasks()

func (*Database) SaveAccessRequest

func (database *Database) SaveAccessRequest(wa *WorkerAccess) bool

func (*Database) SaveManager

func (database *Database) SaveManager(manager *Manager, password []byte) error

func (*Database) SaveProject

func (database *Database) SaveProject(project *Project, webhookSecret string) (int64, error)

func (*Database) SaveTask

func (database *Database) SaveTask(task *Task, project int64, hash64 int64, wid int64) error

func (*Database) SaveWorker

func (database *Database) SaveWorker(worker *Worker)

func (*Database) SetManagerRoleOn

func (database *Database) SetManagerRoleOn(manager int64, projectId int64, role ManagerRole)

func (*Database) SetSecret

func (database *Database) SetSecret(pid int64, secret string)

func (*Database) SetWebhookSecret

func (database *Database) SetWebhookSecret(pid int64, secret string) (err error)

func (*Database) SetupLoggerHook

func (database *Database) SetupLoggerHook()

func (*Database) UpdateManager

func (database *Database) UpdateManager(manager *Manager)

func (*Database) UpdateManagerPassword

func (database *Database) UpdateManagerPassword(manager *Manager, newPassword []byte)

func (*Database) UpdateProject

func (database *Database) UpdateProject(project *Project) error

func (*Database) UpdateWorker

func (database *Database) UpdateWorker(worker *Worker) bool

func (*Database) ValidateCredentials

func (database *Database) ValidateCredentials(username []byte, password []byte) (*Manager, error)

type LogEntry

type LogEntry struct {
	Message   string   `json:"message"`
	Timestamp int64    `json:"timestamp"`
	Data      string   `json:"data"`
	Level     LogLevel `json:"level"`
}

type LogLevel

type LogLevel int
const (
	FATAL LogLevel = 1
	PANIC LogLevel = 2
	ERROR LogLevel = 3
	WARN  LogLevel = 4
	INFO  LogLevel = 5
	DEBUG LogLevel = 6
	TRACE LogLevel = 7
)

type Manager

type Manager struct {
	Id           int64  `json:"id"`
	Username     string `json:"username"`
	WebsiteAdmin bool   `json:"tracker_admin"`
	RegisterTime int64  `json:"register_time"`
}

type ManagerRole

type ManagerRole int
const (
	RoleNone         ManagerRole = 0
	RoleRead         ManagerRole = 1
	RoleEdit         ManagerRole = 2
	RoleManageAccess ManagerRole = 4
	RoleSecret       ManagerRole = 8
	RoleMaintenance  ManagerRole = 16
)

type ManagerRoleOn

type ManagerRoleOn struct {
	Manager Manager     `json:"manager"`
	Role    ManagerRole `json:"role"`
}

type Project

type Project struct {
	Id         int64      `json:"id"`
	Priority   int64      `json:"priority"`
	Name       string     `json:"name"`
	CloneUrl   string     `json:"clone_url"`
	GitRepo    string     `json:"git_repo"`
	Version    string     `json:"version"`
	Motd       string     `json:"motd"`
	Public     bool       `json:"public"`
	Hidden     bool       `json:"hidden"`
	Chain      int64      `json:"chain"`
	Paused     bool       `json:"paused"`
	AssignRate rate.Limit `json:"assign_rate"`
	SubmitRate rate.Limit `json:"submit_rate"`
}

type ProjectMonitoringSnapshot

type ProjectMonitoringSnapshot struct {
	NewTaskCount              int64 `json:"new_task_count"`
	FailedTaskCount           int64 `json:"failed_task_count"`
	ClosedTaskCount           int64 `json:"closed_task_count"`
	WorkerAccessCount         int64 `json:"worker_access_count"`
	AwaitingVerificationCount int64 `json:"awaiting_verification_count"`
	TimeStamp                 int64 `json:"time_stamp"`
}

type SaveTaskRequest

type SaveTaskRequest struct {
	Task     *Task
	Project  int64
	Hash64   int64
	WorkerId int64
}

type Task

type Task struct {
	Id                int64      `json:"id"`
	Priority          int16      `json:"priority"`
	Project           *Project   `json:"project"`
	Assignee          int64      `json:"assignee"`
	Retries           int16      `json:"retries"`
	MaxRetries        int16      `json:"max_retries"`
	Status            TaskStatus `json:"status"`
	Recipe            string     `json:"recipe"`
	MaxAssignTime     int64      `json:"max_assign_time"`
	AssignTime        int64      `json:"assign_time"`
	VerificationCount int16      `json:"verification_count"`
}

type TaskResult

type TaskResult int
const (
	TR_OK   TaskResult = 0
	TR_FAIL TaskResult = 1
	TR_SKIP TaskResult = 2
)

type TaskStatus

type TaskStatus int
const (
	NEW    TaskStatus = 1
	FAILED TaskStatus = 2
)

type Worker

type Worker struct {
	Id      int64  `json:"id"`
	Created int64  `json:"created"`
	Alias   string `json:"alias,omitempty"`
	Secret  []byte `json:"secret"`
	Paused  bool   `json:"paused"`
}

type WorkerAccess

type WorkerAccess struct {
	Submit  bool   `json:"submit"`
	Assign  bool   `json:"assign"`
	Request bool   `json:"request"`
	Worker  Worker `json:"worker"`
	Project int64  `json:"project"`
}

type WorkerStats

type WorkerStats struct {
	Alias           string `json:"alias"`
	ClosedTaskCount int64  `json:"closed_task_count"`
	Paused          bool   `json:"paused"`
	Id              int64  `json:"id"`
}

Jump to

Keyboard shortcuts

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