terraform/builtin/providers/ovh/provider_test.go

120 lines
2.7 KiB
Go

package ovh
import (
"fmt"
"log"
"os"
"testing"
"github.com/hashicorp/terraform/helper/schema"
"github.com/hashicorp/terraform/terraform"
"github.com/ovh/go-ovh/ovh"
)
var testAccProviders map[string]terraform.ResourceProvider
var testAccProvider *schema.Provider
var testAccOVHClient *ovh.Client
func init() {
log.SetOutput(os.Stdout)
testAccProvider = Provider().(*schema.Provider)
testAccProviders = map[string]terraform.ResourceProvider{
"ovh": testAccProvider,
}
}
func TestProvider(t *testing.T) {
if err := Provider().(*schema.Provider).InternalValidate(); err != nil {
t.Fatalf("err: %s", err)
}
}
func TestProvider_impl(t *testing.T) {
var _ terraform.ResourceProvider = Provider()
}
func testAccPreCheck(t *testing.T) {
v := os.Getenv("OVH_ENDPOINT")
if v == "" {
t.Fatal("OVH_ENDPOINT must be set for acceptance tests")
}
v = os.Getenv("OVH_APPLICATION_KEY")
if v == "" {
t.Fatal("OVH_APPLICATION_KEY must be set for acceptance tests")
}
v = os.Getenv("OVH_APPLICATION_SECRET")
if v == "" {
t.Fatal("OVH_APPLICATION_SECRET must be set for acceptance tests")
}
v = os.Getenv("OVH_CONSUMER_KEY")
if v == "" {
t.Fatal("OVH_CONSUMER_KEY must be set for acceptance tests")
}
v = os.Getenv("OVH_VRACK")
if v == "" {
t.Fatal("OVH_VRACK must be set for acceptance tests")
}
v = os.Getenv("OVH_PUBLIC_CLOUD")
if v == "" {
t.Fatal("OVH_PUBLIC_CLOUD must be set for acceptance tests")
}
if testAccOVHClient == nil {
config := Config{
Endpoint: os.Getenv("OVH_ENDPOINT"),
ApplicationKey: os.Getenv("OVH_APPLICATION_KEY"),
ApplicationSecret: os.Getenv("OVH_APPLICATION_SECRET"),
ConsumerKey: os.Getenv("OVH_CONSUMER_KEY"),
}
if err := config.loadAndValidate(); err != nil {
t.Fatalf("couln't load OVH Client: %s", err)
} else {
testAccOVHClient = config.OVHClient
}
}
}
func testAccCheckVRackExists(t *testing.T) {
type vrackResponse struct {
Name string `json:"name"`
Description string `json:"description"`
}
r := vrackResponse{}
endpoint := fmt.Sprintf("/vrack/%s", os.Getenv("OVH_VRACK"))
err := testAccOVHClient.Get(endpoint, &r)
if err != nil {
t.Fatalf("Error: %q\n", err)
}
t.Logf("Read VRack %s -> name:'%s', desc:'%s' ", endpoint, r.Name, r.Description)
}
func testAccCheckPublicCloudExists(t *testing.T) {
type cloudProjectResponse struct {
ID string `json:"project_id"`
Status string `json:"status"`
Description string `json:"description"`
}
r := cloudProjectResponse{}
endpoint := fmt.Sprintf("/cloud/project/%s", os.Getenv("OVH_PUBLIC_CLOUD"))
err := testAccOVHClient.Get(endpoint, &r)
if err != nil {
t.Fatalf("Error: %q\n", err)
}
t.Logf("Read Cloud Project %s -> status: '%s', desc: '%s'", endpoint, r.Status, r.Description)
}