Skip to content

Commit d9fb949

Browse files
authored
Merge pull request #84 from terraform-providers/b-dns-rec-type-update
ovh_domain_zone_record: Make fieldtype non-updatable
2 parents c1d6806 + e419be1 commit d9fb949

File tree

2 files changed

+66
-31
lines changed

2 files changed

+66
-31
lines changed

ovh/resource_ovh_domain_zone_record.go

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func resourceOvhDomainZoneRecord() *schema.Resource {
7575
"fieldtype": {
7676
Type: schema.TypeString,
7777
Required: true,
78+
ForceNew: true,
7879
},
7980
"subdomain": {
8081
Type: schema.TypeString,

ovh/resource_ovh_domain_zone_record_test.go

+65-31
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func TestAccOvhDomainZoneRecord_Basic(t *testing.T) {
103103
CheckDestroy: testAccCheckOvhDomainZoneRecordDestroy,
104104
Steps: []resource.TestStep{
105105
{
106-
Config: fmt.Sprintf(testAccCheckOvhDomainZoneRecordConfig_basic, zone, subdomain),
106+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, subdomain, "192.168.0.10", 3600),
107107
Check: resource.ComposeTestCheckFunc(
108108
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
109109
resource.TestCheckResourceAttr(
@@ -131,7 +131,7 @@ func TestAccOvhDomainZoneRecord_Updated(t *testing.T) {
131131
CheckDestroy: testAccCheckOvhDomainZoneRecordDestroy,
132132
Steps: []resource.TestStep{
133133
{
134-
Config: fmt.Sprintf(testAccCheckOvhDomainZoneRecordConfig_basic, zone, subdomain),
134+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, subdomain, "192.168.0.10", 3600),
135135
Check: resource.ComposeTestCheckFunc(
136136
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
137137
resource.TestCheckResourceAttr(
@@ -145,7 +145,7 @@ func TestAccOvhDomainZoneRecord_Updated(t *testing.T) {
145145
),
146146
},
147147
{
148-
Config: fmt.Sprintf(testAccCheckOvhDomainZoneRecordConfig_new_value_1, zone, subdomain),
148+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, subdomain, "192.168.0.11", 3600),
149149
Check: resource.ComposeTestCheckFunc(
150150
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
151151
resource.TestCheckResourceAttr(
@@ -159,7 +159,8 @@ func TestAccOvhDomainZoneRecord_Updated(t *testing.T) {
159159
),
160160
},
161161
{
162-
Config: fmt.Sprintf(testAccCheckOvhDomainZoneRecordConfig_new_value_2, zone, subdomain),
162+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, fmt.Sprintf("%s2", subdomain),
163+
"192.168.0.11", 3600),
163164
Check: resource.ComposeTestCheckFunc(
164165
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
165166
resource.TestCheckResourceAttr(
@@ -173,7 +174,8 @@ func TestAccOvhDomainZoneRecord_Updated(t *testing.T) {
173174
),
174175
},
175176
{
176-
Config: fmt.Sprintf(testAccCheckOvhDomainZoneRecordConfig_new_value_3, zone, subdomain),
177+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, fmt.Sprintf("%s3", subdomain),
178+
"192.168.0.13", 3604),
177179
Check: resource.ComposeTestCheckFunc(
178180
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
179181
resource.TestCheckResourceAttr(
@@ -190,6 +192,52 @@ func TestAccOvhDomainZoneRecord_Updated(t *testing.T) {
190192
})
191193
}
192194

195+
func TestAccOvhDomainZoneRecord_updateType(t *testing.T) {
196+
record := OvhDomainZoneRecord{}
197+
zone := os.Getenv("OVH_ZONE")
198+
subdomain := acctest.RandomWithPrefix(test_prefix)
199+
200+
resource.Test(t, resource.TestCase{
201+
PreCheck: func() { testAccPreCheck(t) },
202+
Providers: testAccProviders,
203+
CheckDestroy: testAccCheckOvhDomainZoneRecordDestroy,
204+
Steps: []resource.TestStep{
205+
{
206+
Config: testAccCheckOvhDomainZoneRecordConfig_A(zone, subdomain, "192.168.0.1", 3600),
207+
Check: resource.ComposeTestCheckFunc(
208+
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
209+
resource.TestCheckResourceAttr(
210+
"ovh_domain_zone_record.foobar", "subdomain", subdomain),
211+
resource.TestCheckResourceAttr(
212+
"ovh_domain_zone_record.foobar", "zone", zone),
213+
resource.TestCheckResourceAttr(
214+
"ovh_domain_zone_record.foobar", "target", "192.168.0.1"),
215+
resource.TestCheckResourceAttr(
216+
"ovh_domain_zone_record.foobar", "fieldtype", "A"),
217+
resource.TestCheckResourceAttr(
218+
"ovh_domain_zone_record.foobar", "ttl", "3600"),
219+
),
220+
},
221+
{
222+
Config: testAccCheckOvhDomainZoneRecordConfig_CNAME(zone, subdomain, "google.com.", 3600),
223+
Check: resource.ComposeTestCheckFunc(
224+
testAccCheckOvhDomainZoneRecordExists("ovh_domain_zone_record.foobar", &record),
225+
resource.TestCheckResourceAttr(
226+
"ovh_domain_zone_record.foobar", "subdomain", subdomain),
227+
resource.TestCheckResourceAttr(
228+
"ovh_domain_zone_record.foobar", "zone", zone),
229+
resource.TestCheckResourceAttr(
230+
"ovh_domain_zone_record.foobar", "target", "google.com."),
231+
resource.TestCheckResourceAttr(
232+
"ovh_domain_zone_record.foobar", "fieldtype", "CNAME"),
233+
resource.TestCheckResourceAttr(
234+
"ovh_domain_zone_record.foobar", "ttl", "3600"),
235+
),
236+
},
237+
},
238+
})
239+
}
240+
193241
func testAccCheckOvhDomainZoneRecordDestroy(s *terraform.State) error {
194242
provider := testAccProvider.Meta().(*Config)
195243
zone := os.Getenv("OVH_ZONE")
@@ -245,38 +293,24 @@ func testAccCheckOvhDomainZoneRecordExists(n string, record *OvhDomainZoneRecord
245293
}
246294
}
247295

248-
const testAccCheckOvhDomainZoneRecordConfig_basic = `
296+
func testAccCheckOvhDomainZoneRecordConfig_A(zone, subdomain, target string, ttl int) string {
297+
return fmt.Sprintf(`
249298
resource "ovh_domain_zone_record" "foobar" {
250299
zone = "%s"
251300
subdomain = "%s"
252-
target = "192.168.0.10"
301+
target = "%s"
253302
fieldtype = "A"
254-
ttl = 3600
255-
}`
303+
ttl = %d
304+
}`, zone, subdomain, target, ttl)
305+
}
256306

257-
const testAccCheckOvhDomainZoneRecordConfig_new_value_1 = `
307+
func testAccCheckOvhDomainZoneRecordConfig_CNAME(zone, subdomain, target string, ttl int) string {
308+
return fmt.Sprintf(`
258309
resource "ovh_domain_zone_record" "foobar" {
259310
zone = "%s"
260311
subdomain = "%s"
261-
target = "192.168.0.11"
262-
fieldtype = "A"
263-
ttl = 3600
264-
}
265-
`
266-
const testAccCheckOvhDomainZoneRecordConfig_new_value_2 = `
267-
resource "ovh_domain_zone_record" "foobar" {
268-
zone = "%s"
269-
subdomain = "%s2"
270-
target = "192.168.0.11"
271-
fieldtype = "A"
272-
ttl = 3600
312+
target = "%s"
313+
fieldtype = "CNAME"
314+
ttl = %d
315+
}`, zone, subdomain, target, ttl)
273316
}
274-
`
275-
const testAccCheckOvhDomainZoneRecordConfig_new_value_3 = `
276-
resource "ovh_domain_zone_record" "foobar" {
277-
zone = "%s"
278-
subdomain = "%s3"
279-
target = "192.168.0.13"
280-
fieldtype = "A"
281-
ttl = 3604
282-
}`

0 commit comments

Comments
 (0)