in mysql/mysql.go [110:143]
func (m MySQL) Retrieve(date time.Time) (sched *schedule.Schedule, err error) {
rows, err := m.db.Query("SELECT time, app, account, region, stack, cluster FROM schedules WHERE date = DATE(?)", utcDate(date))
if err != nil {
return nil, errors.Wrapf(err, "failed to retrieve schedule for %s", date)
}
sched = schedule.New()
defer func() {
if cerr := rows.Close(); cerr != nil && err == nil {
err = errors.Wrap(cerr, "rows.Close() failed")
}
}()
for rows.Next() {
var tm time.Time
var app, account, region, stack, cluster string
err = rows.Scan(&tm, &app, &account, ®ion, &stack, &cluster)
if err != nil {
return nil, errors.Wrap(err, "failed to scan row")
}
sched.Add(tm, grp.New(app, account, region, stack, cluster))
}
err = rows.Err()
if err != nil {
return nil, errors.Wrap(err, "rows.Err() errored")
}
return sched, nil
}