• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang ipc.Context类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/google/seesaw/common/ipc.Context的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Context类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: ConfigStatus

// ConfigStatus returns status information about this Seesaw's current configuration.
func (s *SeesawEngine) ConfigStatus(ctx *ipc.Context, reply *seesaw.ConfigStatus) error {
	s.trace("ConfigStatus", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	s.engine.clusterLock.RLock()
	cluster := s.engine.cluster
	s.engine.clusterLock.RUnlock()

	if cluster == nil {
		return errors.New("no cluster configuration loaded")
	}

	cs := cluster.Status

	reply.LastUpdate = cs.LastUpdate
	reply.Attributes = make([]seesaw.ConfigMetadata, 0, len(cs.Attributes))
	for _, a := range cs.Attributes {
		reply.Attributes = append(reply.Attributes, a)
	}
	reply.Warnings = make([]string, 0, len(cs.Warnings))
	for _, warning := range cs.Warnings {
		reply.Warnings = append(reply.Warnings, warning)
	}
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:32,代码来源:ipc.go


示例2: ClusterStatus

// ClusterStatus returns status information about this Seesaw Cluster.
func (s *SeesawEngine) ClusterStatus(ctx *ipc.Context, reply *seesaw.ClusterStatus) error {
	s.trace("ClusterStatus", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	s.engine.clusterLock.RLock()
	cluster := s.engine.cluster
	s.engine.clusterLock.RUnlock()

	if cluster == nil {
		return errors.New("no cluster configuration loaded")
	}

	reply.Version = seesaw.SeesawVersion
	reply.Site = cluster.Site
	reply.Nodes = make([]*seesaw.Node, 0, len(cluster.Nodes))
	for _, node := range cluster.Nodes {
		reply.Nodes = append(reply.Nodes, node.Clone())
	}
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:27,代码来源:ipc.go


示例3: Failover

// Failover requests the Seesaw Engine to relinquish master state.
func (s *SeesawEngine) Failover(ctx *ipc.Context, reply *int) error {
	s.trace("Failover", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	return s.engine.haManager.requestFailover(false)
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:13,代码来源:ipc.go


示例4: ConfigReload

// ConfigReload requests a configuration reload.
func (s *SeesawEngine) ConfigReload(ctx *ipc.Context, reply *int) error {
	s.trace("ConfigReload", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	return s.engine.notifier.Reload()
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:13,代码来源:ipc.go


示例5: Backends

// Backends returns a list of currently configured Backends.
func (s *SeesawEngine) Backends(ctx *ipc.Context, reply *int) error {
	s.trace("Backends", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	// TODO(jsing): Implement this function.
	return fmt.Errorf("Unimplemented")
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:14,代码来源:ipc.go


示例6: HAStatus

// HAStatus returns the current HA status from the Seesaw Engine.
func (s *SeesawEngine) HAStatus(ctx *ipc.Context, status *seesaw.HAStatus) error {
	s.trace("HAStatus", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	if status != nil {
		*status = s.engine.haStatus()
	}
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:16,代码来源:ipc.go


示例7: Healthchecks

// Healthchecks returns a list of currently configured healthchecks that
// should be performed by the Seesaw Healthcheck component.
func (s *SeesawEngine) Healthchecks(ctx *ipc.Context, reply *healthcheck.Checks) error {
	s.trace("Healthchecks", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	configs := s.engine.hcManager.configs()
	if reply != nil {
		reply.Configs = configs
	}
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:18,代码来源:ipc.go


示例8: BGPNeighbors

// BGPNeighbors returns a list of the BGP neighbors that we are peering with.
func (s *SeesawEngine) BGPNeighbors(ctx *ipc.Context, reply *quagga.Neighbors) error {
	s.trace("BGPNeighbors", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	if reply == nil {
		return fmt.Errorf("Neighbors is nil")
	}
	s.engine.bgpManager.lock.RLock()
	reply.Neighbors = s.engine.bgpManager.neighbors
	s.engine.bgpManager.lock.RUnlock()
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:19,代码来源:ipc.go


示例9: HAConfig

// HAConfig returns the high-availability configuration for this node as
// determined by the engine.
func (s *SeesawEngine) HAConfig(ctx *ipc.Context, reply *seesaw.HAConfig) error {
	s.trace("HAConfig", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	c, err := s.engine.haConfig()
	if err != nil {
		return err
	}
	if reply != nil {
		reply.Copy(c)
	}
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:21,代码来源:ipc.go


示例10: Vservers

// Vservers returns a list of currently configured vservers.
func (s *SeesawEngine) Vservers(ctx *ipc.Context, reply *seesaw.VserverMap) error {
	s.trace("Vservers", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	if reply == nil {
		return fmt.Errorf("VserverMap is nil")
	}
	reply.Vservers = make(map[string]*seesaw.Vserver)
	s.engine.vserverLock.RLock()
	for name := range s.engine.vserverSnapshots {
		reply.Vservers[name] = s.engine.vserverSnapshots[name]
	}
	s.engine.vserverLock.RUnlock()
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:22,代码来源:ipc.go


示例11: VLANs

// VLANs returns a list of VLANs configured for this cluster.
func (s *SeesawEngine) VLANs(ctx *ipc.Context, reply *seesaw.VLANs) error {
	s.trace("VLANs", ctx)
	if ctx == nil {
		return errors.New("context is nil")
	}

	if !ctx.IsTrusted() {
		return errors.New("insufficient access")
	}

	if reply == nil {
		return errors.New("VLANs is nil")
	}
	reply.VLANs = make([]*seesaw.VLAN, 0)
	s.engine.vlanLock.RLock()
	for _, vlan := range s.engine.vlans {
		reply.VLANs = append(reply.VLANs, vlan)
	}
	s.engine.vlanLock.RUnlock()
	return nil
}
开发者ID:Cepave,项目名称:lvs-metrics,代码行数:22,代码来源:ipc.go



注:本文中的github.com/google/seesaw/common/ipc.Context类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang seesaw.IP类代码示例发布时间:2022-05-23
下一篇:
Golang profile.Profile类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap