Skip to content

Commit 9faa112

Browse files
authored
Merge pull request #537 from ovh/dev/aamstutz/stop-computing-urns
fix: Stop computing URNs in the provider and rely on the API responses
2 parents 0dbd65f + a945736 commit 9faa112

33 files changed

+145
-115
lines changed

ovh/data_dedicated_ceph.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func dataSourceDedicatedCephRead(d *schema.ResourceData, meta interface{}) error
8888
}
8989
log.Printf("[DEBUG] CEPH is %v", ceph.CephMonitors)
9090
d.SetId(ceph.ServiceName)
91-
d.Set("urn", helpers.ServiceURN(config.Plate, "dedicatedCeph", ceph.ServiceName))
91+
d.Set("urn", ceph.URN)
9292
d.Set("service_name", ceph.ServiceName)
9393
d.Set("ceph_mons", ceph.CephMonitors)
9494
d.Set("ceph_version", ceph.CephVersion)

ovh/data_dedicated_ceph_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ func TestAccDedicatedCephDatasource(t *testing.T) {
2222
"data.ovh_dedicated_ceph.ceph", "service_name", dedicated_ceph),
2323
resource.TestCheckResourceAttr(
2424
"data.ovh_dedicated_ceph.ceph", "status", "INSTALLED"),
25+
resource.TestCheckResourceAttrSet(
26+
"data.ovh_dedicated_ceph.ceph", "urn"),
2527
),
2628
},
2729
},

ovh/data_dedicated_nasha.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"net/url"
77

88
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
9-
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
109

1110
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1211
)
@@ -92,7 +91,7 @@ func dataSourceDedicatedNashaRead(c context.Context, d *schema.ResourceData, met
9291
}
9392

9493
d.SetId(ds.ServiceName)
95-
d.Set("urn", helpers.ServiceURN(config.Plate, "nasHA", ds.ServiceName))
94+
d.Set("urn", ds.URN)
9695
d.Set("service_name", ds.ServiceName)
9796
d.Set("monitored", ds.Monitored)
9897
d.Set("zpool_size", ds.ZpoolSize)

ovh/data_dedicated_nasha_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ func TestAccDedicatedNashaData(t *testing.T) {
2727
Check: resource.ComposeTestCheckFunc(
2828
resource.TestCheckResourceAttr("data.ovh_dedicated_nasha.testacc", "disk_type", "ssd"),
2929
resource.TestCheckResourceAttr("data.ovh_dedicated_nasha.testacc", "service_name", serviceName),
30+
resource.TestCheckResourceAttrSet("data.ovh_dedicated_nasha.testacc", "urn"),
3031
),
3132
},
3233
},

ovh/data_dedicated_server.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"net/url"
77

88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9-
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
109
)
1110

1211
func dataSourceDedicatedServer() *schema.Resource {
@@ -201,7 +200,7 @@ func dataSourceDedicatedServerRead(d *schema.ResourceData, meta interface{}) err
201200
}
202201

203202
d.SetId(ds.Name)
204-
d.Set("urn", helpers.ServiceURN(config.Plate, "dedicatedServer", ds.Name))
203+
d.Set("urn", ds.URN)
205204
d.Set("boot_id", ds.BootId)
206205
d.Set("commercial_range", ds.CommercialRange)
207206
d.Set("datacenter", ds.Datacenter)

ovh/data_dedicated_server_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ func TestAccDedicatedServerDataSource_basic(t *testing.T) {
2727
"data.ovh_dedicated_server.server", "vnis.#"),
2828
resource.TestCheckResourceAttr(
2929
"data.ovh_dedicated_server.server", "vnis.0.server_name", dedicated_server),
30+
resource.TestCheckResourceAttrSet(
31+
"data.ovh_dedicated_server.server", "urn"),
3032
),
3133
},
3234
},

ovh/data_domain_zone.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package ovh
22

33
import (
44
"fmt"
5+
"net/url"
56

67
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
7-
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
88
)
99

