in integration_test/gce-testing-internal/gce/gce_testing.go [164:230]
func init() {
ctx := context.Background()
var err error
storageClient, err = storage.NewClient(ctx)
if err != nil {
log.Fatalf("storage.NewClient() failed: %v:", err)
}
transfersBucket = os.Getenv("TRANSFERS_BUCKET")
if transfersBucket == "" {
transfersBucket = "stackdriver-test-143416-file-transfers"
}
monClient, err = monitoring.NewMetricClient(ctx)
if err != nil {
log.Fatalf("NewMetricClient() failed: %v", err)
}
logClients = &logClientFactory{
clients: make(map[string]*logadmin.Client),
}
traceClient, err = trace.NewClient(ctx)
if err != nil {
log.Fatalf("trace.NewClient() failed: %v", err)
}
zonePicker, err = newZonePicker(os.Getenv("ZONES"))
if err != nil {
log.Fatal(err)
}
// Some useful options to pass to gcloud.
os.Setenv("CLOUDSDK_PYTHON", "/usr/bin/python3")
os.Setenv("CLOUDSDK_CORE_DISABLE_PROMPTS", "1")
keysDir, err = os.MkdirTemp("", "ssh_keys")
if err != nil {
log.Fatalf("init() failed to make a temporary directory for ssh keys: %v", err)
}
privateKeyFile = filepath.Join(keysDir, "gce_testing_key")
if _, err := runCommand(ctx, log.Default(), nil, []string{"ssh-keygen", "-t", "rsa", "-f", privateKeyFile, "-C", sshUserName, "-N", ""}, nil); err != nil {
log.Fatalf("init() failed to generate new public+private key pair: %v", err)
}
publicKeyFile = privateKeyFile + ".pub"
// Prefixes VM names with today's date in YYYYMMDD format, and a few
// characters from a UUID. Note that since VM names can't be very long,
// this prefix needs to be fairly short too.
// https://cloud.google.com/compute/docs/naming-resources#resource-name-format
// It's very useful to have today's date in the VM name so that old VMs are
// easy to identify.
sandboxPrefix = fmt.Sprintf("test-%s-%s", time.Now().Format("20060102"), uuid.NewString()[:5])
// This prefix is needed for builds running as build-and-test-external
// because that service account is only allowed to interact with VMs whose
// names start with "github-" to isolate them from our release builds.
// go/sdi-kokoro-security
if strings.Contains(os.Getenv("SERVICE_EMAIL"), "build-and-test-external@") {
sandboxPrefix = "github-" + sandboxPrefix
}
logRootDir = os.Getenv("TEST_UNDECLARED_OUTPUTS_DIR")
if logRootDir == "" {
logRootDir, err = os.MkdirTemp("", "")
if err != nil {
log.Fatalf("Couldn't create temporary directory for logs. err=%v", err)
}
}
log.Printf("Detailed logs are in %s\n", logRootDir)
}