model

package
v0.0.0-...-ed43dd5 Latest Latest
Warning

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

Go to latest
Published: May 11, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckPathPrefixes

func CheckPathPrefixes(path string, prefixes []string) (bool, error)

func ConvertRequest

func ConvertRequest(r *Request, srcPrefix []string) (*worker.Request, error)

ConvertRequest converts json request into worker request

Types

type Cmd

type Cmd struct {
	Args  []string   `json:"args"`
	Env   []string   `json:"env,omitempty"`
	Files []*CmdFile `json:"files,omitempty"`
	TTY   bool       `json:"tty,omitempty"`

	CPULimit          uint64 `json:"cpuLimit"`
	RealCPULimit      uint64 `json:"realCpuLimit"`
	ClockLimit        uint64 `json:"clockLimit"`
	MemoryLimit       uint64 `json:"memoryLimit"`
	StackLimit        uint64 `json:"stackLimit"`
	ProcLimit         uint64 `json:"procLimit"`
	CPURateLimit      uint64 `json:"cpuRateLimit"`
	CPUSetLimit       string `json:"cpuSetLimit"`
	StrictMemoryLimit bool   `json:"strictMemoryLimit"`

	CopyIn map[string]CmdFile `json:"copyIn"`

	CopyOut       []string `json:"copyOut"`
	CopyOutCached []string `json:"copyOutCached"`
	CopyOutMax    uint64   `json:"copyOutMax"`
	CopyOutDir    string   `json:"copyOutDir"`
}

Cmd defines command and limits to start a program using in envexec

type CmdFile

type CmdFile struct {
	Src     *string `json:"src"`
	Content *string `json:"content"`
	FileID  *string `json:"fileId"`
	Name    *string `json:"name"`
	Max     *int64  `json:"max"`
	Pipe    bool    `json:"pipe"`
	Symlink *string `json:"symlink"`
}

CmdFile defines file from multiple source including local / memory / cached or pipe collector

type PipeIndex

type PipeIndex struct {
	Index int `json:"index"`
	Fd    int `json:"fd"`
}

PipeIndex defines indexing for a pipe fd

type PipeMap

type PipeMap struct {
	In    PipeIndex `json:"in"`
	Out   PipeIndex `json:"out"`
	Name  string    `json:"name"`
	Max   int64     `json:"max"`
	Proxy bool      `json:"proxy"`
}

PipeMap defines in / out pipe for multiple program

type Request

type Request struct {
	RequestID   string    `json:"requestId"`
	Cmd         []Cmd     `json:"cmd"`
	PipeMapping []PipeMap `json:"pipeMapping"`
}

Request defines single worker request

type Response

type Response struct {
	RequestID string   `json:"requestId"`
	Results   []Result `json:"results"`
	ErrorMsg  string   `json:"error,omitempty"`
	// contains filtered or unexported fields
}

Response defines worker response for single request

func ConvertResponse

func ConvertResponse(r worker.Response, mmap bool) (ret Response, err error)

ConvertResponse converts

func (*Response) Close

func (r *Response) Close()

type Result

type Result struct {
	Status     Status              `json:"status"`
	ExitStatus int                 `json:"exitStatus"`
	Error      string              `json:"error,omitempty"`
	Time       uint64              `json:"time"`
	Memory     uint64              `json:"memory"`
	RunTime    uint64              `json:"runTime"`
	Files      map[string]string   `json:"files,omitempty"`
	FileIDs    map[string]string   `json:"fileIds,omitempty"`
	FileError  []envexec.FileError `json:"fileError,omitempty"`

	Buffs map[string][]byte `json:"-"`
	// contains filtered or unexported fields
}

Result defines single command result

func (*Result) Close

func (r *Result) Close()

type Status

type Status envexec.Status

Status offers JSON marshal for envexec.Status

func (Status) MarshalJSON

func (s Status) MarshalJSON() ([]byte, error)

MarshalJSON convert status into string

func (*Status) UnmarshalJSON

func (s *Status) UnmarshalJSON(b []byte) error

UnmarshalJSON convert string into status

Jump to

Keyboard shortcuts

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