restapi

package
v0.0.0-...-958ef34 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

* Copyright (c) 2023 Juice Technologies, Inc. All Rights Reserved.

* Copyright (c) 2023 Juice Technologies, Inc. All Rights Reserved.

* Copyright (c) 2023 Juice Technologies, Inc. All Rights Reserved.

* Copyright (c) 2023 Juice Technologies, Inc. All Rights Reserved.

Index

Constants

View Source
const (
	SessionClosed    = "closed"
	SessionQueued    = "queued"
	SessionAssigned  = "assigned"
	SessionActive    = "active"
	SessionCanceling = "canceling"
)
View Source
const (
	AgentClosed   = "closed"
	AgentActive   = "active"
	AgentDisabled = "disabled"
	AgentMissing  = "missing"
)

Variables

View Source
var (
	ErrUnableToConnect = errors.New("client: unable to connect")
	ErrInvalidScheme   = errors.New("client: invalid scheme")
	ErrInvalidInput    = errors.New("client: invalid input")
	ErrInvalidResponse = errors.New("client: invalid response")
)

Functions

func JsonReaderFromObject

func JsonReaderFromObject[T any](object T) (io.Reader, error)

Types

type Agent

type Agent struct {
	Id       string `json:"id"`
	State    string `json:"state"`
	Hostname string `json:"hostname"`
	Address  string `json:"address"`
	Version  string `json:"version"`
	PoolId   string `json:"poolId"`

	Gpus []Gpu `json:"gpus"`

	Labels map[string]string `json:"labels"`
	Taints map[string]string `json:"taints"`

	Sessions []Session `json:"sessions"`
}

type AgentUpdate

type AgentUpdate struct {
	Id             string                   `json:"id"`
	State          string                   `json:"state"`
	SessionsUpdate map[string]SessionUpdate `json:"sessions"`
	Gpus           []GpuMetrics             `json:"gpus"`
}

type Client

type Client struct {
	Client      *http.Client
	Address     string
	AccessToken string
}

func (Client) CancelSession

func (api Client) CancelSession(id string) error

func (Client) CancelSessionWithContext

func (api Client) CancelSessionWithContext(ctx context.Context, id string) error

func (Client) Delete

func (api Client) Delete(ctx context.Context, path string) (*http.Response, error)

func (Client) Get

func (api Client) Get(ctx context.Context, path string) (*http.Response, error)

func (Client) GetAgent

func (api Client) GetAgent(id string) (Agent, error)

func (Client) GetAgentWithContext

func (api Client) GetAgentWithContext(ctx context.Context, id string) (Agent, error)

func (Client) GetSession

func (api Client) GetSession(id string) (Session, error)

func (Client) GetSessionWithContext

func (api Client) GetSessionWithContext(ctx context.Context, id string) (Session, error)

func (Client) Post

func (api Client) Post(ctx context.Context, path string) (*http.Response, error)

func (Client) PostWithJson

func (api Client) PostWithJson(ctx context.Context, path string, body io.Reader) (*http.Response, error)

func (Client) PutWithJson

func (api Client) PutWithJson(ctx context.Context, path string, body io.Reader) (*http.Response, error)

func (Client) RegisterAgent

func (api Client) RegisterAgent(agent Agent) (string, error)

func (Client) RegisterAgentWithContext

func (api Client) RegisterAgentWithContext(ctx context.Context, agent Agent) (string, error)

func (Client) ReleaseSession

func (api Client) ReleaseSession(id string) error

func (Client) ReleaseSessionWithContext

func (api Client) ReleaseSessionWithContext(ctx context.Context, id string) error

func (Client) RequestSession

func (api Client) RequestSession(requirements SessionRequirements) (string, error)

func (Client) RequestSessionWithContext

func (api Client) RequestSessionWithContext(ctx context.Context, requirements SessionRequirements) (string, error)

func (Client) Status

func (api Client) Status() (Status, error)

func (Client) StatusWithContext

func (api Client) StatusWithContext(ctx context.Context) (Status, error)

func (Client) UpdateAgent

func (api Client) UpdateAgent(update AgentUpdate) error

func (Client) UpdateAgentWithContext

