diff options
Diffstat (limited to 'doDroplet.go')
| -rw-r--r-- | doDroplet.go | 36 |
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 +} |
