/usr/share/gocode/src/github.com/mesos/mesos-go/examples/zkdetect/main.go is in golang-github-mesos-mesos-go-dev 0.0.2+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | package main
import (
"flag"
"fmt"
log "github.com/golang/glog"
"github.com/mesos/mesos-go/detector"
_ "github.com/mesos/mesos-go/detector/zoo"
mesos "github.com/mesos/mesos-go/mesosproto"
)
type zkListener struct{}
func (l *zkListener) OnMasterChanged(info *mesos.MasterInfo) {
if info == nil {
log.Infoln("master lost")
} else {
log.Infof("master changed: %s", masterString(info))
}
}
func (l *zkListener) UpdatedMasters(all []*mesos.MasterInfo) {
for i, info := range all {
log.Infof("master (%d): %s", i, masterString(info))
}
}
func masterString(info *mesos.MasterInfo) string {
return fmt.Sprintf("Id %v Ip %v Hostname %v Port %v Version %v Pid %v",
info.GetId(), info.GetIp(), info.GetHostname(), info.GetPort(), info.GetVersion(), info.GetPid())
}
func main() {
masters := flag.String("masters", "zk://localhost:2181/mesos", "ZK Mesos masters URI")
flag.Parse()
log.Infof("creating ZK detector for %q", *masters)
m, err := detector.New(*masters)
if err != nil {
log.Fatalf("failed to create ZK listener for Mesos masters: %v", err)
}
log.Info("created ZK detector")
err = m.Detect(&zkListener{})
if err != nil {
log.Fatalf("failed to register ZK listener: %v", err)
}
log.Info("registered ZK listener")
select {} // never stop
}
|