Documentation ¶
Overview ¶
Status Monitor & Configure Spread v2 [ 状态监控与配置蔓延 ]。
中心与节点之间的状态与配置的相互通讯。这里是第二个版本,因为第一版存在剥离问题,故还未彻底放弃。
第二版将才用角色进行节点配置信息的保存并支持更好的在线配置修改。节点配置信息的保存使用drule包的TRule。
Index ¶
- Constants
- func RegInterfaceForGob()
- type CenterSend
- type CenterSmcs
- func (c *CenterSmcs) AddNode(nodename, disname, code string, types uint8, groupname string) (err error)
- func (c *CenterSmcs) DelNode(nodename string) (err error)
- func (c *CenterSmcs) EmptyNodeErrLog(nodename string) (err error)
- func (c *CenterSmcs) EmptyNodeRunLog(nodename string) (err error)
- func (c *CenterSmcs) GetNodeConfig(nodename string) (config *cpool.ConfigPool, err error)
- func (c *CenterSmcs) GetNodeConfigEncode(nodename string) (config cpool.PoolEncode, err error)
- func (c *CenterSmcs) GetNodeConfigStatus(nodename string) (status ConfigStatus, err error)
- func (c *CenterSmcs) GetNodeErrLog(nodename string) (errlog []string, err error)
- func (c *CenterSmcs) GetNodeRunLog(nodename string) (runlog []string, err error)
- func (c *CenterSmcs) GetNodeRunStatus(node_id string) (leave int64, workstatus WorkSet, err error)
- func (c *CenterSmcs) GetNodeTree() (nodetree NodeTree, err error)
- func (c *CenterSmcs) GetNodeWorkSet(nodename string) (workset WorkSet, err error)
- func (c *CenterSmcs) NSTexec(ce *nst2.ConnExec) (stat nst2.SendStat, err error)
- func (c *CenterSmcs) SetNodeConfig(nodename string, config *cpool.ConfigPool) (err error)
- func (c *CenterSmcs) SetNodeConfigEncode(nodename string, config *cpool.PoolEncode) (err error)
- func (c *CenterSmcs) SetNodeConfigStatus(nodename string, status ConfigStatus) (err error)
- func (c *CenterSmcs) SetNodeWorkSet(nodename string, workset WorkSet) (err error)
- type ConfigStatus
- type NodeConfig
- type NodeSend
- type NodeSmcs
- type NodeStatus
- type NodeTree
- type WorkSet
Constants ¶
View Source
const ( ROLE_PREFIX = "SMCS_" // 保存角色的前缀 ROLE_ROOT = "SMCS_ROOT" // 配置目录的根 SLEEP_TIME = 60 // 每隔多长间隔发送一次,单位为秒 )
View Source
const ( ROLE_TYPE_GROUP = iota // 角色是一个分组 ROLE_TYPE_NODE = iota // 角色是一个节点 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CenterSend ¶
type CenterSend struct { NextWorkSet WorkSet // 下一个工作状态设置,WORK_SET_* ConfigStatus ConfigStatus // 配置的状态,配合CONFIG_* SetStartTime int64 // 下一个工作状态的开始时间 NewConfig bool // 是否有新配置文件 Config cpool.PoolEncode // 配置文件 Error string // 错误 }
中心发送给节点的数据结构
type CenterSmcs ¶
type CenterSmcs struct {
// contains filtered or unexported fields
}
中央的蔓延节点数据类型,也就是中央的服务器
func NewCenterSmcs ¶
func NewCenterSmcs(name, area string, store *trule.TRule) (center *CenterSmcs, err error)
新建一个中央蔓延点,这里的name也将作为配置节点的名称前缀
func (*CenterSmcs) AddNode ¶
func (c *CenterSmcs) AddNode(nodename, disname, code string, types uint8, groupname string) (err error)
添加一个节点,types见ROLE_TYPE_*,group为所在分组
func (*CenterSmcs) DelNode ¶
func (c *CenterSmcs) DelNode(nodename string) (err error)
删除一个节点,如果这个节点有子节点则不允许删除
func (*CenterSmcs) EmptyNodeErrLog ¶
func (c *CenterSmcs) EmptyNodeErrLog(nodename string) (err error)
清空节点的所有错误日志
func (*CenterSmcs) EmptyNodeRunLog ¶
func (c *CenterSmcs) EmptyNodeRunLog(nodename string) (err error)
清空节点的所有运行日志
func (*CenterSmcs) GetNodeConfig ¶
func (c *CenterSmcs) GetNodeConfig(nodename string) (config *cpool.ConfigPool, err error)
获取节点的配置信息
func (*CenterSmcs) GetNodeConfigEncode ¶
func (c *CenterSmcs) GetNodeConfigEncode(nodename string) (config cpool.PoolEncode, err error)
获取节点的配置信息(编码模式)
func (*CenterSmcs) GetNodeConfigStatus ¶
func (c *CenterSmcs) GetNodeConfigStatus(nodename string) (status ConfigStatus, err error)
获取节点的配置状态
func (*CenterSmcs) GetNodeErrLog ¶
func (c *CenterSmcs) GetNodeErrLog(nodename string) (errlog []string, err error)
获取节点所有的错误日志
func (*CenterSmcs) GetNodeRunLog ¶
func (c *CenterSmcs) GetNodeRunLog(nodename string) (runlog []string, err error)
获取节点所有的运行日志
func (*CenterSmcs) GetNodeRunStatus ¶
func (c *CenterSmcs) GetNodeRunStatus(node_id string) (leave int64, workstatus WorkSet, err error)
获取节点状态,返回的是上次记录的时间到目前的间隔
func (*CenterSmcs) GetNodeTree ¶
func (c *CenterSmcs) GetNodeTree() (nodetree NodeTree, err error)
返回节点树
func (*CenterSmcs) GetNodeWorkSet ¶
func (c *CenterSmcs) GetNodeWorkSet(nodename string) (workset WorkSet, err error)
获取节点的下一个工作状态
func (*CenterSmcs) SetNodeConfig ¶
func (c *CenterSmcs) SetNodeConfig(nodename string, config *cpool.ConfigPool) (err error)
设置节点的配置信息
func (*CenterSmcs) SetNodeConfigEncode ¶
func (c *CenterSmcs) SetNodeConfigEncode(nodename string, config *cpool.PoolEncode) (err error)
设置节点的配置信息(编码模式)
func (*CenterSmcs) SetNodeConfigStatus ¶
func (c *CenterSmcs) SetNodeConfigStatus(nodename string, status ConfigStatus) (err error)
设置节点的配置状态,status为CONFIG_*,也就是如果被设置成CONFIG_ALL_READY,则系统将在下次发送更新的配置。这个设置一定要是所有配置信息以及工作状态都调整好之后再执行。
func (*CenterSmcs) SetNodeWorkSet ¶
func (c *CenterSmcs) SetNodeWorkSet(nodename string, workset WorkSet) (err error)
设置节点下一个工作状态,workset为WORK_SET_*
type ConfigStatus ¶
type ConfigStatus uint8
const ( CONFIG_STATUS_NO ConfigStatus = iota // 配置信息空状态 CONFIG_STATUS_NOT_READY // 配置没有准备好(在这种状态下,不发送配置文件,配合WORK_SET_GOON) CONFIG_STATUS_ALL_READY // 配置准备妥当(将会在下次同步时发送) )
type NodeConfig ¶
type NodeConfig struct { roles.Role // 角色 Name string // 名称 Code string // 身份码 Disname string // 显示名称 ConfigStatus ConfigStatus // 配置的状态,配合CONFIG_* NextWorkSet WorkSet // 下一个工作状态设置,WORK_SET_* RoleType uint8 // 角色类型,是分组还是具体的,ROLE_TYPE_* Config cpool.PoolEncode // 配置信息 NewConfig bool // 是否有新配置文件 RunLog []string // 运行日志 ErrLog []string // 错误日志 }
节点的配置信息
type NodeSend ¶
type NodeSend struct { CenterName string // 中央的名字,用来做身份验证 Name string // 节点的名称 Code string // 身份码 Status NodeStatus // 节点状态,NODE_STATUS_* WorkSet WorkSet // 当前工作状态,WORK_SET_* RunLog []string // 要发送出去的运行日志 ErrLog []string // 要发送出去的错误日志 }
节点发送给中心的数据结构
type NodeSmcs ¶
type NodeSmcs struct {
// contains filtered or unexported fields
}
节点的蔓延数据类型,也就是节点的服务器
func NewNodeSmcs ¶
新建一个为节点使用的配置蔓延
func (*NodeSmcs) SendNodeSend ¶
func (ns *NodeSmcs) SendNodeSend(node_send NodeSend) (center_send CenterSend, err error)
发送NodeSend
type NodeStatus ¶
type NodeStatus uint8
const ( NODE_STATUS_NO_CONFIG NodeStatus = iota // 节点状态,没有配置文件 NODE_STATUS_OK // 一切OK NODE_STATUS_BUSY // 忙碌 NODE_STATUS_IDLE // 闲置 NODE_STATUS_STORE_FULL // 存储满 )
Click to show internal directories.
Click to hide internal directories.