proxymgr

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ProxyTableConvertor, _ = tableconvertor.New([]apiextensionsv1.CustomResourceColumnDefinition{{
	Name:     "Port",
	Type:     "integer",
	JSONPath: ".status.port",
}, {
	Name:     "PID",
	Type:     "integer",
	JSONPath: ".status.pid",
}, {
	Name:     "State",
	Type:     "string",
	JSONPath: ".status.state",
}, {
	Name:     "Age",
	Type:     "date",
	JSONPath: ".metadata.creationTimestamp",
}})

ProxyTableConvertor Proxy 表格转换器

Functions

func GetConfigSignature

func GetConfigSignature(config *rest.Config) string

GetConfigSignature 计算客户端配置签名

Types

type Proxy

type Proxy struct {
	metav1.TypeMeta `json:",inline"`
	// 对象元信息
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// 代理状态
	Status ProxyStatus `json:"status,omitempty"`
}

Proxy 缓存代理

func NewProxy

func NewProxy() *Proxy

NewProxy 创建一个 Proxy

func (*Proxy) DeepCopyObject

func (proxy *Proxy) DeepCopyObject() runtime.Object

DeepCopyObject 深拷贝

func (*Proxy) ToClientConfig

func (proxy *Proxy) ToClientConfig() *rest.Config

ToClientConfig 返回使用该代理的客户端配置

type ProxyList

type ProxyList struct {
	metav1.TypeMeta `json:",inline"`
	// 对象元信息
	metav1.ListMeta `json:"metadata,omitempty"`
	// 代理信息的列表
	Items []Proxy `json:"items"`
}

ProxyList 缓存代理列表

func NewProxyList

func NewProxyList() *ProxyList

NewProxyList 创建一个 ProxyList

func (*ProxyList) DeepCopyObject

func (list *ProxyList) DeepCopyObject() runtime.Object

DeepCopyObject 深拷贝

type ProxyManager

type ProxyManager interface {
	// List 列出所有正在运行的代理
	List(ctx context.Context) (*ProxyList, error)
	// Get 获取指定代理信息
	Get(ctx context.Context, name string) (*Proxy, error)
	// GetForConfig 获取使用指定客户端配置的代理
	GetForConfig(ctx context.Context, config *rest.Config) (*Proxy, error)
	// NewForConfig 使用指定客户端配置创建一个代理
	NewForConfig(ctx context.Context, config *rest.Config) (*Proxy, error)

	// LockProxy 当前进程认领并锁定客户端配置对应的代理(避免其它进程基于此客户端配置启动代理)
	LockProxy(ctx context.Context, config *rest.Config) (*Proxy, error)
	// UnlockProxy 解锁当前进程认领的客户端配置对应的代理
	UnlockProxy(ctx context.Context, proxy *Proxy) error
	// SetProxy 设置客户端配置对应的代理信息
	// NOTE: 仅能设置当前进程提供的代理服务信息,需要先 LockConfig
	SetProxy(ctx context.Context, proxy *Proxy) error
	// KillProxy 停止指定代理服务
	KillProxy(ctx context.Context, proxy *Proxy, wait, force bool) error
}

ProxyManager 代理服务管理器

func NewProxyManager

func NewProxyManager(dataRoot string, startProxyArgs []string) ProxyManager

NewProxyManager 创建一个代理服务管理器

type ProxyState

type ProxyState string

ProxyState 代理状态

const (
	ProxyPending ProxyState = "Pending"
	ProxyReady   ProxyState = "Ready"
	ProxyDead    ProxyState = "Dead"
)

ProxyState 的可选值

type ProxyStatus

type ProxyStatus struct {
	// 状态
	State ProxyState `json:"state,omitempty"`
	// 处于当前状态的原因,可枚举
	Reason string `json:"reason,omitempty"`
	// 关于当前状态的人类可读的描述
	Message string `json:"message,omitempty"`
	// 代理服务进程 ID
	PID int `json:"pid,omitempty"`
	// 代理服务监听端口
	Port int `json:"port,omitempty"`
	// 代理服务数据根目录
	DataRoot string `json:"dataRoot,omitempty"`
	// 运行代理的客户端配置签名
	ClientConfigSignature string `json:"clientConfigSignature,omitempty"`
	// contains filtered or unexported fields
}

ProxyStatus 代理状态

Jump to

Keyboard shortcuts

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