summaryrefslogtreecommitdiff
path: root/doDroplet.go
diff options
context:
space:
mode:
Diffstat (limited to 'doDroplet.go')
-rw-r--r--doDroplet.go36
1 files changed, 32 insertions, 4 deletions
diff --git a/doDroplet.go b/doDroplet.go
index 804897e..38d9903 100644
--- a/doDroplet.go
+++ b/doDroplet.go
@@ -71,10 +71,25 @@ func doDroplet() (string, error) {
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
+ if argv.Droplet.Show != nil {
+ log.Info(vm.SprintHeader())
+ txt := vm.FormatTEXT()
+ log.Info(txt)
+ return "droplet status", nil
+ }
+ if argv.Droplet.Start != nil {
+ log.Info("should start droplet here")
+ log.Info(vm.SprintHeader())
+ e := new(virtpb.Event)
+ e.Etype = virtpb.EventType_POWERON
+ e.DropletUuid = vm.Uuid
+
+ if err := admin.postEvent(e); err != nil {
+ return "droplet start err", err
+ }
+ return "droplet start", nil
+ }
+ return "droplet found", fmt.Errorf("do what to the droplet?")
}
found.Append(vm)
}
@@ -82,3 +97,16 @@ func doDroplet() (string, error) {
}
return "", fmt.Errorf("droplet %s not found", argv.Droplet.Name)
}
+
+func doEvent(e *virtpb.Event) *virtpb.Event {
+ result := new(virtpb.Event)
+ if e.Etype == virtpb.EventType_POWERON {
+ log.Println("power on droplet on local cluster here", e.DropletUuid)
+ result.State = virtpb.Event_DONE
+ rs, err := Start(e.DropletUuid)
+ log.Println("Start() returned", rs)
+ log.Println("Start() returned err", err)
+ }
+
+ return result
+}