Documentation
¶
Index ¶
Constants ¶
View Source
const ( StateRunning = "running" StateDisabled = "disabled" StateError = "error" )
View Source
const DefaultUDPIdleTimeout = 60 * time.Second
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConflictError ¶
type ConflictError struct{ Msg string }
ConflictError 表示规则集冲突(监听端口冲突、ID 重复),API 层映射为 409。
func (*ConflictError) Error ¶
func (e *ConflictError) Error() string
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 负责规则生命周期编排:校验、diff 应用、目标解析与状态维护。
func NewManager ¶
func (*Manager) ListWithStatus ¶
func (m *Manager) ListWithStatus() []RuleWithStatus
ListWithStatus 返回规则及运行时状态,按规则集顺序。
type Rule ¶
type Rule struct {
ID string `json:"id"`
Name string `json:"name"`
Protocol string `json:"protocol"` // tcp | udp
ListenAddr string `json:"listenAddr"`
ListenPort int `json:"listenPort"`
ContainerName string `json:"containerName"`
Network string `json:"network,omitempty"`
TargetPort int `json:"targetPort"`
Enabled bool `json:"enabled"`
CloseOnSwitch bool `json:"closeOnSwitch,omitempty"`
// UDPIdleTimeoutSec UDP 会话空闲超时(秒),0 或缺省为 60。仅 udp 协议有意义。
UDPIdleTimeoutSec int `json:"udpIdleTimeoutSec,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
func ValidateSet ¶
ValidateSet 校验整组规则:语法、ID 唯一、启用规则间监听端口不冲突。 ID 为空的规则会被自动分配 ID。
func (Rule) UDPIdleTimeout ¶
type RuleStatus ¶
type RuleStatus struct {
RuleID string `json:"ruleId"`
State string `json:"state"` // running | disabled | error
ResolvedIP string `json:"resolvedIp,omitempty"`
ContainerID string `json:"containerId,omitempty"`
Network string `json:"network,omitempty"`
ActiveConns int64 `json:"activeConns"`
LastError string `json:"lastError,omitempty"`
LastResolveAt time.Time `json:"lastResolveAt,omitempty"`
}
type RuleWithStatus ¶
type RuleWithStatus struct {
Rule Rule
Status RuleStatus
}
RuleWithStatus 规则 + 运行时状态,供 API 返回。
Click to show internal directories.
Click to hide internal directories.