本文整理汇总了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;未经允许,请勿转载。 |
请发表评论