本文整理汇总了Golang中github.com/basho-labs/riak-mesos/metadata_manager.ZkNode类的典型用法代码示例。如果您正苦于以下问题:Golang ZkNode类的具体用法?Golang ZkNode怎么用?Golang ZkNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ZkNode类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: setCoordinatedData
func (riakNode *RiakNode) setCoordinatedData(child *metamgr.ZkNode, config templateData) {
coordinatedData := common.CoordinatedData{
NodeName: riakNode.taskData.FullyQualifiedNodeName,
DisterlPort: int(config.DisterlPort),
PBPort: int(config.PBPort),
HTTPPort: int(config.HTTPPort),
Hostname: riakNode.taskData.Host,
ClusterName: riakNode.taskData.ClusterName,
FrameworkName: riakNode.taskData.FrameworkName,
}
cdBytes, err := coordinatedData.Serialize()
if err != nil {
log.Panic("Could not serialize coordinated data ", err)
}
child.SetData(cdBytes)
}
示例2: runLoop
func (riakNode *RiakNode) runLoop(child *metamgr.ZkNode) {
runStatus := &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_RUNNING.Enum(),
}
_, err := riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
waitChan := riakNode.pm.Listen()
select {
case <-waitChan:
{
log.Info("Riak Died, failing")
// Just in case, cleanup
// This means the node died :(
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FAILED.Enum(),
}
_, err = riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
}
case <-riakNode.finishChan:
{
log.Info("Finish channel says to shut down Riak")
riakNode.pm.TearDown()
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FINISHED.Enum(),
}
_, err = riakNode.executor.Driver.SendStatusUpdate(runStatus)
if err != nil {
log.Panic("Got error", err)
}
}
}
child.Delete()
time.Sleep(15 * time.Second)
log.Info("Shutting down")
riakNode.executor.Driver.Stop()
}
示例3: runLoop
func (riakNode *RiakNode) runLoop(child *metamgr.ZkNode) {
var runStatus *mesos.TaskStatus
var err error
// runStatus := &mesos.TaskStatus{
// TaskId: riakNode.taskInfo.GetTaskId(),
// State: mesos.TaskState_TASK_RUNNING.Enum(),
// }
// _, err := riakNode.executor.Driver.SendStatusUpdate(runStatus)
// if err != nil {
// log.Panic("Got error", err)
// }
waitChan := riakNode.pm.Listen()
select {
case <-waitChan:
{
log.Infof("Riak Died, finishing with status: %+v", riakNode.killStatus)
_, err = riakNode.executor.Driver.SendStatusUpdate(riakNode.killStatus)
if err != nil {
log.Panic("Got error", err)
}
}
case <-riakNode.finishChan:
{
log.Info("Finish channel says to shut down Riak")
riakNode.pm.TearDown()
runStatus = &mesos.TaskStatus{
TaskId: riakNode.taskInfo.GetTaskId(),
State: mesos.TaskState_TASK_FINISHED.Enum(),
}
riakNode.killStatus = runStatus
_, err = riakNode.executor.Driver.SendStatusUpdate(riakNode.killStatus)
if err != nil {
log.Panic("Got error", err)
}
}
}
child.Delete()
time.Sleep(15 * time.Second)
log.Info("Shutting down")
riakNode.executor.Driver.Stop()
}
示例4: GetSchedulerState
func GetSchedulerState(mm *metadata_manager.MetadataManager) *SchedulerState {
var zkNode *metadata_manager.ZkNode
var err error
zkNode, err = mm.GetRootNode().GetChild("SchedulerState")
if err == zk.ErrNoNode {
ess := emptySchedulerState()
zkNode, err = mm.GetRootNode().MakeChildWithData("SchedulerState", ess.serialize(), false)
if err != nil {
log.Panic(err)
}
ess.zkNode = zkNode
return ess
} else {
ss, err := DeserializeSchedulerState(zkNode.GetData())
if err != nil {
log.Panic(err)
}
ss.zkNode = zkNode
return ss
}
}