func parseJob()

in tools/mig-scaler/client.go [151:182]


func parseJob(e *execpb.Execution) (*Job, error) {
	var payload JobPayload
	err := json.Unmarshal([]byte(e.Argument), &payload)
	if err != nil {
		return nil, err
	}

	mig := MIGRef{
		Project: payload.Project,
		Region:  payload.Region,
		Zone:    payload.Zone,
		Name:    payload.Name,
	}
	job := &Job{
		ID:         parseJobID(e.Name),
		State:      e.State,
		MIG:        mig.Normalize(),
		TargetSize: payload.TargetSize,
		Increment:  payload.Increment,
		Wait:       time.Duration(payload.Wait) * time.Second,
		Deadline:   payload.Deadline,
	}

	if e.StartTime != nil {
		job.StartTime = e.StartTime.AsTime()
	}
	if e.EndTime != nil {
		job.EndTime = e.EndTime.AsTime()
	}

	return job, nil
}