Skip to content
This repository has been archived by the owner on Mar 15, 2024. It is now read-only.

Relax timing requirement #33

Merged
merged 1 commit into from
Mar 30, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions eventrecorder/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,30 @@ func (e Event) Validate() error {
return errInvalidPhase
case e.PhaseStartTime.IsZero():
return errors.New("property phaseStartTime is required")
case e.PhaseStartTime.After(time.Now()):
case e.PhaseStartTime.After(time.Now().Add(24 * time.Hour)):
return errors.New("property phaseStartTime cannot be in the future")
case e.EventName == "":
return errors.New("property eventName is required")
case !validEventCode(e.EventName):
return errInvalidEventCode
case e.EventTime.IsZero():
return errors.New("property eventTime is required")
case e.EventTime.After(time.Now()):
case e.EventTime.After(time.Now().Add(24 * time.Hour)):
return errors.New("property eventTime cannot be in the future")
default:
_, err := cid.Decode(e.Cid)
if err != nil {
return fmt.Errorf("cid must be valid: %w", err)
}
// a few non rejecting weird cases we want to write a log about to monitor
switch {
case e.PhaseStartTime.After(time.Now()):
logger.Warnf("phaseStartTime (%s) ahead of current time (%s) for event %s, source %s",
e.PhaseStartTime, time.Now(), e.EventName, e.InstanceId)
case e.EventTime.After(time.Now()):
logger.Warnf("eventTime (%s) ahead of current time (%s) for event %s, source %s",
e.EventTime, time.Now(), e.EventName, e.InstanceId)
}
return nil
}
}
Expand Down