droplet list works

This commit is contained in:
Jeff Carr 2025-04-12 11:27:55 -05:00
parent 16558e1b72
commit 69ee3b95d0
5 changed files with 31 additions and 60 deletions

View File

@ -9,6 +9,7 @@ REDOMOD = $(shell if [ -e go.sum ]; then echo go.sum exists; else GO111MODULE=
all: install
@echo build worked
virtigo list droplets
virtigo list droplets --on
build: goimports vet
GO111MODULE=off go build \
@ -117,3 +118,6 @@ protogen:
gocui: install
virtigo --gui gocui --gui-verbose --gui-file ../../toolkits/gocui/gocui.so >/tmp/forge.log 2>&1
log:
journalctl -f -xeu virtigod.service

View File

@ -28,8 +28,9 @@ type EmptyCmd struct {
type testCmd string
type ListCmd struct {
Droplets *EmptyCmd `arg:"subcommand:droplets" help:"list droplets"`
Hypervisors *EmptyCmd `arg:"subcommand:hypervisors" help:"list hypervisors"`
Droplets *EmptyCmd `arg:"subcommand:droplets" help:"list droplets"`
Hypervisors *EmptyCmd `arg:"subcommand:hypervisors" help:"list hypervisors"`
On bool `arg:"--on" help:"only show things that are on"`
}
func (a args) Description() string {

View File

@ -171,7 +171,7 @@ func (admin *adminT) doAdminGui() {
for c := range me.clusters.IterAll() {
a := new(adminT)
me.cmap[c] = a
log.Info("found in the config file", c.URL)
log.Info("found in the config file", c.URL[0])
a.makeClusterGroup(c)
}
@ -184,7 +184,7 @@ func (admin *adminT) doAdminGui() {
func (admin *adminT) makeClusterGroup(c *virtpb.Cluster) {
var err error
admin.url, err = url.Parse(c.URL)
admin.url, err = url.Parse(c.URL[0])
if err != nil {
badExit(err)
}

View File

@ -6,7 +6,6 @@ package main
// An app to submit patches for the 30 GO GUI repos
import (
"fmt"
"net/http"
"net/url"
"time"
@ -15,52 +14,6 @@ import (
"go.wit.com/log"
)
// refresh the windows & tables the user has open
func doListDroplets() {
/*
// update the droplet list
if data, err := postData(admin.url.String()+"/DropletsPB", msg); err != nil {
log.Info("/DropletsPB Error:", err)
} else {
fmt.Println("DropletsPB Response len:", len(data))
admin.droplets = new(virtpb.Droplets)
if err := admin.droplets.Unmarshal(data); err != nil {
fmt.Println("droplets marshal failed", err)
return
}
fmt.Println("Droplet len=", admin.droplets.Len())
}
// update the hypervisor list
if data, err := postData(admin.url.String()+"/HypervisorsPB", msg); err != nil {
log.Info("Error:", err)
} else {
fmt.Println("HypervisorsPB Response len:", len(data))
admin.hypervisors = new(virtpb.Hypervisors)
if err := admin.hypervisors.Unmarshal(data); err != nil {
fmt.Println("hypervisors marshal failed", err)
return
}
fmt.Println("Hypervisors len=", admin.hypervisors.Len())
}
// update the events list
if data, err := postData(admin.url.String()+"/EventsPB", msg); err != nil {
log.Info("Error:", err)
} else {
fmt.Println("EventsPB Response len:", len(data))
admin.events = new(virtpb.Events)
if err := admin.events.Unmarshal(data); err != nil {
fmt.Println("events marshal failed", err)
return
}
fmt.Println("Events len=", admin.events.Len())
}
*/
}
// var client *http.Client
func doList() {
msg := []byte(`{"message": "Hello"}`)
@ -77,26 +30,39 @@ func doList() {
var err error
admin := new(adminT)
me.cmap[c] = admin
log.Info("found in the config file", c.URL)
log.Info("found in the config file", c.URL[0])
// a.makeClusterGroup(c)
admin.url, err = url.Parse(c.URL)
admin.url, err = url.Parse(c.URL[0])
if err != nil {
badExit(err)
}
// update the droplet list
if data, err := postData(admin.url.String()+"/DropletsPB", msg); err != nil {
log.Info("/DropletsPB Error:", err)
continue
} else {
fmt.Println("DropletsPB Response len:", len(data))
admin.droplets = new(virtpb.Droplets)
if err := admin.droplets.Unmarshal(data); err != nil {
fmt.Println("droplets marshal failed", err)
return
log.Printf("DropletsPB Response len:%d\n", len(data))
log.Println("droplets marshal failed", err)
continue
}
fmt.Println("Droplet len=", admin.droplets.Len())
}
log.Printf("Cluster Name: %s\n", c.Name)
log.Printf("Number of Droplets: %d\n", admin.droplets.Len())
var found *virtpb.Droplets
found = virtpb.NewDroplets()
all := admin.droplets.All()
for all.Scan() {
vm := all.Next()
if argv.List.On && (vm.Current.State == virtpb.DropletState_OFF) {
continue
}
found.Append(vm)
log.Info(vm.SprintHeader())
}
log.Println("On Droplet count=", found.Len())
}
// sit here forever refreshing the GUI
}

View File

@ -87,7 +87,7 @@ func main() {
clusters := virtpb.NewClusters()
c := new(virtpb.Cluster)
c.Uuid = uuid.New().String()
c.URL = argv.Server
c.URL = append(c.URL, argv.Server)
clusters.Append(c)
virtpb.ConfigWriteTEXT(clusters, "cluster.text")