models

package
v0.0.15 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AvailableResource added in v0.0.5

type AvailableResource struct {
	CpuCores               int64
	AvailableCpuPercentage float32
	AvailableMemory        MemorySize
}

type AverageResourceUsage added in v0.0.15

type AverageResourceUsage struct {
	IsInitialized      bool
	AverageCpuUsage    float64
	AverageMemoryUsage MemorySize
}

type CheckResourceReport

type CheckResourceReport struct {
	CpuUsageExceed          float64
	MemoryUsageExceed       MemorySize
	ContainerResourceUsages []ContainerResourceUsage
}

type Container

type Container struct {
	// ID should be the same as container name
	ID    string
	Image string
}

type ContainerResourceUsage

type ContainerResourceUsage struct {
	ContainerIdShort string
	CpuUsage         string
	MemoryUsage      dockerstats.MemoryStats
}

type CpuUsage

type CpuUsage struct {
	User   float64
	System float64
	Idle   float64
}

type DistributeError added in v0.0.12

type DistributeError struct {
	NodeEntry NodeEntry
	Task      Task
	Error     error
}

type DistributorName added in v0.0.12

type DistributorName string
const (
	RoundRobinDistributorName    DistributorName = "round_robin"
	ResourceAwareDistributorName DistributorName = "resource_aware"
)

type EventType added in v0.0.14

type EventType uint32
const (
	SuccessTaskEventType EventType = 0
	FailTaskEventType    EventType = 0
)

type Job

type Job struct {
	ID               *primitive.ObjectID `bson:"_id,omitempty" json:"id"`
	Name             string              `bson:"name" json:"name"`
	Status           JobStatus           `bson:"status" json:"status"`
	IsExperiment     bool                `bson:"is_experiment" json:"isExperiment"`
	ImageURL         string              `bson:"image_url" json:"imageURL"`
	DistributorLogic DistributorName     `bson:"distributor_logic" json:"distributorLogic"`
	CreatedAt        time.Time           `bson:"created_at" json:"createdAt"`
	UpdatedAt        time.Time           `bson:"updated_at" json:"updatedAt"`
	Logs             []Log               `bson:"logs" json:"logs"`
}

func (*Job) AddLog added in v0.0.15

func (j *Job) AddLog(severity LogSeverity, message string, parameters map[string]string)

func (*Job) DistributingJob added in v0.0.15

func (j *Job) DistributingJob()

func (*Job) ExperimentingJob added in v0.0.15

func (j *Job) ExperimentingJob()

func (*Job) FailedJobStatus added in v0.0.15

func (j *Job) FailedJobStatus(message string, err error)

func (*Job) SuccessJobStatus added in v0.0.15

func (j *Job) SuccessJobStatus()

type JobStatus

type JobStatus string
const (
	CreatedJobStatus       JobStatus = "created"
	ExperimentingJobStatus JobStatus = "experimenting"
	DistributingJobStatus  JobStatus = "distributing"
	SuccessJobStatus       JobStatus = "success"
	FailedJobStatus        JobStatus = "failed"
)

type Log added in v0.0.15

type Log struct {
	Severity   LogSeverity       `bson:"severity" json:"severity"`
	Parameters map[string]string `bson:"parameters" json:"parameters"`
	Message    string            `bson:"message" json:"message"`
	Timestamp  time.Time         `bson:"timestamp" json:"timestamp"`
}

type LogSeverity

type LogSeverity string
const (
	InfoLogSeverity  LogSeverity = "info"
	WarnLogSeverity  LogSeverity = "warn"
	ErrorLogSeverity LogSeverity = "error"
)

type MemorySize

type MemorySize struct {
	Size float64
	Unit string
}

type MemoryUsage

type MemoryUsage struct {
	Total  uint64
	Used   uint64
	Cached uint64
	Free   uint64
}

type NodeEntry

type NodeEntry struct {
	ID            *primitive.ObjectID `bson:"_id,omitempty"`
	NodeID        string              `bson:"node_id"`
	PublicKeyHash string              `bson:"public_key_hash"`
	IP            string              `bson:"ip"`
	Port          int32               `bson:"port"`
}

type OSResourceUsage

type OSResourceUsage struct {
	MemoryUsage MemoryUsage
	CpuUsage    CpuUsage
}

type Task

type Task struct {
	ID                      *primitive.ObjectID `bson:"_id,omitempty" json:"id"`
	Status                  TaskStatus          `bson:"task_status" json:"status" `
	ImageUrl                string              `bson:"image_url" json:"imageURL"`
	JobID                   *primitive.ObjectID `bson:"job_id" json:"jobID"`
	TaskAttributes          []byte              `bson:"task_attributes" json:"taskAttributes"`
	LatestDistributedNodeID string              `bson:"latest_distributed_node_id,omitempty" json:"latestDistributedNodeID,omitempty"`
	Logs                    []Log               `bson:"logs,omitempty" json:"logs"`
	CreatedAt               time.Time           `bson:"created_at" json:"createdAt"`
	UpdatedAt               time.Time           `bson:"updated_at" json:"updatedAt"`
	Result                  *[]byte             `bson:"result,omitempty" json:"-"`
	RetryCount              int                 `bson:"retry_count" json:"retryCount"`
	ResourceUsage           TaskResourceUsage   `bson:"resource_usage,omitempty" json:"resourceUsage"`
}

func (*Task) AddLog

func (t *Task) AddLog(severity LogSeverity, message string, parameters map[string]string)

func (*Task) CPWaitTimeout added in v0.0.14

func (t *Task) CPWaitTimeout()

func (*Task) DistributionFailure

func (t *Task) DistributionFailure(nodeID string, err error)

func (*Task) DistributionSuccess

func (t *Task) DistributionSuccess(nodeID string)

func (*Task) DoneExperimentTask added in v0.0.8

func (t *Task) DoneExperimentTask()

func (*Task) ExperimentTask added in v0.0.5

func (t *Task) ExperimentTask()

func (*Task) SkipExperimentTask added in v0.0.5

func (t *Task) SkipExperimentTask()

func (*Task) SuccessTask

func (t *Task) SuccessTask(nodeID string, result []byte)

func (*Task) WorkOnTaskFailure

func (t *Task) WorkOnTaskFailure(nodeID string, message string)

type TaskEventBus added in v0.0.14

type TaskEventBus struct {
	EventType EventType
	TaskID    primitive.ObjectID
}

type TaskResourceUsage added in v0.0.5

type TaskResourceUsage struct {
	Memory float64 `bson:"memory" json:"memory"`
	CPU    float32 `bson:"cpu" json:"cpu"`
}

func (*TaskResourceUsage) AverageWithOther added in v0.0.5

func (t *TaskResourceUsage) AverageWithOther(other TaskResourceUsage)

type TaskResponse added in v0.0.15

type TaskResponse struct {
	ID string
}

type TaskStatus

type TaskStatus string
const (
	CreatedTaskStatus     TaskStatus = "created"
	ReadyToDistribute     TaskStatus = "ready-to-distribute"
	DistributedTaskStatus TaskStatus = "distributed"
	WorkOnTaskFailure     TaskStatus = "work-on-task-failure"
	SuccessTaskStatus     TaskStatus = "success"
)

type TaskWithContext

type TaskWithContext struct {
	Task                 Task
	Ctx                  context.Context
	CancelFunc           func()
	ContainerId          string
	AverageResourceUsage AverageResourceUsage
}

Jump to

Keyboard shortcuts

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