From 9b7ad0bb63f7ecaace3aa9da53042cc10f00151c Mon Sep 17 00:00:00 2001 From: Ben Firshman Date: Fri, 6 Jun 2014 18:29:42 -0700 Subject: [PATCH] Add start to apiserver Signed-off-by: Ben Firshman --- backends/apiserver.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/backends/apiserver.go b/backends/apiserver.go index dbffd35ea5..a163657753 100644 --- a/backends/apiserver.go +++ b/backends/apiserver.go @@ -61,6 +61,27 @@ func getContainersJSON(out beam.Sender, version version.Version, w http.Response return writeJSON(w, http.StatusOK, names) } +func postContainersStart(out beam.Sender, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { + if vars == nil { + return fmt.Errorf("Missing parameter") + } + + // TODO: r.Body + + name := vars["name"] + _, containerOut, err := beam.Obj(out).Attach(name) + container := beam.Obj(containerOut) + if err != nil { + return err + } + if err := container.Start(); err != nil { + return err + } + + w.WriteHeader(http.StatusNoContent) + return nil +} + func createRouter(out beam.Sender) (*mux.Router, error) { r := mux.NewRouter() m := map[string]map[string]HttpApiFunc{ @@ -68,7 +89,9 @@ func createRouter(out beam.Sender) (*mux.Router, error) { "/_ping": ping, "/containers/json": getContainersJSON, }, - "POST": {}, + "POST": { + "/containers/{name:.*}/start": postContainersStart, + }, "DELETE": {}, "OPTIONS": {}, }