chore: 并入 iotlcm-worker-svr 历史到 worker-svr/(原提交 96f0f4e)
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package supply
|
||||
|
||||
// Valid checks only telemetry. Callers must degrade invalid observations without
|
||||
// rejecting the business run or its archive.
|
||||
func (s Snapshot) Valid() bool {
|
||||
if s.SchemaVersion != 1 || s.ResolutionMS != 1000 || s.Summary.Targets < 0 || s.Summary.Valid < 0 || s.Summary.Valid > s.Summary.Targets || s.Summary.Confirmed < 0 || s.Summary.Confirmed > s.Summary.Targets || s.Summary.Unknown < 0 || s.Summary.Unknown > s.Summary.Targets || s.Summary.TotalMS < 0 || s.Summary.LongestMS < 0 || s.Summary.UnknownMS < 0 || s.Summary.UnconfirmedMS < 0 || s.Summary.ConsumerMS < 0 {
|
||||
return false
|
||||
}
|
||||
seen := make(map[string]bool, len(s.Channels))
|
||||
for _, c := range s.Channels {
|
||||
if c.Key == "" || seen[c.Key] || c.ValidSamples < 0 || c.MissingSamples < 0 || c.UnknownMS < 0 {
|
||||
return false
|
||||
}
|
||||
seen[c.Key] = true
|
||||
for _, w := range []Wait{c.Startup, c.Confirmed, c.Unconfirmed, c.Consumer} {
|
||||
if w.Count < 0 || w.TotalMS < 0 || w.LongestMS < 0 || w.LongestMS > w.TotalMS {
|
||||
return false
|
||||
}
|
||||
}
|
||||
for _, v := range c.Stages {
|
||||
if v < 0 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return len(s.Channels) <= s.Summary.Targets
|
||||
}
|
||||
Reference in New Issue
Block a user