funclet

package
v0.0.0-...-d691e2b Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2022 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Overview

Package funclet

Package funclet

Index

Constants

View Source
const RuntimeHTTPSock = ".runtime-http.sock"

Variables

View Source
var (
	ContainerNotExists = errors.New("container not exists")
)

Functions

func CopyDir

func CopyDir(src string, dst string, mode os.FileMode) (err error)

func CopyFile

func CopyFile(src, dst string, mode os.FileMode) (err error)

func GetPathConfig

func GetPathConfig(o *options.FuncletOptions) *file.PathConfig

func ReaderToLog

func ReaderToLog(r io.ReadCloser, logger *logs.Logger)

Types

type BsamFunctionProperties

type BsamFunctionProperties struct {
	CodeUri     string           `yaml:"CodeUri"`
	Handler     string           `yaml:"Handler"`
	Runtime     string           `yaml:"Runtime"`
	MemorySize  int              `yaml:"MemorySize"`
	Timeout     int              `yaml:"Timeout"`
	Environment *api.Environment `yaml:"Environment"`
}

func NewBsamFunctionProperties

func NewBsamFunctionProperties(config *api.FunctionConfig) *BsamFunctionProperties

type BsamFunctionResource

type BsamFunctionResource struct {
	Type       string                  `yaml:"Type"`
	Properties *BsamFunctionProperties `yaml:"Properties"`
}

func NewBsamFunctionResource

func NewBsamFunctionResource(config *api.FunctionConfig) *BsamFunctionResource

type BsamResources

type BsamResources map[string]*BsamFunctionResource

func NewBsamResources

func NewBsamResources() BsamResources

type BsamTemplate

type BsamTemplate struct {
	TemplateFormatVersion string        `yaml:"BCETemplateFormatVersion"`
	Transform             string        `yaml:"Transform"`
	Description           string        `yaml:"Description"`
	Resources             BsamResources `yaml:"Resources"`
}

func NewBsamTemplate

func NewBsamTemplate() *BsamTemplate

type ContainerIsBusy

type ContainerIsBusy struct {
	ID           string
	CurrentEvent api.Event
	TriggerEvent api.Event
}

func (ContainerIsBusy) Error

func (e ContainerIsBusy) Error() string

type ContainerManager

type ContainerManager struct {
	ContainerMap *ContainerMap
}

func NewContainerManager

func NewContainerManager(podName string, o *options.FuncletOptions) *ContainerManager

func (*ContainerManager) LockContainer

func (m *ContainerManager) LockContainer(id string, event api.Event, ctx *funcletCtx.Context) (res bool, err error)

func (*ContainerManager) UnLockContainer

func (m *ContainerManager) UnLockContainer(id string, ctx *funcletCtx.Context) (err error)

func (*ContainerManager) UnLockContainerWithLog

func (m *ContainerManager) UnLockContainerWithLog(id string, ctx *funcletCtx.Context) (err error)

type ContainerMap

type ContainerMap struct {
	CMap sync.Map
}

func InitContainerMap

func InitContainerMap(podName string, num int) *ContainerMap

func (*ContainerMap) Exist

func (m *ContainerMap) Exist(id string) (info *api.ContainerInfo, exist bool)

func (*ContainerMap) GetContainer

func (m *ContainerMap) GetContainer(id string) (info *api.ContainerInfo, err error)

func (*ContainerMap) UpdateContainerPid

func (m *ContainerMap) UpdateContainerPid(id string, pid int) (err error)

func (*ContainerMap) UpdateContainerStreamMode

func (m *ContainerMap) UpdateContainerStreamMode(id string, streamMode bool) (err error)

type ContainerNotExist

type ContainerNotExist struct {
	ID string
}

func (ContainerNotExist) Error

func (e ContainerNotExist) Error() string

type ContainerNotRunning

type ContainerNotRunning struct {
	ID string
}

func (ContainerNotRunning) Error

func (e ContainerNotRunning) Error() string

type Funclet

type Funclet struct {
	PodName string
	Options *options.FuncletOptions

	RuntimeClient    runtime.RuntimeManagerInterface
	CodeManager      code.ManagerInterface
	RunnerManager    runner.RunnerManagerInterface
	MountManager     file.MountManagerInterface
	PathManager      file.PathManagerInterface
	NetworkManager   network.NetworkManagerInterface
	TmpManager       tmp.TmpManagerInterface
	ContainerManager *ContainerManager

	HandlingChanMap *HandlingChanMap
	// contains filtered or unexported fields
}

Funclet

func InitFunclet

func InitFunclet(o *options.FuncletOptions, stopCh <-chan struct{}, finishCh chan struct{}) (f *Funclet, err error)

func (*Funclet) BulkGetContainers

func (f *Funclet) BulkGetContainers(IDs []string) (list map[string]*api.ContainerInfo, err error)

func (*Funclet) ContainerInfo

func (f *Funclet) ContainerInfo(ID string) (info *api.ContainerInfo, err error)

func (*Funclet) ContainerInfoHandler

func (f *Funclet) ContainerInfoHandler(c *server.Context)

func (*Funclet) ContainerListHandler

func (f *Funclet) ContainerListHandler(c *server.Context)

func (*Funclet) CoolDownHandler

func (f *Funclet) CoolDownHandler(c *server.Context)

func (*Funclet) DeleteContainer

func (f *Funclet) DeleteContainer(ctx *funcletCtx.Context) (err error)

func (*Funclet) GetContainerConfPath

