diff options
| author | Jeff Carr <[email protected]> | 2025-04-20 19:40:50 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-04-20 19:40:50 -0500 |
| commit | 3cd1f64d15465160770794187ca632953fdd4c86 (patch) | |
| tree | 3b4184706f311f97e2ac87361a623378d952e9d3 /doDroplet.go | |
| parent | 69ee3b95d0a2f5a3079e512a9f3315026912fcde (diff) | |
stub in droplet statusv0.2.52
Diffstat (limited to 'doDroplet.go')
| -rw-r--r-- | doDroplet.go | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/doDroplet.go b/doDroplet.go new file mode 100644 index 0000000..8a7cafc --- /dev/null +++ b/doDroplet.go @@ -0,0 +1,81 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +// An app to submit patches for the 30 GO GUI repos + +import ( + "fmt" + "net/http" + "net/url" + "time" + + "go.wit.com/lib/protobuf/virtpb" + "go.wit.com/log" +) + +func doDroplet() (string, error) { + err := me.clusters.ConfigLoad() + if err != nil { + return "", err + } + + msg := []byte(`{"message": "Hello"}`) + + // Initialize a persistent client with a custom Transport + client = &http.Client{ + Transport: &http.Transport{ + DisableKeepAlives: false, // Ensure Keep-Alive is enabled + }, + Timeout: 10 * time.Second, // Set a reasonable timeout + } + + me.cmap = make(map[*virtpb.Cluster]*adminT) + for c := range me.clusters.IterAll() { + var err error + admin := new(adminT) + me.cmap[c] = admin + log.Info("found in the config file", c.URL[0]) + // a.makeClusterGroup(c) + admin.url, err = url.Parse(c.URL[0]) + if err != nil { + return "", err + } + + // update the droplet list + if data, err := postData(admin.url.String()+"/DropletsPB", msg); err != nil { + log.Info("/DropletsPB Error:", err) + continue + } else { + admin.droplets = new(virtpb.Droplets) + if err := admin.droplets.Unmarshal(data); err != nil { + log.Printf("DropletsPB Response len:%d\n", len(data)) + log.Println("droplets marshal failed", err) + continue + } + } + log.Printf("Cluster Name: %s\n", c.Name) + log.Printf("Number of Droplets: %d\n", admin.droplets.Len()) + + if argv.Droplet.Name == "" { + return "", fmt.Errorf("--name droplet name was empty") + } + + var found *virtpb.Droplets + found = virtpb.NewDroplets() + all := admin.droplets.All() + for all.Scan() { + vm := all.Next() + if argv.Droplet.Name == vm.Hostname { + log.Info(vm.SprintHeader()) + txt := vm.FormatTEXT() + log.Info(txt) + return "droplet found", nil + } + found.Append(vm) + } + log.Println("On Droplet count=", found.Len()) + } + return "", fmt.Errorf("droplet %s not found", argv.Droplet.Name) +} |