func (api Client) UpdateAgentWithContext(ctx context.Context, update AgentUpdate) error

func (Client) UpdateSession

func (api Client) UpdateSession(session Session) error

func (Client) UpdateSessionWithContext

func (api Client) UpdateSessionWithContext(ctx context.Context, session Session) error

type Connection

type Connection struct {
	ConnectionData

	ExitCode int `json:"exitCode"`
}

type ConnectionData

type ConnectionData struct {
	Id          string `json:"id"`
	Pid         string `json:"pid"`
	ProcessName string `json:"processName"`
}

type CreatePoolParams

type CreatePoolParams struct {
	Name string `json:"name"`
}

type Gpu

type Gpu struct {
	Index       int    `json:"index"`
	Uuid        string `json:"uuid"`
	Name        string `json:"name"`
	Vendor      string `json:"vendor"`
	Model       string `json:"model"`
	VendorId    uint32 `json:"vendorId"`
	DeviceId    uint32 `json:"deviceId"`
	SubDeviceId uint32 `json:"subDeviceId"`
	Driver      string `json:"driver"`
	Vram        uint64 `json:"vram"`
	PciBus      string `json:"pciBus"`

	Metrics GpuMetrics `json:"metrics"`
}

type GpuMetrics

type GpuMetrics struct {
	ClockCore       uint32 `json:"clockCore"`
	ClockMemory     uint32 `json:"clockMemory"`
	UtilizationGpu  uint32 `json:"utilizationGpu"`
	UtilizationVram uint32 `json:"utilizationVram"`
	TemperatureGpu  uint32 `json:"temperatureGpu"`
	VramUsed        uint64 `json:"vramUsed"`
	PowerDraw       uint32 `json:"powerDraw"`
	PowerLimit      uint32 `json:"powerLimit"`
	FanSpeed        uint32 `json:"fanSpeed"`
}

type GpuRequirements

type GpuRequirements struct {
	VramRequired uint64 `json:"vramRequired"`
	PciBus       string `json:"pciBus"`
}

type Permission

type Permission string
const (
	PermissionCreateSession Permission = "create_session"
	PermissionRegisterAgent Permission = "register_agent"
	PermissionAdmin         Permission = "admin"
)

type PermissionParams

type PermissionParams struct {
	Permission Permission `json:"permission"`
	UserId     string     `json:"userId"`
	PoolId     string     `json:"poolId"`
}

type Pool

type Pool struct {
	Id           string `json:"id"`
	Name         string `json:"name"`
	SessionCount int    `json:"sessionCount"`
	AgentCount   int    `json:"agentCount"`
	UserCount    int    `json:"userCount"`
}

type PoolPermissions

type PoolPermissions struct {
	UserIds map[string][]Permission `json:"userIds"`
}

type Server

type Server struct{}

type Session

type Session struct {
	Id      string `json:"id"`
	State   string `json:"state"`
	Address string `json:"address"`
	Version string `json:"version"`
	PoolId  string `json:"poolId"`

	Gpus        []SessionGpu `json:"gpus"`
	Connections []Connection `json:"connections"`
}

type SessionGpu

type SessionGpu struct {
	Index int `json:"index"`

	VramRequired uint64 `json:"vramRequired"`
}

type SessionRequirements

type SessionRequirements struct {
	Version string `json:"version"`
	PoolId  string `json:"poolId"`

	Gpus []GpuRequirements `json:"gpus"`

	MatchLabels map[string]string `json:"matchLabels"`
	Tolerates   map[string]string `json:"tolerates"`
}

type SessionUpdate

type SessionUpdate struct {
	State       string                `json:"State"`
	Connections map[string]Connection `json:"connections"`
}

type Status

type Status struct {
	State    string `json:"state"`
	Version  string `json:"version"`
	Hostname string `json:"hostname"`
}

type UserPermissions

type UserPermissions struct {
	Permissions map[Permission][]Pool `json:"permissions"`
}

type WebhookMessage

type WebhookMessage struct {
	Agent   string `json:"agent"`
	Session string `json:"session"`
	State   string `json:"state"`
}

Jump to

Keyboard shortcuts

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