コード例 #1
0
ファイル: session.go プロジェクト: unikk/cuto
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()
}
コード例 #2
0
ファイル: job_test.go プロジェクト: unikk/cuto
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
}
コード例 #3
0
ファイル: session.go プロジェクト: unikk/cuto
// セッションに対応した処理を実行する。
// 引数: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
}