Skip to content

Commit 628a7c6

Browse files
authored
Merge pull request scaleway#69 from terraform-providers/server-validation
r/server: validate instance type availability
2 parents 49b2335 + 7e683c3 commit 628a7c6

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

scaleway/resource_server.go

+14
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,20 @@ func resourceScalewayServerCreate(d *schema.ResourceData, m interface{}) error {
179179
req.DynamicIPRequired = Bool(d.Get("dynamic_ip_required").(bool))
180180
req.CommercialType = d.Get("type").(string)
181181

182+
availabilities, err := scaleway.GetServerAvailabilities()
183+
if err != nil {
184+
log.Printf("[DEBUG] Unable to fetch server availability; won't validate availability: %q\n", err.Error())
185+
} else {
186+
typeAvailability, ok := availabilities[req.CommercialType]
187+
if !ok {
188+
// this will most likely happen for new instance types
189+
log.Printf("[DEBUG] no server availability for type %q. Ignoring\n", req.CommercialType)
190+
}
191+
if typeAvailability.Availability == api.InstanceTypeShortage {
192+
return fmt.Errorf("InstanceType %s is currently out of stock", req.CommercialType)
193+
}
194+
}
195+
182196
if bootscript, ok := d.GetOk("bootscript"); ok {
183197
req.Bootscript = String(bootscript.(string))
184198
}

vendor/github.com/nicolai86/scaleway-sdk/availability.go

+13-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/vendor.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -570,10 +570,10 @@
570570
"revisionTime": "2016-10-03T17:45:16Z"
571571
},
572572
{
573-
"checksumSHA1": "5PC3eHJZwTMQyGJltpcIJp/aCNw=",
573+
"checksumSHA1": "ucJEyEBIAPbSsctcjxHTqN/1aoo=",
574574
"path": "github.com/nicolai86/scaleway-sdk",
575-
"revision": "4871b0a66c85ce1a78bb5d8a62714ed1a5669650",
576-
"revisionTime": "2018-05-12T06:04:43Z"
575+
"revision": "a7b61129ca818b3a2d1ebb3d276ed82b5b7eabfe",
576+
"revisionTime": "2018-06-24T01:24:03Z"
577577
},
578578
{
579579
"checksumSHA1": "u5s2PZ7fzCOqQX7bVPf9IJ+qNLQ=",

0 commit comments

Comments
 (0)