summaryrefslogtreecommitdiff
path: root/examples/control-panel-digitalocean/old.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-12-30 09:49:30 -0600
committerJeff Carr <[email protected]>2023-12-30 09:49:30 -0600
commit7532fb5ff5d0178bb9b1cf0a1cd6ba7c30bb7c2b (patch)
tree9cd3f1fbbbe9393ccec871258f5e6e8522b6cc04 /examples/control-panel-digitalocean/old.go
parentec5cbbe203596327d42ac626dcc9c55c604b9139 (diff)
create a basic digitalocean gui object
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'examples/control-panel-digitalocean/old.go')
-rw-r--r--examples/control-panel-digitalocean/old.go115
1 files changed, 115 insertions, 0 deletions
diff --git a/examples/control-panel-digitalocean/old.go b/examples/control-panel-digitalocean/old.go
new file mode 100644
index 0000000..f2709ad
--- /dev/null
+++ b/examples/control-panel-digitalocean/old.go
@@ -0,0 +1,115 @@
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+
+ "golang.org/x/oauth2"
+
+ "go.wit.com/log"
+ "go.wit.com/gui"
+ "github.com/digitalocean/godo"
+ "go.wit.com/control-panel-dns/digitalocean"
+)
+
+/*
+// createDroplet creates a new droplet in the specified region with the given name.
+func createDroplet(token, name, region, size, image string) (*godo.Droplet, error) {
+ // Create an OAuth2 token.
+ tokenSource := &oauth2.Token{
+ AccessToken: token,
+ }
+
+ // Create an OAuth2 client.
+ oauthClient := oauth2.NewClient(context.Background(), tokenSource)
+
+ // Create a DigitalOcean client with the OAuth2 client.
+ client := godo.NewClient(oauthClient)
+
+ // Define the create request.
+ createRequest := &godo.DropletCreateRequest{
+ Name: name,
+ Region: region,
+ Size: size,
+ Image: godo.DropletCreateImage{
+ Slug: image,
+ },
+ }
+
+ // Create the droplet.
+ ctx := context.TODO()
+ newDroplet, _, err := client.Droplets.Create(ctx, createRequest)
+ if err != nil {
+ return nil, err
+ }
+
+ return newDroplet, nil
+}
+*/
+
+func oldMain() {
+ // Your personal API token from DigitalOcean.
+ token := os.Getenv("DIGITALOCEAN_TOKEN")
+ if token == "" {
+ log.Fatal("Please set your DigitalOcean API token in the DIGITALOCEAN_TOKEN environment variable")
+ }
+
+ // List droplets and their IP addresses.
+ err := digitalocean.ListDroplets(token)
+ if err != nil {
+ log.Fatalf("Error listing droplets: %s\n", err)
+ }
+
+ // This is just a optional goroutine to watch that things are alive
+ gui.Watchdog()
+ gui.StandardExit()
+
+ os.Exit(0)
+
+ // Parameters for the droplet you wish to create.
+ name := "ipv6.wit.com"
+ region := "nyc1" // New York City region.
+ size := "s-1vcpu-1gb" // Size of the droplet.
+ image := "ubuntu-20-04-x64" // Image slug for Ubuntu 20.04 (LTS) x64.
+
+ // Create a new droplet.
+ droplet, err := createDropletNew(token, name, region, size, image)
+ if err != nil {
+ log.Fatalf("Something went wrong: %s\n", err)
+ }
+
+ fmt.Printf("Created droplet ID %d with name %s\n", droplet.ID, droplet.Name)
+}
+
+// createDroplet creates a new droplet in the specified region with the given name.
+func createDropletNew(token, name, region, size, image string) (*godo.Droplet, error) {
+ // Create an OAuth2 token.
+ tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})
+
+ // Create an OAuth2 client.
+ oauthClient := oauth2.NewClient(context.Background(), tokenSource)
+
+ // Create a DigitalOcean client with the OAuth2 client.
+ client := godo.NewClient(oauthClient)
+
+ // Define the create request.
+ createRequest := &godo.DropletCreateRequest{
+ Name: name,
+ Region: region,
+ Size: size,
+ Image: godo.DropletCreateImage{
+ Slug: image,
+ },
+ IPv6: true, // Enable IPv6
+ }
+
+ // Create the droplet.
+ ctx := context.TODO()
+ newDroplet, _, err := client.Droplets.Create(ctx, createRequest)
+ if err != nil {
+ return nil, err
+ }
+
+ return newDroplet, nil
+}