+++ /dev/null
-package servicemgr
-
-import (
- "encoding/json"
- "log"
- "net"
- "net/http"
- "os/exec"
- "strconv"
-)
-
-func checkHTTPError(w http.ResponseWriter, err error) {
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- panic(err)
- }
-}
-
-// CreateServiceHandler function
-func CreateServiceHandler(w http.ResponseWriter, req *http.Request) (serviceParam ServiceParam, err error) {
- decoder := json.NewDecoder(req.Body)
-
- err = decoder.Decode(&serviceParam)
- if err != nil {
- log.Println(err.Error())
- return
- }
-
- binary := serviceParam.ServiceBinPath + serviceParam.ServiceName
-
- _, err = exec.LookPath(binary)
- if err != nil {
- log.Println(err.Error())
- err = ErrInvalidService
- }
-
- return
-}
-
-// ExecuteServiceHandler function
-func ExecuteServiceHandler(w http.ResponseWriter, req *http.Request, serviceID uint64) (distService DistService, err error) {
- _, err = GetServiceName(serviceID)
- if err != nil {
- return
- }
-
- decoder := json.NewDecoder(req.Body)
- err = decoder.Decode(&distService)
- if err != nil {
- log.Println(err.Error())
- return
- }
-
- remoteAddr, _, err := net.SplitHostPort(req.RemoteAddr)
- if err != nil {
- log.Println(err.Error())
- return
- }
- distService.SystemArgs = append(distService.SystemArgs, remoteAddr)
- distService.SystemArgs = append(distService.SystemArgs, strconv.Itoa(ConstFWWellknownPort))
-
- return
-}
-
-// DeleteServiceHandler function
-func DeleteServiceHandler(w http.ResponseWriter, req *http.Request, serviceID uint64) (err error) {
- cmd, err := GetCmd(serviceID)
- if err != nil {
- return
- }
-
- if cmd.ProcessState.Exited() == false {
- err = cmd.Process.Kill()
- if err != nil {
- log.Println(err.Error())
- }
- }
-
- return
-}
-
-// @TODO DataPathHandler function (service <-> service)
-// func DataPathHandler(w http.ResponseWriter, req *http.Request, serviceID uint64) (err error) {
-// msgChan, err := GetMsgChan(serviceID)
-// if err != nil {
-// return
-// }
-
-// decoder := json.NewDecoder(req.Body)
-// msgFormat := MsgFormat{}
-// err = decoder.Decode(&msgFormat)
-
-// if err != nil {
-// return
-// }
-
-// msgChan <- msgFormat
-
-// return
-// }