@@ -26,7 +26,24 @@ func resourceZoneDelegated() *schema.Resource {
26
26
Required : true ,
27
27
Description : "The FQDN of the delegated zone." ,
28
28
},
29
- "delegate_to" : resourceNameServer (),
29
+ "delegate_to" : {
30
+ Type : schema .TypeSet ,
31
+ Required : true ,
32
+ Elem : & schema.Resource {
33
+ Schema : map [string ]* schema.Schema {
34
+ "address" : {
35
+ Type : schema .TypeString ,
36
+ Computed : true ,
37
+ Description : "IP of Name Server" ,
38
+ },
39
+ "name" : {
40
+ Type : schema .TypeString ,
41
+ Required : true ,
42
+ Description : "FQDN of Name Server" ,
43
+ },
44
+ },
45
+ },
46
+ },
30
47
"ext_attrs" : {
31
48
Type : schema .TypeString ,
32
49
Default : "" ,
@@ -67,7 +84,7 @@ func computeDelegations(delegations []interface{}) ([]ibclient.NameServer, []map
67
84
ns .Name = delegationMap ["name" ].(string )
68
85
lookupHosts , err := net .LookupHost (delegationMap ["name" ].(string ))
69
86
if err != nil {
70
- return nil , nil , fmt .Errorf ("Failed to resolve delegate_to: %s " , err . Error () )
87
+ return nil , nil , fmt .Errorf ("Failed to resolve delegate_to: %w " , err )
71
88
}
72
89
sort .Strings (lookupHosts )
73
90
ns .Address = lookupHosts [0 ]
@@ -85,7 +102,7 @@ func resourceZoneDelegatedCreate(d *schema.ResourceData, m interface{}) error {
85
102
extAttrs := make (map [string ]interface {})
86
103
if extAttrJSON != "" {
87
104
if err := json .Unmarshal ([]byte (extAttrJSON ), & extAttrs ); err != nil {
88
- return fmt .Errorf ("cannot process 'ext_attrs' field: %s " , err . Error () )
105
+ return fmt .Errorf ("cannot process 'ext_attrs' field: %w " , err )
89
106
}
90
107
}
91
108
@@ -111,7 +128,7 @@ func resourceZoneDelegatedCreate(d *schema.ResourceData, m interface{}) error {
111
128
delegatedFQDN ,
112
129
nameServers )
113
130
if err != nil {
114
- return fmt .Errorf ("Error creating Zone Delegated: %s " , err )
131
+ return fmt .Errorf ("Error creating Zone Delegated: %w " , err )
115
132
}
116
133
117
134
d .Set ("delegate_to" , computedDelegations )
@@ -129,7 +146,7 @@ func resourceZoneDelegatedRead(d *schema.ResourceData, m interface{}) error {
129
146
extAttrs := make (map [string ]interface {})
130
147
if extAttrJSON != "" {
131
148
if err := json .Unmarshal ([]byte (extAttrJSON ), & extAttrs ); err != nil {
132
- return fmt .Errorf ("cannot process 'ext_attrs' field: %s " , err . Error () )
149
+ return fmt .Errorf ("cannot process 'ext_attrs' field: %w " , err )
133
150
}
134
151
}
135
152
@@ -145,7 +162,7 @@ func resourceZoneDelegatedRead(d *schema.ResourceData, m interface{}) error {
145
162
// first attempt to read by ref, otherwise assume import and support fqdn
146
163
zoneDelegatedObj , err := objMgr .GetZoneDelegated (d .Id ())
147
164
if err != nil {
148
- return fmt .Errorf ("Getting Zone Delegated failed: %s " , err )
165
+ return fmt .Errorf ("Getting Zone Delegated failed: %w " , err )
149
166
}
150
167
151
168
var delegations []map [string ]interface {}
@@ -172,7 +189,7 @@ func resourceZoneDelegatedUpdate(d *schema.ResourceData, m interface{}) error {
172
189
extAttrs := make (map [string ]interface {})
173
190
if extAttrJSON != "" {
174
191
if err := json .Unmarshal ([]byte (extAttrJSON ), & extAttrs ); err != nil {
175
- return fmt .Errorf ("cannot process 'ext_attrs' field: %s " , err . Error () )
192
+ return fmt .Errorf ("cannot process 'ext_attrs' field: %w " , err )
176
193
}
177
194
}
178
195
@@ -194,7 +211,7 @@ func resourceZoneDelegatedUpdate(d *schema.ResourceData, m interface{}) error {
194
211
195
212
zoneDelegatedUpdated , err := objMgr .UpdateZoneDelegated (d .Id (), nameServers )
196
213
if err != nil {
197
- return fmt .Errorf ("Updating of Zone Delegated failed : %s " , err . Error () )
214
+ return fmt .Errorf ("Updating of Zone Delegated failed : %w " , err )
198
215
}
199
216
200
217
d .Set ("delegate_to" , computedDelegations )
@@ -210,7 +227,7 @@ func resourceZoneDelegatedDelete(d *schema.ResourceData, m interface{}) error {
210
227
extAttrs := make (map [string ]interface {})
211
228
if extAttrJSON != "" {
212
229
if err := json .Unmarshal ([]byte (extAttrJSON ), & extAttrs ); err != nil {
213
- return fmt .Errorf ("cannot process 'ext_attrs' field: %s " , err . Error () )
230
+ return fmt .Errorf ("cannot process 'ext_attrs' field: %w " , err )
214
231
}
215
232
}
216
233
@@ -225,7 +242,7 @@ func resourceZoneDelegatedDelete(d *schema.ResourceData, m interface{}) error {
225
242
226
243
_ , err := objMgr .DeleteZoneDelegated (d .Id ())
227
244
if err != nil {
228
- return fmt .Errorf ("Deletion of Zone Delegated failed : %s " , err )
245
+ return fmt .Errorf ("Deletion of Zone Delegated failed : %w " , err )
229
246
}
230
247
d .SetId ("" )
231
248
0 commit comments