1010
func dataSourceDomainZone() *schema.Resource {
@@ -48,7 +48,7 @@ func dataSourceDomainZoneRead(d *schema.ResourceData, meta interface{}) error {
4848
zoneName := d.Get("name").(string)
4949

5050
dz := &DomainZone{}
51-
err := config.OVHClient.Get(fmt.Sprintf("/domain/zone/%s", zoneName), &dz)
51+
err := config.OVHClient.Get(fmt.Sprintf("/domain/zone/%s", url.PathEscape(zoneName)), &dz)
5252

5353
if err != nil {
5454
return fmt.Errorf("Error calling /domain/zone/%s:\n\t %q", zoneName, err)
@@ -59,8 +59,7 @@ func dataSourceDomainZoneRead(d *schema.ResourceData, meta interface{}) error {
5959
d.Set("dnssec_supported", dz.DnssecSupported)
6060
d.Set("last_update", dz.LastUpdate)
6161
d.Set("name_servers", dz.NameServers)
62-
63-
d.Set("urn", helpers.ServiceURN(config.Plate, "dnsZone", zoneName))
62+
d.Set("urn", dz.URN)
6463

6564
return nil
6665
}

ovh/data_domain_zone_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ func TestAccDomainZoneDataSource_basic(t *testing.T) {
2424
testAccCheckDomainZoneHasNameServers("data.ovh_domain_zone.rootzone", t),
2525
resource.TestCheckResourceAttr(
2626
"data.ovh_domain_zone.rootzone", "id", zoneName),
27+
resource.TestCheckResourceAttrSet(
28+
"data.ovh_domain_zone.rootzone", "urn"),
2729
),
2830
},
2931
},

ovh/data_hosting_privatedatabase.go

-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"net/url"
66

77
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8-
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
98
)
109

1110
func dataSourceHostingPrivateDatabase() *schema.Resource {
@@ -143,7 +142,6 @@ func dataSourceHostingPrivateDatabaseRead(d *schema.ResourceData, meta interface
143142
}
144143
}
145144
d.SetId(ds.ServiceName)
146-
d.Set("urn", helpers.ServiceURN(config.Plate, "webCloudDatabases", ds.ServiceName))
147145

148146
return nil
149147
}

ovh/data_hosting_privatedatabase_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ func TestAccDataSourceHostingPrivateDatabase_basic(t *testing.T) {
9090
"data.ovh_hosting_privatedatabase.database",
9191
"version_number",
9292
),
93+
resource.TestCheckResourceAttrSet(
94+
"data.ovh_hosting_privatedatabase.database",
95+
"urn",
96+
),
9397
),
9498
},
9599
},

ovh/data_iploadbalancing.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ovh
33
import (
44
"fmt"
55
"log"
6+
"net/url"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
89
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
@@ -164,7 +165,7 @@ func dataSourceIpLoadbalancingRead(d *schema.ResourceData, meta interface{}) err
164165

165166
for _, serviceName := range response {
166167
iplb := &IpLoadbalancing{}
167-
err := config.OVHClient.Get(fmt.Sprintf("/ipLoadbalancing/%s", serviceName), &iplb)
168+
err := config.OVHClient.Get(fmt.Sprintf("/ipLoadbalancing/%s", url.PathEscape(serviceName)), &iplb)
168169

169170
if err != nil {
170171
return fmt.Errorf("Error calling /ipLoadbalancing/%s:\n\t %q", serviceName, err)
@@ -244,8 +245,8 @@ func dataSourceIpLoadbalancingAttributes(config *Config, d *schema.ResourceData,
244245
}
245246

246247
d.SetId(iplb.ServiceName)
247-
d.Set("urn", helpers.ServiceURN(config.Plate, "loadbalancer", iplb.ServiceName))
248248

249+
d.Set("urn", iplb.URN)
249250
d.Set("ipv6", iplb.IPv6)
250251
d.Set("ipv4", iplb.IPv4)
251252
d.Set("zone", iplb.Zone)

ovh/data_iploadbalancing_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ func TestAccIpLoadbalancingDataSource_basic(t *testing.T) {
2323
"data.ovh_iploadbalancing.iplb", "service_name", serviceName),
2424
resource.TestCheckResourceAttr(
2525
"data.ovh_iploadbalancing.iplb", "id", serviceName),
26+
resource.TestCheckResourceAttrSet(
27+
"data.ovh_iploadbalancing.iplb", "urn"),
2628
),
2729
},
2830
},
@@ -48,6 +50,8 @@ func TestAccIpLoadbalancingDataSource_statevrack(t *testing.T) {
4850
"data.ovh_iploadbalancing.iplb", "state", "ok"),
4951
resource.TestCheckResourceAttr(
5052
"data.ovh_iploadbalancing.iplb", "vrack_eligibility", "true"),
53+
resource.TestCheckResourceAttrSet(
54+
"data.ovh_iploadbalancing.iplb", "urn"),
5155
),
5256
},
5357
},

