summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--argv.go5
-rw-r--r--doAdminGui.go4
-rw-r--r--doList.go76
-rw-r--r--main.go2
5 files changed, 31 insertions, 60 deletions
diff --git a/Makefile b/Makefile
index 56e04b3..f01a705 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/argv.go b/argv.go
index a1d2862..7ab034c 100644
--- a/argv.go
+++ b/argv.go
@@ -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 {
diff --git a/doAdminGui.go b/doAdminGui.go
index 11d02f0..4433919 100644
--- a/doAdminGui.go
+++ b/doAdminGui.go
@@ -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)
}
diff --git a/doList.go b/doList.go
index ee2eeea..ef2ae5d 100644
--- a/doList.go
+++ b/doList.go
@@ -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
}
diff --git a/main.go b/main.go
index 1ca73f1..ee3182e 100644
--- a/main.go
+++ b/main.go
@@ -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")