Skip to content

Commit 31c698a

Browse files
committed
nsone: update to ns1/ns1-go.v2
1 parent cd44c9b commit 31c698a

14 files changed

+439
-286
lines changed

builtin/providers/nsone/provider.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package nsone
22

33
import (
4-
"github.com/ns1/ns1-go"
4+
"net/http"
5+
56
"github.com/hashicorp/terraform/helper/schema"
67
"github.com/hashicorp/terraform/terraform"
8+
9+
nsone "gopkg.in/ns1/ns1-go.v2/rest"
710
)
811

912
// Provider returns a terraform.ResourceProvider.
@@ -32,8 +35,9 @@ func Provider() terraform.ResourceProvider {
3235
}
3336

3437
func nsoneConfigure(d *schema.ResourceData) (interface{}, error) {
35-
n := nsone.New(d.Get("apikey").(string))
36-
n.Debug()
38+
httpClient := &http.Client{}
39+
n := nsone.NewClient(httpClient, nsone.SetAPIKey(d.Get("apikey").(string)))
40+
// FIXME: n.Debug()
3741
n.RateLimitStrategySleep()
3842
return n, nil
3943
}

builtin/providers/nsone/resource_apikey.go

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package nsone
22

33
import (
4-
"github.com/ns1/ns1-go"
54
"github.com/hashicorp/terraform/helper/schema"
5+
6+
nsone "gopkg.in/ns1/ns1-go.v2/rest"
7+
"gopkg.in/ns1/ns1-go.v2/rest/model/account"
68
)
79

810
func apikeyResource() *schema.Resource {
@@ -35,43 +37,43 @@ func apikeyResource() *schema.Resource {
3537
}
3638
}
3739

