Region Validation

pull/4811/merge
Luke Farnell 9 years ago committed by Matthew Hooker
parent abf2e618b5
commit 0f354614c0
No known key found for this signature in database
GPG Key ID: 7B5F933D9CE8C6A1

@ -4,6 +4,7 @@
package digitalocean
import (
"context"
"fmt"
"log"
"net/url"
@ -46,6 +47,26 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
client.BaseURL = u
}
if len(b.config.SnapshotRegions) > 0 {
opt := &godo.ListOptions{
Page: 1,
PerPage: 200,
}
regions, _, err := client.Regions.List(context.TODO(), opt)
if err != nil {
return nil, fmt.Errorf("DigitalOcean: Unable to get regions, %s.", err)
}
for _, snapShotRegion := range b.config.SnapshotRegions {
for _, region := range regions {
if snapShotRegion == region.Slug {
continue
} else {
return nil, fmt.Errorf("DigitalOcean: Invalid region, %s.", snapShotRegion)
}
}
}
}
// Set up the state
state := new(multistep.BasicStateBag)
state.Put("config", b.config)

Loading…
Cancel
Save