buildenv, cmd/coordinator: switch to build.golang.org, remove farmer-ui-test

The farmer-ui-test domain was added to help with a gradual rollout of
the dashboard unification. It was also used when the build.golang.org
DNS was still propagating and not yet fully available. All that's done
by now, so these aren't needed and can be removed.

Switch to using the final post-unification URL, build.golang.org in
production and build-staging.golang.org in the staging environment.

Simplify the handler registration by using http.ServeMux's host prefix
support.

For golang/go#34744.
Updates golang/go#47580.

Change-Id: I03c0529bd948e812ccf5c5aa312de247d174ad0a
Reviewed-on: https://go-review.googlesource.com/c/build/+/340433
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
diff --git a/buildenv/envs.go b/buildenv/envs.go
index 9b058ab..7e586ad 100644
--- a/buildenv/envs.go
+++ b/buildenv/envs.go
@@ -262,7 +262,7 @@
 		Name:        "go",
 		MachineType: "n1-standard-4",
 	},
-	DashURL:           "https://go-dashboard-dev.appspot.com/",
+	DashURL:           "https://build-staging.golang.org/",
 	PerfDataURL:       "https://perfdata.golang.org",
 	CoordinatorName:   "farmer",
 	BuildletBucket:    "dev-go-builder-data",
@@ -297,7 +297,7 @@
 		Name:        "go",
 		MachineType: "n1-standard-4",
 	},
-	DashURL:             "https://farmer-ui-test.golang.org/", // TODO(golang.org/issue/47580): Go back to build.golang.org after its DNS rollout stabilizes.
+	DashURL:             "https://build.golang.org/",
 	PerfDataURL:         "https://perfdata.golang.org",
 	CoordinatorName:     "farmer",
 	BuildletBucket:      "go-builder-data",
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index 5ff366f..7471978 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -418,18 +418,9 @@
 	dashV2 := &builddash.Handler{Datastore: gce.GoDSClient(), Maintner: maintnerClient}
 	gs := &gRPCServer{dashboardURL: "https://build.golang.org"}
 	protos.RegisterCoordinatorServer(grpcServer, gs)
-	http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
-		switch req.Host {
-		case "build.golang.org",
-			"farmer-ui-test.golang.org",
-			"farmer-ui-test-staging.golang.org":
-			// Serve a build dashboard at build.golang.org.
-			dashV1.ServeHTTP(w, req)
-		default:
-			// Serve a status page at farmer.golang.org.
-			handleStatus(w, req)
-		}
-	})
+	http.HandleFunc("/", handleStatus)       // Serve a status page at farmer.golang.org.
+	http.Handle("build.golang.org/", dashV1) // Serve a build dashboard at build.golang.org.
+	http.Handle("build-staging.golang.org/", dashV1)
 	http.HandleFunc("/builders", handleBuilders)
 	http.HandleFunc("/temporarylogs", handleLogs)
 	http.HandleFunc("/reverse", pool.HandleReverse)