ovh/data_vps.go

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"net/url"
66

77
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8-
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
98
)
109

1110
func dataSourceVPS() *schema.Resource {
@@ -113,8 +112,7 @@ func dataSourceVPSRead(d *schema.ResourceData, meta interface{}) error {
113112

114113
d.SetId(vps.Name)
115114

116-
d.Set("urn", helpers.ServiceURN(config.Plate, helpers.VPSkind, serviceName))
117-
115+
d.Set("urn", vps.URN)
118116
d.Set("name", vps.Name)
119117
d.Set("zone", vps.Zone)
120118
d.Set("state", vps.State)
@@ -135,7 +133,7 @@ func dataSourceVPSRead(d *schema.ResourceData, meta interface{}) error {
135133

136134
ips := []string{}
137135
err = config.OVHClient.Get(
138-
fmt.Sprintf("/vps/%s/ips", d.Id()),
136+
fmt.Sprintf("/vps/%s/ips", url.PathEscape(d.Id())),
139137
&ips,
140138
)
141139
if err != nil {
@@ -146,7 +144,7 @@ func dataSourceVPSRead(d *schema.ResourceData, meta interface{}) error {
146144

147145
vpsDatacenter := VPSDatacenter{}
148146
err = config.OVHClient.Get(
149-
fmt.Sprintf("/vps/%s/datacenter", d.Id()),
147+
fmt.Sprintf("/vps/%s/datacenter", url.PathEscape(d.Id())),
150148
&vpsDatacenter,
151149
)
152150
if err != nil {

ovh/data_vps_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ func TestAccVPSDataSource_basic(t *testing.T) {
2323
"data.ovh_vps.server", "name", vps),
2424
resource.TestCheckResourceAttr(
2525
"data.ovh_vps.server", "service_name", vps),
26+
resource.TestCheckResourceAttrSet(
27+
"data.ovh_vps.server", "urn"),
2628
),
2729
},
2830
},

ovh/resource_cloud_project.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func resourceCloudProjectUpdate(d *schema.ResourceData, meta interface{}) error
106106

107107
log.Printf("[DEBUG] Will update cloudProject: %s", serviceName)
108108
opts := (&CloudProjectUpdateOpts{}).FromResource(d)
109-
endpoint := fmt.Sprintf("/cloud/project/%s", serviceName)
109+
endpoint := fmt.Sprintf("/cloud/project/%s", url.PathEscape(serviceName))
110110
if err := config.OVHClient.Put(endpoint, opts, nil); err != nil {
111111
return fmt.Errorf("calling Put %s: %q", endpoint, err)
112112
}
@@ -142,13 +142,11 @@ func resourceCloudProjectRead(d *schema.ResourceData, meta interface{}) error {
142142

143143
log.Printf("[DEBUG] Will read cloudProject: %s", serviceName)
144144
r := &CloudProject{}
145-
endpoint := fmt.Sprintf("/cloud/project/%s", serviceName)
145+
endpoint := fmt.Sprintf("/cloud/project/%s", url.PathEscape(serviceName))
146146
if err := config.OVHClient.Get(endpoint, &r); err != nil {
147147
return helpers.CheckDeleted(d, err, endpoint)
148148
}
149149

150-
d.Set("urn", helpers.ServiceURN(config.Plate, "publicCloudProject", serviceName))
151-
152150
// set resource attributes
153151
for k, v := range r.ToMap() {
154152
d.Set(k, v)

ovh/resource_cloud_project_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ func TestAccResourceCloudProject_basic(t *testing.T) {
143143
"ovh_cloud_project.cloud", "project_id"),
144144
resource.TestCheckResourceAttrSet(
145145
"ovh_cloud_project.cloud", "project_name"),
146+
resource.TestCheckResourceAttrSet(
147+
"ovh_cloud_project.cloud", "urn"),
146148
),
147149
},
148150
},

ovh/resource_domain_zone.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func resourceDomainZoneRead(d *schema.ResourceData, meta interface{}) error {
8888

8989
log.Printf("[DEBUG] Will read domainZone: %s", zoneName)
9090
r := &DomainZone{}
91-
endpoint := fmt.Sprintf("/domain/zone/%s", zoneName)
91+
endpoint := fmt.Sprintf("/domain/zone/%s", url.PathEscape(zoneName))
9292
if err := config.OVHClient.Get(endpoint, &r); err != nil {
9393
return helpers.CheckDeleted(d, err, endpoint)
9494
}
@@ -98,8 +98,6 @@ func resourceDomainZoneRead(d *schema.ResourceData, meta interface{}) error {
9898
d.Set(k, v)
9999
}
100100

101-
d.Set("urn", helpers.ServiceURN(config.Plate, "dnsZone", r.Name))
102-
103101
return nil
104102
}
105103

ovh/resource_domain_zone_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ func TestAccResourceDomainZone_basic(t *testing.T) {
141141
Check: resource.ComposeTestCheckFunc(
142142
resource.TestCheckResourceAttr(
143143
"ovh_domain_zone.zone", "name", name),
144+
resource.TestCheckResourceAttrSet(
145+
"ovh_domain_zone.zone", "urn"),
144146
),
145147
},
146148
},

ovh/resource_hosting_privatedatabase.go

-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ func resourceHostingPrivateDatabaseRead(d *schema.ResourceData, meta interface{}
194194
for k, v := range ds.ToMap() {
195195
d.Set(k, v)
196196
}
197-
d.Set("urn", helpers.ServiceURN(config.Plate, "webCloudDatabases", ds.ServiceName))
198197

199198
return nil
200199
}

ovh/resource_hosting_privatedatabase_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ func TestAccHostingPrivateDatabase_basic(t *testing.T) {
154154
"ovh_hosting_privatedatabase.database", "datacenter", dc),
155155
resource.TestCheckResourceAttr(
156156
"ovh_hosting_privatedatabase.database", "version", engine),
157+
resource.TestCheckResourceAttrSet(
158+
"ovh_hosting_privatedatabase.database", "urn"),
157159
),
158160
},
159161
},

