Skip to content

Commit 0bcf557

Browse files
committed
use official Go client for DigitalOcean provider
1 parent 6bd40a7 commit 0bcf557

9 files changed

Lines changed: 311 additions & 173 deletions

builtin/providers/digitalocean/config.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@ package digitalocean
33
import (
44
"log"
55

6-
"github.com/pearkes/digitalocean"
6+
"github.com/digitalocean/godo"
7+
"golang.org/x/oauth2"
78
)
89

910
type Config struct {
1011
Token string
1112
}
1213

1314
// Client() returns a new client for accessing digital ocean.
14-
func (c *Config) Client() (*digitalocean.Client, error) {
15-
client, err := digitalocean.NewClient(c.Token)
15+
func (c *Config) Client() (*godo.Client, error) {
16+
tokenSrc := oauth2.StaticTokenSource(&oauth2.Token{
17+
AccessToken: c.Token,
18+
})
1619

17-
log.Printf("[INFO] DigitalOcean Client configured for URL: %s", client.URL)
20+
client := godo.NewClient(oauth2.NewClient(oauth2.NoContext, tokenSrc))
1821

19-
if err != nil {
20-
return nil, err
21-
}
22+
log.Printf("[INFO] DigitalOcean Client configured for URL: %s", client.BaseURL.String())
2223

2324
return client, nil
2425
}

builtin/providers/digitalocean/resource_digitalocean_domain.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"log"
66
"strings"
77

8+
"github.com/digitalocean/godo"
89
"github.com/hashicorp/terraform/helper/schema"
9-
"github.com/pearkes/digitalocean"
1010
)
1111

1212
func resourceDigitalOceanDomain() *schema.Resource {
@@ -32,30 +32,31 @@ func resourceDigitalOceanDomain() *schema.Resource {
3232
}
3333

3434
func resourceDigitalOceanDomainCreate(d *schema.ResourceData, meta interface{}) error {
35-
client := meta.(*digitalocean.Client)
35+
client := meta.(*godo.Client)
3636

3737
// Build up our creation options
38-
opts := &digitalocean.CreateDomain{
38+
39+
opts := &godo.DomainCreateRequest{
3940
Name: d.Get("name").(string),
4041
IPAddress: d.Get("ip_address").(string),
4142
}
4243

4344
log.Printf("[DEBUG] Domain create configuration: %#v", opts)
44-
name, err := client.CreateDomain(opts)
45+
domain, _, err := client.Domains.Create(opts)
4546
if err != nil {
4647
return fmt.Errorf("Error creating Domain: %s", err)
4748
}
4849

49-
d.SetId(name)
50-
log.Printf("[INFO] Domain Name: %s", name)
50+
d.SetId(domain.Name)
51+
log.Printf("[INFO] Domain Name: %s", domain.Name)
5152

5253
return resourceDigitalOceanDomainRead(d, meta)
5354
}
5455

5556
func resourceDigitalOceanDomainRead(d *schema.ResourceData, meta interface{}) error {
56-
client := meta.(*digitalocean.Client)
57+
client := meta.(*godo.Client)
5758

58-
domain, err := client.RetrieveDomain(d.Id())
59+
domain, _, err := client.Domains.Get(d.Id())
5960
if err != nil {
6061
// If the domain is somehow already destroyed, mark as
6162
// successfully gone
@@ -73,10 +74,10 @@ func resourceDigitalOceanDomainRead(d *schema.ResourceData, meta interface{}) er
7374
}
7475

7576
func resourceDigitalOceanDomainDelete(d *schema.ResourceData, meta interface{}) error {
76-
client := meta.(*digitalocean.Client)
77+
client := meta.(*godo.Client)
7778

7879
log.Printf("[INFO] Deleting Domain: %s", d.Id())
79-
err := client.DestroyDomain(d.Id())
80+
_, err := client.Domains.Delete(d.Id())
8081
if err != nil {
8182
return fmt.Errorf("Error deleting Domain: %s", err)
8283
}

builtin/providers/digitalocean/resource_digitalocean_domain_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import (
44
"fmt"
55
"testing"
66

7+
"github.com/digitalocean/godo"
78
"github.com/hashicorp/terraform/helper/resource"
89
"github.com/hashicorp/terraform/terraform"
9-
"github.com/pearkes/digitalocean"
1010
)
1111

1212
func TestAccDigitalOceanDomain_Basic(t *testing.T) {
13-
var domain digitalocean.Domain
13+
var domain godo.Domain
1414

1515
resource.Test(t, resource.TestCase{
1616
PreCheck: func() { testAccPreCheck(t) },
@@ -33,25 +33,25 @@ func TestAccDigitalOceanDomain_Basic(t *testing.T) {
3333
}
3434

3535
func testAccCheckDigitalOceanDomainDestroy(s *terraform.State) error {
36-
client := testAccProvider.Meta().(*digitalocean.Client)
36+
client := testAccProvider.Meta().(*godo.Client)
3737

3838
for _, rs := range s.RootModule().Resources {
3939
if rs.Type != "digitalocean_domain" {
4040
continue
4141
}
4242

4343
// Try to find the domain
44-
_, err := client.RetrieveDomain(rs.Primary.ID)
44+
_, _, err := client.Domains.Get(rs.Primary.ID)
4545

4646
if err == nil {
47-
fmt.Errorf("Domain still exists")
47+
return fmt.Errorf("Domain still exists")
4848
}
4949
}
5050

5151
return nil
5252
}
5353

54-
func testAccCheckDigitalOceanDomainAttributes(domain *digitalocean.Domain) resource.TestCheckFunc {
54+
func testAccCheckDigitalOceanDomainAttributes(domain *godo.Domain) resource.TestCheckFunc {
5555
return func(s *terraform.State) error {
5656

5757
if domain.Name != "foobar-test-terraform.com" {
@@ -62,7 +62,7 @@ func testAccCheckDigitalOceanDomainAttributes(domain *digitalocean.Domain) resou
6262
}
6363
}
6464

65-
func testAccCheckDigitalOceanDomainExists(n string, domain *digitalocean.Domain) resource.TestCheckFunc {
65+
func testAccCheckDigitalOceanDomainExists(n string, domain *godo.Domain) resource.TestCheckFunc {
6666
return func(s *terraform.State) error {
6767
rs, ok := s.RootModule().Resources[n]
6868

@@ -74,9 +74,9 @@ func testAccCheckDigitalOceanDomainExists(n string, domain *digitalocean.Domain)
7474
return fmt.Errorf("No Record ID is set")
7575
}
7676

77-
client := testAccProvider.Meta().(*digitalocean.Client)
77+
client := testAccProvider.Meta().(*godo.Client)
7878

79-
foundDomain, err := client.RetrieveDomain(rs.Primary.ID)
79+
foundDomain, _, err := client.Domains.Get(rs.Primary.ID)
8080

8181
if err != nil {
8282
return err
@@ -86,7 +86,7 @@ func testAccCheckDigitalOceanDomainExists(n string, domain *digitalocean.Domain)
8686
return fmt.Errorf("Record not found")
8787
}
8888

89-
*domain = foundDomain
89+
*domain = *foundDomain
9090

9191
return nil
9292
}

0 commit comments

Comments
 (0)