summaryrefslogtreecommitdiff
path: root/structs.go
diff options
context:
space:
mode:
Diffstat (limited to 'structs.go')
-rw-r--r--structs.go91
1 files changed, 91 insertions, 0 deletions
diff --git a/structs.go b/structs.go
new file mode 100644
index 0000000..fdef242
--- /dev/null
+++ b/structs.go
@@ -0,0 +1,91 @@
+/*
+ The Digital Ocean Struct
+*/
+
+package digitalocean
+
+import (
+ "github.com/digitalocean/godo"
+
+ "go.wit.com/gui/gui"
+ "go.wit.com/gui/gadgets"
+)
+
+type DigitalOcean struct {
+ ready bool
+ hidden bool
+ err error
+
+ token string // You're Digital Ocean API key
+ dpolled []godo.Droplet
+ sshKeys []godo.Key
+
+ dropMap map[int]*Droplet
+ create *windowCreate
+
+ parent *gui.Node // should be the root of the 'gui' package binary tree
+ window *gui.Node // our window for displaying digital ocean droplets
+ group *gui.Node
+ grid *gui.Node
+
+ dGrid *gui.Node // the grid for the droplets
+
+ // Primary Directives
+ status *gadgets.OneLiner
+ summary *gadgets.OneLiner
+ statusIPv4 *gadgets.OneLiner
+ statusIPv6 *gadgets.OneLiner
+}
+
+type windowCreate struct {
+ ready bool
+ hidden bool
+ err error
+
+ parent *gui.Node // should be the root of the 'gui' package binary tree
+ window *gui.Node // our window for displaying digital ocean droplets
+ group *gui.Node
+ grid *gui.Node
+
+ regionSelected godo.Region
+ regionSlug string
+ tag *gadgets.OneLiner
+ name *gadgets.BasicEntry
+ region *gadgets.BasicDropdown
+ size *gadgets.BasicCombobox
+ memory *gadgets.BasicDropdown
+ image *gadgets.BasicCombobox
+ // nvme *gadgets.BasicCheckbox
+}
+
+type ipButton struct {
+ ip *gui.Node
+ c *gui.Node
+}
+
+type Droplet struct {
+ ID int
+ image string
+ memory int
+ disk int
+
+ ready bool
+ hidden bool
+ err error
+
+ poll *godo.Droplet // store what the digital ocean API returned
+
+ nameN *gui.Node
+ sizeSlugN *gui.Node
+ statusN *gui.Node
+ imageN *gui.Node
+
+ destroy *gui.Node
+ connect *gui.Node
+ poweron *gui.Node
+ poweroff *gui.Node
+ edit *gui.Node
+
+ ipv4 *gui.Node
+ ipv6 *gui.Node
+}