Add OOC check and error on new session creation
This commit is contained in:
@@ -57,6 +57,12 @@ func Register() {
|
||||
corsRouter.HandleFunc("/sessions/{sessionId}/instances/{instanceName}", DeleteInstance).Methods("DELETE")
|
||||
corsRouter.HandleFunc("/sessions/{sessionId}/instances/{instanceName}/exec", Exec).Methods("POST")
|
||||
|
||||
r.HandleFunc("/ooc", func(rw http.ResponseWriter, r *http.Request) {
|
||||
http.ServeFile(rw, r, "./www/ooc.html")
|
||||
}).Methods("GET")
|
||||
r.HandleFunc("/503", func(rw http.ResponseWriter, r *http.Request) {
|
||||
http.ServeFile(rw, r, "./www/503.html")
|
||||
}).Methods("GET")
|
||||
r.HandleFunc("/p/{sessionId}", Home).Methods("GET")
|
||||
r.PathPrefix("/assets").Handler(http.FileServer(http.Dir("./www")))
|
||||
r.HandleFunc("/robots.txt", func(rw http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/play-with-docker/play-with-docker/config"
|
||||
"github.com/play-with-docker/play-with-docker/provisioner"
|
||||
"github.com/play-with-docker/play-with-docker/recaptcha"
|
||||
)
|
||||
|
||||
@@ -46,7 +47,13 @@ func NewSession(rw http.ResponseWriter, req *http.Request) {
|
||||
duration := config.GetDuration(reqDur)
|
||||
s, err := core.SessionNew(duration, stack, stackName, imageName)
|
||||
if err != nil {
|
||||
if provisioner.OutOfCapacity(err) {
|
||||
http.Redirect(rw, req, "/ooc", http.StatusFound)
|
||||
return
|
||||
}
|
||||
log.Println(err)
|
||||
http.Redirect(rw, req, "/500", http.StatusInternalServerError)
|
||||
return
|
||||
//TODO: Return some error code
|
||||
} else {
|
||||
hostname := req.Host
|
||||
|
||||
Reference in New Issue
Block a user