func (f *Funclet) GetContainerConfPath(containerName string) string

func (*Funclet) GetNodeHandler

func (f *Funclet) GetNodeHandler(c *server.Context)

func (*Funclet) GetPidFromFile

func (f *Funclet) GetPidFromFile(containerID string) (pid int, err error)

func (*Funclet) GetUserCodePath

func (f *Funclet) GetUserCodePath(codeSha256 string) string

GetUserCodePath

func (*Funclet) HelloWorldHandler

func (f *Funclet) HelloWorldHandler(c *server.Context)

func (*Funclet) IDEWarmUp

func (f *Funclet) IDEWarmUp(ctx *funcletCtx.Context, params api.WarmupRequest) (err error)

func (*Funclet) IDEWarmUpContainerEvent

func (f *Funclet) IDEWarmUpContainerEvent(ctx *funcletCtx.Context, params api.WarmupRequest) (err error)

func (*Funclet) IDEWarmUpHandler

func (f *Funclet) IDEWarmUpHandler(c *server.Context)

func (*Funclet) InitAllContainers

func (f *Funclet) InitAllContainers()

func (*Funclet) InitContainer

func (f *Funclet) InitContainer(ctx *funcletCtx.Context) (err error)

func (*Funclet) InitContainerEvent

func (f *Funclet) InitContainerEvent(containerID string) (err error)

func (*Funclet) InstallAPI

func (f *Funclet) InstallAPI(container *restful.Container)

InstallAPI xxx

func (*Funclet) List

func (f *Funclet) List(criteria *api.ListContainerCriteria) (list []*api.ContainerInfo, err error)

func (*Funclet) ListAllContainers

func (f *Funclet) ListAllContainers() (list []*api.ContainerInfo, err error)

func (*Funclet) NewContext

func (f *Funclet) NewContext(requestID string, logger *logs.Logger) *funcletCtx.Context

func (*Funclet) NodeInfo

func (f *Funclet) NodeInfo() (info *api.FuncletNodeInfo, err error)

func (*Funclet) RebornHandler

func (f *Funclet) RebornHandler(c *server.Context)

func (*Funclet) RecycleTask

func (f *Funclet) RecycleTask(stopCh <-chan struct{}, finishCh chan struct{})

func (*Funclet) RemoveTmpDevice

func (f *Funclet) RemoveTmpDevice(ctx *funcletCtx.Context, pathName string)

func (*Funclet) Reset

func (f *Funclet) Reset() (err error)

tools to reset node

func (*Funclet) ResetContainer

func (f *Funclet) ResetContainer(ctx *funcletCtx.Context) (err error)

func (*Funclet) ResetContainerEvent

func (f *Funclet) ResetContainerEvent(ctx *funcletCtx.Context, params *api.ResetRequest) (err error, response *api.ResetResponse)

func (*Funclet) ResetContainers

func (f *Funclet) ResetContainers(ctx *funcletCtx.Context, params *api.ResetRequest) (err error, response *api.ResetResponse)

func (*Funclet) ResetHandler

func (f *Funclet) ResetHandler(c *server.Context)

func (*Funclet) SetNetwork

func (f *Funclet) SetNetwork(pid int) error

func (*Funclet) StartContainer

func (f *Funclet) StartContainer(ctx *funcletCtx.Context) error

func (*Funclet) StopContainer

func (f *Funclet) StopContainer(ctx *funcletCtx.Context, sync bool) (err error)

func (*Funclet) WaitForContainerExits

func (f *Funclet) WaitForContainerExits(ctx *funcletCtx.Context) (err error)

func (*Funclet) WarmUp

func (f *Funclet) WarmUp(ctx *funcletCtx.Context, params api.WarmupRequest) (err error)

func (*Funclet) WarmUpContainerEvent

func (f *Funclet) WarmUpContainerEvent(ctx *funcletCtx.Context, params api.WarmupRequest) (err error)

func (*Funclet) WarmUpHandler

func (f *Funclet) WarmUpHandler(c *server.Context)

type HandlingChanMap

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

HandlingChanMap

func NewHandlingChanMap

func NewHandlingChanMap() *HandlingChanMap

NewHandlingChanMap

func (*HandlingChanMap) CloseChan

func (m *HandlingChanMap) CloseChan(key string)

CloseChan

func (*HandlingChanMap) GetChan

func (m *HandlingChanMap) GetChan(key string) (chan string, bool)

GetChan

type LoopDeviceInfo

type LoopDeviceInfo struct {
	LoopDeviceContainer string
	Target              string
	ReadOnly            bool
	FileType            string
	Device              uint64
}

LoopDeviceContainer Info

func (*LoopDeviceInfo) String

func (l *LoopDeviceInfo) String() string

type Meta

type Meta struct {
	*api.FunctionConfig
	RuntimePath string
}

Meta Funclet

type MountInfo

type MountInfo struct {
	CodePath    string
	ConfPath    string
	RuntimePath string
}

Directories

Path Synopsis
Package command
Package command
device
loop
Package device
Package device
utils
Package utils
Package utils
Package device
Package device
Package runner
Package runner
Package runtime
Package runtime
api
Package api
Package api
cgroup
Package cgroup
Package cgroup
error
Package runtime
Package runtime
runc
Package runc
Package runc
Package tmp
Package tmp
hostpath
Package hostpath
Package hostpath
loop
Package loop
Package loop
Package tmp
Package tmp

Jump to

Keyboard shortcuts

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