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

Commit 6a8b9a4

Browse files
committed
fix(eventrecorder): relax timing requirement
allow 24 hour grace period to deal with the weird idiosyncracies of time
1 parent 33b9bad commit 6a8b9a4

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

eventrecorder/event.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,30 @@ func (e Event) Validate() error {
6262
return errInvalidPhase
6363
case e.PhaseStartTime.IsZero():
6464
return errors.New("property phaseStartTime is required")
65-
case e.PhaseStartTime.After(time.Now()):
65+
case e.PhaseStartTime.After(time.Now().Add(24 * time.Hour)):
6666
return errors.New("property phaseStartTime cannot be in the future")
6767
case e.EventName == "":
6868
return errors.New("property eventName is required")
6969
case !validEventCode(e.EventName):
7070
return errInvalidEventCode
7171
case e.EventTime.IsZero():
7272
return errors.New("property eventTime is required")
73-
case e.EventTime.After(time.Now()):
73+
case e.EventTime.After(time.Now().Add(24 * time.Hour)):
7474
return errors.New("property eventTime cannot be in the future")
7575
default:
7676
_, err := cid.Decode(e.Cid)
7777
if err != nil {
7878
return fmt.Errorf("cid must be valid: %w", err)
7979
}
80+
// a few non rejecting weird cases we want to write a log about to monitor
81+
switch {
82+
case e.PhaseStartTime.After(time.Now()):
83+
logger.Warnf("phaseStartTime (%s) ahead of current time (%s) for event %s, source %s",
84+
e.PhaseStartTime, time.Now(), e.EventName, e.InstanceId)
85+
case e.EventTime.After(time.Now()):
86+
logger.Warnf("eventTime (%s) ahead of current time (%s) for event %s, source %s",
87+
e.EventTime, time.Now(), e.EventName, e.InstanceId)
88+
}
8089
return nil
8190
}
8291
}

0 commit comments

Comments
 (0)