diff --git a/cmd/e2e-test/main_test.go b/cmd/e2e-test/main_test.go index 0c6177a896..92e217c102 100644 --- a/cmd/e2e-test/main_test.go +++ b/cmd/e2e-test/main_test.go @@ -92,8 +92,8 @@ func TestMain(m *testing.M) { os.Exit(1) } if flags.network == "" { - // TODO(shance): Make this a required flag, error out here - fmt.Println("-network must be set to the network of the cluster") + fmt.Fprintln(os.Stderr, "-network must be set to the network of the cluster") + os.Exit(1) } fmt.Printf("Version: %q, Commit: %q\n", version.Version, version.GitCommit) diff --git a/cmd/e2e-test/run.sh b/cmd/e2e-test/run.sh index 0603ae1e6b..98f682c1cb 100755 --- a/cmd/e2e-test/run.sh +++ b/cmd/e2e-test/run.sh @@ -62,10 +62,29 @@ if [[ -z "${REGION}" ]]; then fi echo "Using Region: ${REGION}" +# Get network information +for ATTEMPT in $(seq 60); do + NETWORK_INFO=$(curl -H'Metadata-Flavor:Google' metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/network) + if [[ -n "${NETWORK_INFO}" ]]; then + break + fi + echo "Error: could not get network from the metadata server (attempt ${ATTEMPT})" + sleep 1 +done + +NETWORK = NETWORK_INFO | sed 's+projects/.*/networks/++' + +if [[ -z "${NETWORK}" ]]; then + echo "Error: could not parse network from network info" + echo "Result: 2" + exit +fi +echo "Using Network: ${NETWORK}" + echo echo ============================================================================== echo "PROJECT: ${PROJECT}" -CMD="/e2e-test -test.v -test.parallel=100 -run -project ${PROJECT} -region ${REGION} -logtostderr -inCluster -v=2" +CMD="/e2e-test -test.v -test.parallel=100 -run -project ${PROJECT} -region ${REGION} -network ${NETWORK} -logtostderr -inCluster -v=2" echo "CMD: ${CMD}" $@ echo