env-manager: log and reject requests
Someone is trying to periodically create new envs.
Change-Id: I45ca8682213bdc8f19b8f98fb130af442cc6380b
diff --git a/core/installer/server/env/server.go b/core/installer/server/env/server.go
index 9bd0a34..d6e9eac 100644
--- a/core/installer/server/env/server.go
+++ b/core/installer/server/env/server.go
@@ -99,6 +99,7 @@
envInfo map[string]template.HTML
dns map[string]installer.EnvDNS
dnsPublished map[string]struct{}
+ allowNewEnvs bool
}
func NewEnvServer(
@@ -114,6 +115,7 @@
httpClient phttp.Client,
dnsClient dns.Client,
tm tasks.TaskManager,
+ allowNewEnvs bool,
) *EnvServer {
return &EnvServer{
nil,
@@ -132,6 +134,7 @@
make(map[string]template.HTML),
make(map[string]installer.EnvDNS),
make(map[string]struct{}),
+ allowNewEnvs,
}
}
@@ -361,6 +364,12 @@
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
+ // TODO(gio): remove
+ fmt.Printf("### NEW ENV REQUEST: %+v -- %+v\n", req, r.Header)
+ if !s.allowNewEnvs {
+ http.Error(w, "Domain is already taken", http.StatusBadRequest)
+ return
+ }
hf := installer.NewGitHelmFetcher()
lg := installer.NewInfraLocalChartGenerator()
mgr, err := installer.NewInfraAppManager(s.repo, s.nsCreator, hf, lg)
diff --git a/core/installer/server/env/server_test.go b/core/installer/server/env/server_test.go
index d45a463..d2490b7 100644
--- a/core/installer/server/env/server_test.go
+++ b/core/installer/server/env/server_test.go
@@ -339,6 +339,7 @@
httpClient,
dnsClient,
tm,
+ true,
)
go s.Start()
time.Sleep(1 * time.Second) // Let server start