worker

package
v0.0.0-...-2c7a424 Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 14 Imported by: 1

Documentation

Index

Constants

View Source
const (
	EnvMinioEndpoint  = "MINIO_ENDPOINT"
	EnvMinioAccessKey = "MINIO_ACCESS_KEY"
	EnvMinioSecretKey = "MINIO_SECRET_KEY"

	MinioFileLifetime = 24 * time.Hour
)
View Source
const (
	Cmd = "worker"

	EnvNodeType  = "WORKER_NODE_TYPE"
	EnvWorkerUID = "WORKER_UID"
	EnvPodUID    = "POD_UID"
	EnvTestPlan  = "TEST_PLAN"
	EnvNamespace = "NAMESPACE" //k8s namespace

)

Variables

View Source
var (
	ErrBandwidthIsNil        = &Error{Code: "ErrBandwidthIsNil", Message: "Bandwidth is nil"}
	ErrPacketLossIsNil       = &Error{Code: "ErrPacketLossIsNil", Message: "PacketLoss is nil"}
	ErrLatencyIsNil          = &Error{Code: "ErrLatencyIsNil", Message: "Latency is nil"}
	ErrInitMinioClient       = &Error{Code: "ErrInitMinioClient", Message: "Failed to initialize Minio client"}
	ErrNoInterfaceFoundForIP = &Error{Code: "ErrNoInterfaceFoundForIP", Message: "No interface found for IP"}
	ErrCheckingBucketExists  = &Error{Code: "ErrCheckingBucketExists", Message: "Failed to check if bucket exists"}
	ErrCreatingBucket        = &Error{Code: "ErrCreatingBucket", Message: "Failed to create bucket"}
	ErrPushingDataToMinio    = &Error{Code: "ErrPushingDataToMinio", Message: "Failed to push data to Minio"}
	ErrGettingPresignedURL   = &Error{Code: "ErrGettingPresignedURL", Message: "Failed to get presigned URL"}
)

Functions

This section is empty.

Types

type BitTwister

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

func NewBitTwister

func NewBitTwister(networkInterface *net.Interface) *BitTwister

func (*BitTwister) SetBandwidthLimit

func (b *BitTwister) SetBandwidthLimit(limit int64) (xdp.CancelFunc, error)

limit is in bytes per second

func (*BitTwister) SetLatencyAndJitter

func (b *BitTwister) SetLatencyAndJitter(latency, jitter time.Duration) (xdp.CancelFunc, error)

if you wanna set only one of the latency or jitter, set the other to 0

func (*BitTwister) SetPacketLossRate

func (b *BitTwister) SetPacketLossRate(rate int32) (xdp.CancelFunc, error)

rate is in percentage (0-100)

type Error

type Error struct {
	Code    string
	Message string
	Err     error
}

func (*Error) Error

func (e *Error) Error() string

func (*Error) Wrap

func (e *Error) Wrap(err error) error

type Minio

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

func NewMinio

func NewMinio(conf MinioConfig) (*Minio, error)

func (*Minio) Pull

func (m *Minio) Pull(ctx context.Context, contentID string) (io.ReadCloser, error)

func (*Minio) Push

func (m *Minio) Push(ctx context.Context, data io.Reader) (string, error)

PushToMinio pushes data (i.e. a reader) to Minio

func (*Minio) URL

func (m *Minio) URL(ctx context.Context, contentID string) (string, error)

URL returns an S3-compatible URL for a Minio file

type MinioConfig

type MinioConfig struct {
	Endpoint  string
	AccessKey string
	SecretKey string
	Token     string
	Secure    bool
}

type Worker

type Worker struct {
	UID        string
	Message    *message.Message
	BitTwister *BitTwister
	Minio      *Minio
	Envs       map[string]string
	Files      map[string]string // map[source_file_path]mapped_file_path
}

Worker represents a node with one controller and multiple app containers.

func (*Worker) LocalIPAddress

func (w *Worker) LocalIPAddress() (string, error)

func (*Worker) NetworkInterfaceByIP

func (w *Worker) NetworkInterfaceByIP(ipAddr string) (*net.Interface, error)

Jump to

Keyboard shortcuts

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