diff options
Diffstat (limited to 'http.go')
| -rw-r--r-- | http.go | 92 |
1 files changed, 48 insertions, 44 deletions
@@ -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 } |
