func (s *Session) doRequest(req *message.Request, conf *config.ServantConfig) (string, error) { err := req.ExpandServantVars() if err != nil { console.Display("CTS015E", err.Error()) res := s.createErrorResponse(req, err) return res.GenerateJSON() } stCh := make(chan string, 1) go s.waitAndSendStartTime(stCh) defer close(stCh) res := s.doJobRequest(req, conf, stCh) return res.GenerateJSON() }
func testSendRequest_Abnormal(host string, port int, reqMsg string, stCh chan<- string) (string, error) { req := new(message.Request) req.ParseJSON("reqMsg") res := new(message.Response) res.NID = req.NID res.JID = req.JID res.RC = 1 res.Stat = 9 res.Detail = "testerror" res.Var = "testvar" res.St = "2015-04-01 12:34:56.789" res.Et = "2015-04-01 12:35:46.123" resMsg, _ := res.GenerateJSON() return resMsg, nil }
// セッションに対応した処理を実行する。 // 引数:conf 設定情報 // 戻り値:なし func (s *Session) Do(conf *config.ServantConfig) error { defer s.Conn.Close() defer s.endHeartbeat() var msg string req := new(message.Request) if err := req.ParseJSON(s.Body); err != nil { chk := new(message.JobCheck) if err := chk.ParseJSON(s.Body); err != nil { console.Display("CTS015E", err.Error()) return err } resultMsg, err := s.doJobCheck(chk, conf) if err != nil { log.Error(err) return err } msg = resultMsg } else { resMsg, err := s.doRequest(req, conf) if err != nil { log.Error(err) return err } msg = resMsg } if _, err := s.Conn.Write([]byte(msg + MsgEnd)); err != nil { log.Error(err) return err } return nil }