func parseJobDocument()

in awsiotjobs/mender/mender.go [164:182]


func parseJobDocument(jobExecution awsiotjobs.JobExecutioner) (Job, error) {
	jobDocument, _ := json.Marshal(jobExecution.GetJobDocument())
	job := Job{execution: jobExecution}
	json.Unmarshal(jobDocument, &job)
	switch job.Operation {
	case "mender_install":
		if len(job.URL) == 0 {
			return job, awsiotjobs.JobError{ErrCode: "ERR_MENDER_MISSING_URL", ErrMessage: "missing url parameter"}
		}
	case "mender_rollback":
	default:
		return job, awsiotjobs.JobError{ErrCode: "ERR_JOB_INVALID_OPERATION", ErrMessage: "unrecognized or missing operation"}
	}
	var menderState State
	statusDetails, _ := json.Marshal(jobExecution.GetStatusDetails())
	json.Unmarshal(statusDetails, &menderState)
	job.menderState = menderState
	return job, nil
}