summaryrefslogtreecommitdiff
path: root/digitalocean/droplet.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-03 12:40:31 -0600
committerJeff Carr <[email protected]>2024-01-03 12:40:31 -0600
commite14770e94c9ec126a3d418d6d2b2f15ef8cf1607 (patch)
tree12b223cbe9cb9c6ef98b23d8bf6ae96e2040b3d7 /digitalocean/droplet.go
parent1324717de0a1ccd830ca34aa03e0faa9e6d93a83 (diff)
fixed stuff
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'digitalocean/droplet.go')
-rw-r--r--digitalocean/droplet.go266
1 files changed, 0 insertions, 266 deletions
diff --git a/digitalocean/droplet.go b/digitalocean/droplet.go
deleted file mode 100644
index ff120a8..0000000
--- a/digitalocean/droplet.go
+++ /dev/null
@@ -1,266 +0,0 @@
-package digitalocean
-
-import (
- "errors"
- "sort"
- "strings"
- "strconv"
- "github.com/digitalocean/godo"
-
- "go.wit.com/log"
- // "go.wit.com/gui"
-)
-
-func (d *DigitalOcean) NewDroplet(dd *godo.Droplet) *Droplet {
- if ! myDo.Ready() {return nil}
-
- // check if the droplet ID already exists
- if (d.dropMap[dd.ID] != nil) {
- log.Error(errors.New("droplet.NewDroplet() already exists"))
- return d.dropMap[dd.ID]
- }
-
- droplet := new(Droplet)
- droplet.ready = false
- droplet.poll = dd // the information polled from the digital ocean API
- droplet.ID = dd.ID
- droplet.image = dd.Image.Name + " (" + dd.Image.Slug + ")"
-
- if (d.dGrid == nil) {
- d.dGrid = d.group.NewGrid("grid", 12, 1).Pad()
- }
-
- droplet.nameN = d.dGrid.NewLabel(dd.Name)
-
- d.dGrid.NewLabel(dd.Region.Slug)
-
- var ipv4 []string
- var ipv6 []string
- for _, network := range dd.Networks.V4 {
- if network.Type == "public" {
- ipv4 = append(ipv4, network.IPAddress)
- }
- }
-
- for _, network := range dd.Networks.V6 {
- if network.Type == "public" {
- ipv6 = append(ipv6, network.IPAddress)
- }
- }
- sort.Strings(ipv4)
- sort.Strings(ipv6)
- droplet.ipv4 = d.dGrid.NewLabel(strings.Join(ipv4, "\n"))
- droplet.ipv6 = d.dGrid.NewLabel(strings.Join(ipv6, "\n"))
-
- droplet.sizeSlugN = d.dGrid.NewLabel(dd.SizeSlug)
- droplet.imageN = d.dGrid.NewLabel(dd.Image.Slug)
- droplet.statusN = d.dGrid.NewLabel(dd.Status)
-
- droplet.connect = d.dGrid.NewButton("Connect", func () {
- droplet.Connect()
- })
-
- droplet.edit = d.dGrid.NewButton("Edit", func () {
- droplet.Show()
- })
-
- droplet.poweroff = d.dGrid.NewButton("Power Off", func () {
- droplet.PowerOff()
- })
-
- droplet.poweron = d.dGrid.NewButton("Power On", func () {
- droplet.PowerOn()
- })
-
- droplet.destroy = d.dGrid.NewButton("Destroy", func () {
- droplet.Destroy()
- })
-
- droplet.ready = true
- return droplet
-}
-
-func (d *Droplet) Active() bool {
- if ! d.Ready() {return false}
- log.Info("droplet.Active() status: ", d.poll.Status, "d.statusN.GetText() =", d.statusN.GetText())
- if (d.statusN.GetText() == "active") {
- return true
- }
- return false
-}
-
-// Returns true if the droplet is finished installing
-func (d *Droplet) Ready() bool {
- if d == nil {return false}
- return d.ready
-}
-
-// Returns true if the droplet is running
-func (d *Droplet) On() bool {
- if ! d.Ready() {return false}
- return true
-}
-
-func (d *Droplet) HasIPv4() bool {
- if ! d.Ready() {return false}
- if d.ipv4.GetText() == "" {
- return false
- }
- return true
-}
-func (d *Droplet) HasIPv6() bool {
- if ! d.Ready() {return false}
- if d.ipv6.GetText() == "" {
- return false
- }
- return true
-}
-
-func (d *Droplet) GetIPv4() string {
- if ! d.Ready() {return ""}
- return d.ipv4.GetText()
-}
-
-func (d *Droplet) GetIPv6() string {
- if ! d.Ready() {return ""}
- log.Info("droplet GetIPv6 has: n.GetText()", d.ipv6.GetText())
- return d.ipv6.GetText()
-}
-
-func (d *Droplet) Connect() {
- if ! d.Ready() {return}
- if d.HasIPv4() {
- ipv4 := d.GetIPv4()
- log.Info("droplet has IPv4 =", ipv4)
- xterm("ssh root@" + ipv4)
- return
- }
- if d.HasIPv6() {
- ipv6 := d.GetIPv6()
- log.Info("droplet has IPv6 =", ipv6)
- xterm("ssh root@[" + ipv6 + "]")
- return
- }
- log.Info("droplet.Connect() here", d.GetIPv4(), d.GetIPv6())
-}
-
-func (d *Droplet) Update(dpoll *godo.Droplet) {
- if ! d.Exists() {return}
- d.poll = dpoll
- log.Info("droplet.Update()", dpoll.Name, "dpoll.Status =", dpoll.Status)
- log.Spew(dpoll)
- d.statusN.SetText(dpoll.Status)
- if d.Active() {
- d.poweron.Disable()
- d.destroy.Disable()
- d.connect.Enable()
- d.poweroff.Enable()
- } else {
- d.poweron.Enable()
- d.destroy.Enable()
- d.poweroff.Disable()
- d.connect.Disable()
- }
-}
-
-func (d *Droplet) PowerOn() {
- if ! d.Exists() {return}
- log.Info("droplet.PowerOn() should do it here")
- myDo.PowerOn(d.ID)
-}
-
-func (d *Droplet) PowerOff() {
- if ! d.Exists() {return}
- log.Info("droplet.PowerOff() here")
- myDo.PowerOff(d.ID)
-}
-
-func (d *Droplet) Destroy() {
- if ! d.Exists() {return}
- log.Info("droplet.Destroy() ID =", d.ID, "Name =", d.nameN.GetText())
- myDo.deleteDroplet(d)
-}
-
-/*
-type Droplet struct {
- ID int `json:"id,float64,omitempty"`
- Name string `json:"name,omitempty"`
- Memory int `json:"memory,omitempty"`
- Vcpus int `json:"vcpus,omitempty"`
- Disk int `json:"disk,omitempty"`
- Region *Region `json:"region,omitempty"`
- Image *Image `json:"image,omitempty"`
- Size *Size `json:"size,omitempty"`
- SizeSlug string `json:"size_slug,omitempty"`
- BackupIDs []int `json:"backup_ids,omitempty"`
- NextBackupWindow *BackupWindow `json:"next_backup_window,omitempty"`
- SnapshotIDs []int `json:"snapshot_ids,omitempty"`
- Features []string `json:"features,omitempty"`
- Locked bool `json:"locked,bool,omitempty"`
- Status string `json:"status,omitempty"`
- Networks *Networks `json:"networks,omitempty"`
- Created string `json:"created_at,omitempty"`
- Kernel *Kernel `json:"kernel,omitempty"`
- Tags []string `json:"tags,omitempty"`
- VolumeIDs []string `json:"volume_ids"`
- VPCUUID string `json:"vpc_uuid,omitempty"`
-}
-*/
-func (d *Droplet) Show() {
- if ! d.Exists() {return}
- log.Info("droplet: ID =", d.ID)
- log.Info("droplet: Name =", d.GetName())
- log.Info("droplet: Size =", d.GetSize())
- log.Info("droplet: Memory =", d.GetMemory())
- log.Info("droplet: Disk =", d.GetDisk())
- log.Info("droplet: Image =", d.GetImage())
- log.Info("droplet: Status =", d.GetStatus())
- log.Info("droplet: ", d.poll.Name, d.poll.Image.Slug, d.poll.Region.Slug)
- log.Spew(d.poll)
-}
-
-func (d *Droplet) Hide() {
- if ! d.Exists() {return}
- log.Info("droplet.Hide() window")
- if ! d.hidden {
- // d.window.Hide()
- }
- d.hidden = true
-}
-
-func (d *Droplet) Exists() bool {
- if ! myDo.Ready() {return false}
- if d == nil {return false}
- if d.poll == nil {return false}
- return d.ready
-}
-
-func (d *Droplet) GetName() string {
- if ! d.Ready() {return ""}
- return d.nameN.GetText()
-}
-
-func (d *Droplet) GetSize() string {
- if ! d.Ready() {return ""}
- return d.sizeSlugN.GetText()
-}
-
-func (d *Droplet) GetMemory() string {
- if ! d.Ready() {return ""}
- return strconv.Itoa(d.memory)
-}
-
-func (d *Droplet) GetDisk() string {
- if ! d.Ready() {return ""}
- return strconv.Itoa(d.disk)
-}
-
-func (d *Droplet) GetImage() string {
- if ! d.Ready() {return ""}
- return d.imageN.GetText()
-}
-
-func (d *Droplet) GetStatus() string {
- if ! d.Ready() {return ""}
- return d.statusN.GetText()
-}