summaryrefslogtreecommitdiffstats
path: root/sandbox/hyper/process/main.go
diff options
context:
space:
mode:
authorroot <root@pigstarter.de>2013-11-05 13:24:42 +0100
committerroot <root@pigstarter.de>2013-11-05 13:24:42 +0100
commit5e326f51c58e500285ea3daee91986ee1ea518eb (patch)
tree2b3eccf15e10e4331dcb2d01c9f53620d749f55f /sandbox/hyper/process/main.go
parentae627d2aa73ea6862af3985f1c07e95c6d493275 (diff)
sandbox -> .graveyard
Diffstat (limited to 'sandbox/hyper/process/main.go')
-rw-r--r--sandbox/hyper/process/main.go77
1 files changed, 0 insertions, 77 deletions
diff --git a/sandbox/hyper/process/main.go b/sandbox/hyper/process/main.go
deleted file mode 100644
index 214dade9..00000000
--- a/sandbox/hyper/process/main.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package main
-
-import "json"
-import "log"
-import "http"
-import "gorilla.googlecode.com/hg/gorilla/mux"
-import "os"
-import "fmt"
-import "bytes"
-
-import "hyper/process"
-
-var proc = map[string]*hyper.Process{}
-
-// TODO Retrieve Process, Write, Kill [autokill], get exit code
-
-func RespondJSON(res http.ResponseWriter, v interface{}) os.Error {
- content, err := json.Marshal(v)
- if err == nil {
- log.Printf("< %s", content)
- res.Header().Set("Content-Type", "application/json; charset=\"utf-8\"")
- res.WriteHeader(http.StatusOK)
- res.Write(content)
- } else {
- log.Printf("%s while json.Marshal(%s)", err, v)
- }
- return err
-}
-
-func CreateProcessHandler(res http.ResponseWriter, req *http.Request) {
- if p, err := hyper.NewProcess(req); err == nil {
- id := p.Id()
- proc[id] = p
- RespondJSON(res, &map[string]string{
- "path": fmt.Sprintf("/proc/%s", id),
- })
- } else {
- log.Printf("%s", err)
- res.WriteHeader(http.StatusInternalServerError)
- }
-}
-
-func RetrieveProcess(res http.ResponseWriter, req *http.Request) {
- if p := proc[mux.Vars(req)["id"]]; p != nil {
- RespondJSON(res, p)
- } else {
- res.WriteHeader(http.StatusNotFound)
- }
-}
-
-func FeedProcess(res http.ResponseWriter, req *http.Request) {
- if p := proc[mux.Vars(req)["id"]]; p != nil {
- body := make([]byte, 4096)
- if _, err := req.Body.Read(body); err == nil {
- body = bytes.TrimRight(body, string([]byte{0}))
- p.Write(body)
- //if err := p.Write(body); err == nil {
- RespondJSON(res, true)
- //}
- }
- } else {
- res.WriteHeader(http.StatusNotFound)
- }
-}
-
-func main() {
-
- // Gorilla
- mux.HandleFunc("/proc", CreateProcessHandler).Methods("POST")
- mux.HandleFunc("/proc/{id}", RetrieveProcess).Methods("GET")
- mux.HandleFunc("/proc/{id}", FeedProcess).Methods("POST")
-
- err := http.ListenAndServe("0.0.0.0:8888", mux.DefaultRouter)
- if err != nil {
- log.Fatal("ListenAndServe: ", err.String())
- }
-}