summaryrefslogtreecommitdiff
path: root/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'http.go')
-rw-r--r--http.go92
1 files changed, 48 insertions, 44 deletions
diff --git a/http.go b/http.go
index a385b6f..7534b87 100644
--- a/http.go
+++ b/http.go
@@ -9,7 +9,6 @@ import (
"net/http"
"strings"
- "go.wit.com/lib/protobuf/zoopb"
"go.wit.com/log"
)
@@ -24,9 +23,7 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
route := cleanURL(r.URL.Path)
hostname := r.URL.Query().Get("hostname")
- flag := r.URL.Query().Get("flag")
- // packname := r.URL.Query().Get("package")
- // version := r.URL.Query().Get("version")
+ // flag := r.URL.Query().Get("flag")
msg, err := ioutil.ReadAll(r.Body) // Read the body as []byte
if err != nil {
@@ -43,54 +40,61 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
return
}
- if route == "/status" {
- var packs *zoopb.Packages
- packs = new(zoopb.Packages)
- if err := packs.Unmarshal(msg); err != nil {
- log.Info("/status proto.Unmarshal() failed on wire message len", len(msg), "from", hostname)
+ /*
+ if route == "/status" {
+ var packs *zoopb.Packages
+ packs = new(zoopb.Packages)
+ if err := packs.Unmarshal(msg); err != nil {
+ log.Info("/status proto.Unmarshal() failed on wire message len", len(msg), "from", hostname)
+ return
+ }
+
+ log.Info("/status Unmarshal worked with msg len", len(msg), "from", hostname)
+ log.Info("/status hostname", hostname, "has", packs.Len(), "packages installed")
+ fmt.Fprintln(w, "upgrade")
return
}
-
- log.Info("/status Unmarshal worked with msg len", len(msg), "from", hostname)
- log.Info("/status hostname", hostname, "has", packs.Len(), "packages installed")
- fmt.Fprintln(w, "upgrade")
- return
- }
+ */
// list out the machines and thier version of zood
- if route == "/list" {
- log.HttpMode(w)
- defer log.HttpMode(nil)
- loop := me.machines.SortByHostname()
- for loop.Scan() {
- m := loop.Next()
- zood := m.Packages.FindByName("zood")
- v := me.targets["zood"] // this is the target version
- if zood == nil {
- log.Info("machine", m.Hostname, "does not have zood installed")
- } else {
- log.Info(fmt.Sprintf("zood version %s vs target version %s on machine %s", zood.Version, v, m.Hostname))
+ /*
+ if route == "/list" {
+ log.HttpMode(w)
+ defer log.HttpMode(nil)
+ loop := me.machines.SortByHostname()
+ for loop.Scan() {
+ m := loop.Next()
+ zood := m.Packages.FindByName("zood")
+ v := me.targets["zood"] // this is the target version
+ if zood == nil {
+ log.Info("machine", m.Hostname, "does not have zood installed")
+ } else {
+ log.Info(fmt.Sprintf("zood version %s vs target version %s on machine %s", zood.Version, v, m.Hostname))
+ }
}
+ return
}
- return
- }
+ */
- // toggle logging flags
- if route == "/flag" {
- log.HttpMode(w)
- defer log.HttpMode(nil)
- log.Info("going to toggle flag:", flag)
- switch flag {
- case "ZOOD":
- if ZOOD.Enabled() {
- log.Log(NOW, "toogle ZOOD false")
- ZOOD.SetBool(false)
- } else {
- log.Log(NOW, "toogle ZOOD true")
- ZOOD.SetBool(true)
+ if route == "/uptime" {
+ if me.zood == nil {
+ fmt.Fprintf(w, "BAD zood == nil\n")
+ return
+ }
+ var count int
+ var bad int
+ all := me.machines.All()
+ for all.Scan() {
+ m := all.Next()
+ count += 1
+ if findVersion(m, "zood") != me.zood.version {
+ bad += 1
}
- default:
- log.Info("unknown looging flag:", flag)
+ }
+ if bad == 0 {
+ fmt.Fprintf(w, "GOOD machine count=(%d) all machines are version %s\n", count, me.zood.version)
+ } else {
+ fmt.Fprintf(w, "BAD machine count=(%d) upgrade=(%d) to %s\n", count, bad, me.zood.version)
}
return
}