1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
package gce_test
import (
"io/ioutil"
"log"
"os"
"testing"
discover "github.com/hashicorp/go-discover"
"github.com/hashicorp/go-discover/provider/gce"
)
var _ discover.Provider = (*gce.Provider)(nil)
var _ discover.ProviderWithUserAgent = (*gce.Provider)(nil)
func TestAddrs(t *testing.T) {
// assume the google credentials file contents are in the environment,
// as with the terraform provider
fileContents := os.Getenv("GOOGLE_CREDENTIALS")
tmpCreds, err := ioutil.TempFile("", "gce-credentials")
if err != nil {
t.Fatal(err)
}
if _, err := tmpCreds.WriteString(fileContents); err != nil {
t.Fatal(err)
}
if err := tmpCreds.Close(); err != nil {
t.Fatal(err)
}
// remove credentials file
defer os.Remove(tmpCreds.Name())
args := discover.Config{
"provider": "gce",
"project_name": os.Getenv("GOOGLE_PROJECT"),
"zone_pattern": os.Getenv("GOOGLE_ZONE"),
"tag_value": "consul-server",
"credentials_file": tmpCreds.Name(),
}
if args["project_name"] == "" || args["credentials_file"] == "" {
t.Skip("Google credentials missing")
}
l := log.New(os.Stderr, "", log.LstdFlags)
p := &gce.Provider{}
addrs, err := p.Addrs(args, l)
if err != nil {
t.Fatal(err)
}
if len(addrs) != 2 {
t.Fatalf("bad: %v", addrs)
}
}
|