Chromium Code Reviews| Index: common/api/dm/service/v1/graph_data_purge_timestamps.go |
| diff --git a/common/api/dm/service/v1/graph_data_purge_timestamps.go b/common/api/dm/service/v1/graph_data_purge_timestamps.go |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..888ed37162ed3465787b986d4c19b9b84e02d426 |
| --- /dev/null |
| +++ b/common/api/dm/service/v1/graph_data_purge_timestamps.go |
| @@ -0,0 +1,90 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package dm |
| + |
| +// TimestampPurger is for testing: invoking this on a struct in this package |
|
dnj (Google)
2016/06/09 18:00:57
I assume you have a good reason for this, so just
iannucci
2016/06/15 00:46:02
There's so much parallelism going on that it's not
|
| +// will remove all timestamps from it. This is useful for testing where the |
| +// timestamps are frequently just noise. |
| +type TimestampPurger interface { |
| + PurgeTimestamps() |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (g *GraphData) PurgeTimestamps() { |
| + if g == nil { |
| + return |
| + } |
| + for _, q := range g.Quests { |
| + q.PurgeTimestamps() |
| + } |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (q *Quest) PurgeTimestamps() { |
| + if q == nil { |
| + return |
| + } |
| + q.Data.PurgeTimestamps() |
| + for _, a := range q.Attempts { |
| + a.PurgeTimestamps() |
| + } |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (qd *Quest_Data) PurgeTimestamps() { |
| + if qd == nil { |
| + return |
| + } |
| + qd.Created = nil |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (a *Attempt) PurgeTimestamps() { |
| + if a == nil { |
| + return |
| + } |
| + a.Data.PurgeTimestamps() |
| + |
| + for _, e := range a.Executions { |
| + e.PurgeTimestamps() |
| + } |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (ad *Attempt_Data) PurgeTimestamps() { |
| + if ad == nil { |
| + return |
| + } |
| + ad.Created = nil |
| + ad.Modified = nil |
| + if p, _ := ad.AttemptType.(TimestampPurger); p != nil { |
| + p.PurgeTimestamps() |
| + } |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (f *Attempt_Data_Finished_) PurgeTimestamps() { |
| + if f == nil || f.Finished == nil { |
| + return |
| + } |
| + f.Finished.Expiration = nil |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (e *Execution) PurgeTimestamps() { |
| + if e == nil { |
| + return |
| + } |
| + e.Data.PurgeTimestamps() |
| +} |
| + |
| +// PurgeTimestamps implements TimestampPurger. |
| +func (ed *Execution_Data) PurgeTimestamps() { |
| + if ed == nil { |
| + return |
| + } |
| + ed.Created = nil |
| + ed.Modified = nil |
| +} |