github.com/hy3/cuto@v0.9.8-0.20160830082821-aa6652f877b7/message/jobresult.go (about)

     1  package message
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  )
     7  
     8  type JobResult struct {
     9  	Type    string `json:"type"`
    10  	Version string `json:"version"`
    11  	NID     int    `json:"nid"`
    12  	JID     string `json:"jid"`
    13  	RC      int    `json:"rc"`
    14  	Stat    int    `json:"stat"`
    15  	Var     string `json:"var"`
    16  	St      string `json:"st"`
    17  	Et      string `json:"et"`
    18  }
    19  
    20  const jobResultMessageType = "jobresult"
    21  
    22  // ジョブ正常終了確認JSONメッセージをパースし、JobCheckオブジェクトのメンバをセットする。
    23  //
    24  // param : message 受信メッセージ文字列
    25  func (j *JobResult) ParseJSON(message string) error {
    26  	byteMessage := []byte(message)
    27  	err := json.Unmarshal(byteMessage, j)
    28  	if err != nil {
    29  		return err
    30  	}
    31  	if j.Type != jobResultMessageType {
    32  		return fmt.Errorf("Invalid message type.")
    33  	}
    34  	return nil
    35  }
    36  
    37  // JobCheckオブジェクトの値を元に、ジョブ正常終了確認JSONメッセージを生成する
    38  //
    39  // return : JSONメッセージフォーマットの文字列。
    40  func (j JobResult) GenerateJSON() (string, error) {
    41  	j.Type = jobResultMessageType
    42  	j.Version = ServantVersion
    43  	byteMessage, err := json.Marshal(j)
    44  	if err != nil {
    45  		return ``, err
    46  	}
    47  	return string(byteMessage), nil
    48  }