ovh/resource_iploadbalancing.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ func resourceIpLoadbalancingUpdate(d *schema.ResourceData, meta interface{}) err
172172

173173
log.Printf("[DEBUG] Will update ipLoadbalancing: %s", serviceName)
174174
opts := (&IpLoadbalancingUpdateOpts{}).FromResource(d)
175-
endpoint := fmt.Sprintf("/ipLoadbalancing/%s", serviceName)
175+
endpoint := fmt.Sprintf("/ipLoadbalancing/%s", url.PathEscape(serviceName))
176176
if err := config.OVHClient.Put(endpoint, opts, nil); err != nil {
177177
return fmt.Errorf("calling Put %s: %q", endpoint, err)
178178
}
@@ -197,7 +197,7 @@ func resourceIpLoadbalancingRead(d *schema.ResourceData, meta interface{}) error
197197
log.Printf("[DEBUG] Will read ipLoadbalancing: %s", serviceName)
198198

199199
r := &IpLoadbalancing{}
200-
endpoint := fmt.Sprintf("/ipLoadbalancing/%s", serviceName)
200+
endpoint := fmt.Sprintf("/ipLoadbalancing/%s", url.PathEscape(serviceName))
201201
if err := config.OVHClient.Get(endpoint, &r); err != nil {
202202
return helpers.CheckDeleted(d, err, endpoint)
203203
}
@@ -206,7 +206,6 @@ func resourceIpLoadbalancingRead(d *schema.ResourceData, meta interface{}) error
206206
for k, v := range r.ToMap() {
207207
d.Set(k, v)
208208
}
209-
d.Set("urn", helpers.ServiceURN(config.Plate, "loadbalancer", r.ServiceName))
210209

