summaryrefslogtreecommitdiff
path: root/http.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-16 05:21:44 -0600
committerJeff Carr <[email protected]>2024-11-16 05:21:44 -0600
commit70cc9944adfea53e1c5a841d573cac79a5b94ce9 (patch)
tree8b980ddd002628c5c7290a94bfdaa0b5a80974e8 /http.go
parent5ea2e5999bf19c5b0dcd594ce5c646ae2227fcec (diff)
create and start work againv0.2.16v0.2.15v0.2.14
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'http.go')
-rw-r--r--http.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/http.go b/http.go
index 9a7a18d..6241d7e 100644
--- a/http.go
+++ b/http.go
@@ -2,10 +2,12 @@ package main
import (
"fmt"
+ "io/ioutil"
"net/http"
"os"
"strings"
+ "go.wit.com/lib/protobuf/virtbuf"
"go.wit.com/lib/virtigolib"
"go.wit.com/log"
)
@@ -22,6 +24,11 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
log.HttpMode(w)
defer log.HttpMode(nil)
+ msg, err := ioutil.ReadAll(r.Body) // Read the body as []byte
+ if err != nil {
+ log.Info("ReadAll() error =", err)
+ return
+ }
if route == "/uptime" {
ok, s := uptimeCheck()
log.Info(s)
@@ -33,6 +40,34 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
return
}
+ if route == "/create" {
+ var d *virtbuf.Droplet
+ d = new(virtbuf.Droplet)
+ if err := d.Unmarshal(msg); err != nil {
+ log.Info("proto.Unmarshal() failed on wire message len", len(msg))
+ log.Info("error =", err)
+ return
+ }
+ log.Info("proto.Unmarshal() worked on msg len", len(msg), "hostname =", d.Hostname)
+ found := me.cluster.FindDropletByName(d.Hostname)
+ if found != nil {
+ log.Info("already have hostname ", d.Hostname)
+ return
+ }
+ log.Info("new hostname ", d.Hostname)
+ if !me.cluster.AddDroplet(d) {
+ log.Info("new hostname added ok ", d.Hostname)
+ } else {
+ log.Info("hostname add failed for ", d.Hostname)
+ }
+ if err := me.cluster.ConfigSave(); err != nil {
+ log.Info("configsave error", err)
+ os.Exit(-1)
+ }
+ log.Info("config file saved")
+ return
+ }
+
if route == "/start" {
hostname := r.URL.Query().Get("hostname")
if hostname == "" {