38-
func apikeyToResourceData(d *schema.ResourceData, u *nsone.Apikey) error {
39-
d.SetId(u.Id)
40+
func apikeyToResourceData(d *schema.ResourceData, u *account.APIKey) error {
41+
d.SetId(u.ID)
4042
d.Set("name", u.Name)
4143
d.Set("key", u.Key)
42-
d.Set("teams", u.Teams)
44+
d.Set("teams", u.TeamIDs)
4345
permissionsToResourceData(d, u.Permissions)
4446
return nil
4547
}
4648

47-
func resourceDataToPermissions(d *schema.ResourceData) nsone.PermissionsMap {
48-
var p nsone.PermissionsMap
49+
func resourceDataToPermissions(d *schema.ResourceData) account.PermissionsMap {
50+
var p account.PermissionsMap
4951
if v, ok := d.GetOk("dns_view_zones"); ok {
50-
p.Dns.ViewZones = v.(bool)
52+
p.DNS.ViewZones = v.(bool)
5153
}
5254
if v, ok := d.GetOk("dns_manage_zones"); ok {
53-
p.Dns.ManageZones = v.(bool)
55+
p.DNS.ManageZones = v.(bool)
5456
}
5557
if v, ok := d.GetOk("dns_zones_allow_by_default"); ok {
56-
p.Dns.ZonesAllowByDefault = v.(bool)
58+
p.DNS.ZonesAllowByDefault = v.(bool)
5759
}
5860
if v, ok := d.GetOk("dns_zones_deny"); ok {
5961
denyRaw := v.([]interface{})
60-
p.Dns.ZonesDeny = make([]string, len(denyRaw))
62+
p.DNS.ZonesDeny = make([]string, len(denyRaw))
6163
for i, deny := range denyRaw {
62-
p.Dns.ZonesDeny[i] = deny.(string)
64+
p.DNS.ZonesDeny[i] = deny.(string)
6365
}
6466
} else {
65-
p.Dns.ZonesDeny = make([]string, 0)
67+
p.DNS.ZonesDeny = make([]string, 0)
6668
}
6769
if v, ok := d.GetOk("dns_zones_allow"); ok {
6870
allowRaw := v.([]interface{})
69-
p.Dns.ZonesAllow = make([]string, len(allowRaw))
71+
p.DNS.ZonesAllow = make([]string, len(allowRaw))
7072
for i, allow := range allowRaw {
71-
p.Dns.ZonesAllow[i] = allow.(string)
73+
p.DNS.ZonesAllow[i] = allow.(string)
7274
}
7375
} else {
74-
p.Dns.ZonesAllow = make([]string, 0)
76+
p.DNS.ZonesAllow = make([]string, 0)
7577
}
7678
if v, ok := d.GetOk("data_push_to_datafeeds"); ok {
7779
p.Data.PushToDatafeeds = v.(bool)
@@ -118,64 +120,64 @@ func resourceDataToPermissions(d *schema.ResourceData) nsone.PermissionsMap {
118120
return p
119121
}
120122

121-
func resourceDataToApikey(u *nsone.Apikey, d *schema.ResourceData) error {
122-
u.Id = d.Id()
123+
func resourceDataToApikey(u *account.APIKey, d *schema.ResourceData) error {
124+
u.ID = d.Id()
123125
u.Name = d.Get("name").(string)
124126
if v, ok := d.GetOk("teams"); ok {
125127
teamsRaw := v.([]interface{})
126-
u.Teams = make([]string, len(teamsRaw))
128+
u.TeamIDs = make([]string, len(teamsRaw))
127129
for i, team := range teamsRaw {
128-
u.Teams[i] = team.(string)
130+
u.TeamIDs[i] = team.(string)
129131
}
130132
} else {
131-
u.Teams = make([]string, 0)
133+
u.TeamIDs = make([]string, 0)
132134
}
133135
u.Permissions = resourceDataToPermissions(d)
134136
return nil
135137
}
136138

137139
// ApikeyCreate creates ns1 API key
138140
func ApikeyCreate(d *schema.ResourceData, meta interface{}) error {
139-
client := meta.(*nsone.APIClient)
140-
mj := nsone.Apikey{}
141+
client := meta.(*nsone.Client)
142+
mj := account.APIKey{}
141143
if err := resourceDataToApikey(&mj, d); err != nil {
142144
return err
143145
}
144-
if err := client.CreateApikey(&mj); err != nil {
146+
if _, err := client.APIKeys.Create(&mj); err != nil {
145147
return err
146148
}
147149
return apikeyToResourceData(d, &mj)
148150
}
149151

150152
// ApikeyRead reads API key from ns1
151153
func ApikeyRead(d *schema.ResourceData, meta interface{}) error {
152-
client := meta.(*nsone.APIClient)
153-
mj, err := client.GetApikey(d.Id())
154+
client := meta.(*nsone.Client)
155+
mj, _, err := client.APIKeys.Get(d.Id())
154156
if err != nil {
155157
return err
156158
}
157-
apikeyToResourceData(d, &mj)
159+
apikeyToResourceData(d, mj)
158160
return nil
159161
}
160162

161163
//ApikeyDelete deletes the given ns1 api key
162164
func ApikeyDelete(d *schema.ResourceData, meta interface{}) error {
163-
client := meta.(*nsone.APIClient)
164-
err := client.DeleteApikey(d.Id())
165+
client := meta.(*nsone.Client)
166+
_, err := client.APIKeys.Delete(d.Id())
165167
d.SetId("")
166168
return err
167169
}
168170

169171
//ApikeyUpdate updates the given api key in ns1
170172
func ApikeyUpdate(d *schema.ResourceData, meta interface{}) error {
171-
client := meta.(*nsone.APIClient)
172-
mj := nsone.Apikey{
173-
Id: d.Id(),
173+
client := meta.(*nsone.Client)
174+
mj := account.APIKey{
175+
ID: d.Id(),
174176
}
175177
if err := resourceDataToApikey(&mj, d); err != nil {
176178
return err
177179
}
178-
if err := client.UpdateApikey(&mj); err != nil {
180+
if _, err := client.APIKeys.Update(&mj); err != nil {
179181
return err
180182
}
181183
apikeyToResourceData(d, &mj)

builtin/providers/nsone/resource_datafeed.go

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package nsone
22

33
import (
4-
"github.com/ns1/ns1-go"
54
"github.com/hashicorp/terraform/helper/schema"
5+
6+
nsone "gopkg.in/ns1/ns1-go.v2/rest"
7+
"gopkg.in/ns1/ns1-go.v2/rest/model/data"
68
)
79

810
func dataFeedResource() *schema.Resource {
@@ -33,28 +35,29 @@ func dataFeedResource() *schema.Resource {
3335
}
3436
}
3537

36-
func dataFeedToResourceData(d *schema.ResourceData, df *nsone.DataFeed) {
37-
d.SetId(df.Id)
38+
func dataFeedToResourceData(d *schema.ResourceData, df *data.Feed) {
39+
d.SetId(df.ID)
3840
d.Set("name", df.Name)
3941
d.Set("config", df.Config)
4042
}
4143

42-
func resourceDataToDataFeed(d *schema.ResourceData) *nsone.DataFeed {
43-
df := nsone.NewDataFeed(d.Get("source_id").(string))
44-
df.Name = d.Get("name").(string)
45-
config := make(map[string]string)
44+
func resourceDataToDataFeed(d *schema.ResourceData) *data.Feed {
45+
config := make(data.Config)
4646
for k, v := range d.Get("config").(map[string]interface{}) {
4747
config[k] = v.(string)
4848
}
49-
df.Config = config
50-
return df
49+
return &data.Feed{
50+
Name: d.Get("name").(string),
51+
Config: config,
52+
SourceID: d.Get("source_id").(string),
53+
}
5154
}
5255

5356
// DataFeedCreate creates an ns1 datafeed
5457
func DataFeedCreate(d *schema.ResourceData, meta interface{}) error {
55-
client := meta.(*nsone.APIClient)
58+
client := meta.(*nsone.Client)
5659
df := resourceDataToDataFeed(d)
57-
if err := client.CreateDataFeed(df); err != nil {
60+
if _, err := client.DataFeeds.Create(d.Get("source_id").(string), df); err != nil {
5861
return err
5962
}
6063
dataFeedToResourceData(d, df)
@@ -63,8 +66,8 @@ func DataFeedCreate(d *schema.ResourceData, meta interface{}) error {
6366

6467
// DataFeedRead reads the datafeed for the given ID from ns1
6568
func DataFeedRead(d *schema.ResourceData, meta interface{}) error {
66-
client := meta.(*nsone.APIClient)
67-
df, err := client.GetDataFeed(d.Get("source_id").(string), d.Id())
69+
client := meta.(*nsone.Client)
70+
df, _, err := client.DataFeeds.Get(d.Get("source_id").(string), d.Id())
6871
if err != nil {
6972
return err
7073
}
@@ -74,18 +77,18 @@ func DataFeedRead(d *schema.ResourceData, meta interface{}) error {
7477

7578
// DataFeedDelete delets the given datafeed from ns1
7679
func DataFeedDelete(d *schema.ResourceData, meta interface{}) error {
77-
client := meta.(*nsone.APIClient)
78-
err := client.DeleteDataFeed(d.Get("source_id").(string), d.Id())
80+
client := meta.(*nsone.Client)
81+
_, err := client.DataFeeds.Delete(d.Get("source_id").(string), d.Id())
7982
d.SetId("")
8083
return err
8184
}
8285

8386
// DataFeedUpdate updates the given datafeed with modified parameters
8487
func DataFeedUpdate(d *schema.ResourceData, meta interface{}) error {
85-
client := meta.(*nsone.APIClient)
88+
client := meta.(*nsone.Client)
8689
df := resourceDataToDataFeed(d)
87-
df.Id = d.Id()
88-
if err := client.UpdateDataFeed(df); err != nil {
90+
df.ID = d.Id()
91+
if _, err := client.DataFeeds.Update(d.Get("source_id").(string), df); err != nil {
8992
return err
9093
}
9194
dataFeedToResourceData(d, df)

builtin/providers/nsone/resource_datafeed_test.go

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

7-
"github.com/ns1/ns1-go"
87
"github.com/hashicorp/terraform/helper/resource"
98
"github.com/hashicorp/terraform/terraform"
9+
10+
nsone "gopkg.in/ns1/ns1-go.v2/rest"
11+
"gopkg.in/ns1/ns1-go.v2/rest/model/data"
1012
)
1113

1214
func TestAccDataFeed_basic(t *testing.T) {
13-
var dataFeed nsone.DataFeed
15+
var dataFeed data.Feed
1416
resource.Test(t, resource.TestCase{
1517
PreCheck: func() { testAccPreCheck(t) },
1618
Providers: testAccProviders,
@@ -29,7 +31,7 @@ func TestAccDataFeed_basic(t *testing.T) {
2931
}
3032

3133
func TestAccDataFeed_updated(t *testing.T) {
32-
var dataFeed nsone.DataFeed
34+
var dataFeed data.Feed
3335
resource.Test(t, resource.TestCase{
3436
PreCheck: func() { testAccPreCheck(t) },
3537
Providers: testAccProviders,
@@ -76,7 +78,7 @@ func testAccCheckDataFeedState(key, value string) resource.TestCheckFunc {
7678
}
7779
}
7880

79-
func testAccCheckDataFeedExists(n string, dsrc string, dataFeed *nsone.DataFeed) resource.TestCheckFunc {
81+
func testAccCheckDataFeedExists(n string, dsrc string, dataFeed *data.Feed) resource.TestCheckFunc {
8082
return func(s *terraform.State) error {
8183
rs, ok := s.RootModule().Resources[n]
8284
ds, ok := s.RootModule().Resources[dsrc]
@@ -93,9 +95,9 @@ func testAccCheckDataFeedExists(n string, dsrc string, dataFeed *nsone.DataFeed)
9395
return fmt.Errorf("NoID is set for the datasource")
9496
}
9597

96-
client := testAccProvider.Meta().(*nsone.APIClient)
98+
client := testAccProvider.Meta().(*nsone.Client)
9799

98-
foundFeed, err := client.GetDataFeed(ds.Primary.Attributes["id"], rs.Primary.Attributes["id"])
100+
foundFeed, _, err := client.DataFeeds.Get(ds.Primary.Attributes["id"], rs.Primary.Attributes["id"])
99101

100102
p := rs.Primary
101103

@@ -114,7 +116,7 @@ func testAccCheckDataFeedExists(n string, dsrc string, dataFeed *nsone.DataFeed)
114116
}
115117

116118
func testAccCheckDataFeedDestroy(s *terraform.State) error {
117-
client := testAccProvider.Meta().(*nsone.APIClient)
119+
client := testAccProvider.Meta().(*nsone.Client)
118120

119121
var dataFeedID string
120122
var dataSourceID string
@@ -130,16 +132,16 @@ func testAccCheckDataFeedDestroy(s *terraform.State) error {
130132
}
131133
}
132134

133-
df, _ := client.GetDataFeed(dataSourceID, dataFeedID)
135+
df, _, _ := client.DataFeeds.Get(dataSourceID, dataFeedID)
134136

135-
if df.Id != "" {
137+
if df.ID != "" {
136138
return fmt.Errorf("DataFeed still exists")
137139
}
138140

139141
return nil
140142
}
141143

142-
func testAccCheckDataFeedAttributes(dataFeed *nsone.DataFeed) resource.TestCheckFunc {
144+
func testAccCheckDataFeedAttributes(dataFeed *data.Feed) resource.TestCheckFunc {
143145
return func(s *terraform.State) error {
144146

145147
if dataFeed.Config["label"] != "exampledc2" {
@@ -150,7 +152,7 @@ func testAccCheckDataFeedAttributes(dataFeed *nsone.DataFeed) resource.TestCheck
150152
}
151153
}
152154

153-
func testAccCheckDataFeedAttributesUpdated(dataFeed *nsone.DataFeed) resource.TestCheckFunc {
155+
func testAccCheckDataFeedAttributesUpdated(dataFeed *data.Feed) resource.TestCheckFunc {
154156
return func(s *terraform.State) error {
155157

156158
if dataFeed.Config["label"] != "exampledc3" {

0 commit comments

Comments
 (0)