211210
return nil
212211
}

ovh/resource_iploadbalancing_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ func TestAccResourceIpLoadbalancing_basic(t *testing.T) {
176176
"ovh_iploadbalancing.iplb-lb1", "ipv4"),
177177
resource.TestCheckResourceAttr(
178178
"ovh_iploadbalancing.iplb-lb1", "display_name", desc),
179+
resource.TestCheckResourceAttrSet(
180+
"ovh_iploadbalancing.iplb-lb1", "urn"),
179181
),
180182
},
181183
},
@@ -200,6 +202,8 @@ func TestAccResourceIpLoadbalancing_internal(t *testing.T) {
200202
"ovh_iploadbalancing.iplb-internal", "ipv4"),
201203
resource.TestCheckResourceAttr(
202204
"ovh_iploadbalancing.iplb-internal", "display_name", desc),
205+
resource.TestCheckResourceAttrSet(
206+
"ovh_iploadbalancing.iplb-internal", "urn"),
203207
),
204208
},
205209
},

ovh/resource_vrack.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package ovh
33
import (
44
"fmt"
55
"log"
6+
"net/url"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
89
"github.com/ovh/terraform-provider-ovh/ovh/helpers"
@@ -78,7 +79,7 @@ func resourceVrackUpdate(d *schema.ResourceData, meta interface{}) error {
7879

7980
log.Printf("[DEBUG] Will update vrack: %s", serviceName)
8081
opts := (&VrackUpdateOpts{}).FromResource(d)
81-
endpoint := fmt.Sprintf("/vrack/%s", serviceName)
82+
endpoint := fmt.Sprintf("/vrack/%s", url.PathEscape(serviceName))
8283
if err := config.OVHClient.Put(endpoint, opts, nil); err != nil {
8384
return fmt.Errorf("calling Put %s: %q", endpoint, err)
8485
}
@@ -97,7 +98,7 @@ func resourceVrackRead(d *schema.ResourceData, meta interface{}) error {
9798

9899
log.Printf("[DEBUG] Will read vrack: %s", serviceName)
99100
r := &Vrack{}
100-
endpoint := fmt.Sprintf("/vrack/%s", serviceName)
101+
endpoint := fmt.Sprintf("/vrack/%s", url.PathEscape(serviceName))
101102
if err := config.OVHClient.Get(endpoint, &r); err != nil {
102103
return helpers.CheckDeleted(d, err, endpoint)
103104
}
@@ -108,7 +109,6 @@ func resourceVrackRead(d *schema.ResourceData, meta interface{}) error {
108109
for k, v := range r.ToMap() {
109110
d.Set(k, v)
110111
}
111-
d.Set("urn", helpers.ServiceURN(config.Plate, "vrack", serviceName))
112112

113113
return nil
114114
}

ovh/resource_vrack_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ func TestAccResourceVrack_basic(t *testing.T) {
5757
"ovh_vrack.vrack", "description", desc),
5858
resource.TestCheckResourceAttrSet(
5959
"ovh_vrack.vrack", "service_name"),
60+
resource.TestCheckResourceAttrSet(
61+
"ovh_vrack.vrack", "urn"),
6062
),
6163
},
6264
},

0 commit comments

Comments
 (0)