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

Commit c50de57

Browse files
author
Noah Hanjun Lee
authored
Fix to handle time UTC (#171)
1 parent 97c2f86 commit c50de57

18 files changed

+58
-71
lines changed

ent/schema/approval.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/dialect/entsql"
86
"entgo.io/ent/schema/edge"
@@ -26,10 +24,10 @@ func (Approval) Fields() []ent.Field {
2624
).
2725
Default("pending"),
2826
field.Time("created_at").
29-
Default(time.Now),
27+
Default(nowUTC),
3028
field.Time("updated_at").
31-
Default(time.Now).
32-
UpdateDefault(time.Now),
29+
Default(nowUTC).
30+
UpdateDefault(nowUTC),
3331
// Edges
3432
field.Int64("user_id"),
3533
field.Int("deployment_id"),

ent/schema/callback.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -29,10 +27,10 @@ func (Callback) Fields() []ent.Field {
2927
"unlock",
3028
),
3129
field.Time("created_at").
32-
Default(time.Now),
30+
Default(nowUTC),
3331
field.Time("updated_at").
34-
Default(time.Now).
35-
UpdateDefault(time.Now),
32+
Default(nowUTC).
33+
UpdateDefault(nowUTC),
3634
field.Int64("repo_id"),
3735
}
3836
}

ent/schema/chatuser.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -25,10 +23,10 @@ func (ChatUser) Fields() []ent.Field {
2523
field.String("bot_token").
2624
Sensitive(),
2725
field.Time("created_at").
28-
Default(time.Now),
26+
Default(nowUTC),
2927
field.Time("updated_at").
30-
Default(time.Now).
31-
UpdateDefault(time.Now),
28+
Default(nowUTC).
29+
UpdateDefault(nowUTC),
3230
field.Int64("user_id"),
3331
}
3432
}

ent/schema/deployment.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/dialect/entsql"
86
"entgo.io/ent/schema/edge"
@@ -56,10 +54,10 @@ func (Deployment) Fields() []ent.Field {
5654
field.Int("required_approval_count").
5755
Default(0),
5856
field.Time("created_at").
59-
Default(time.Now),
57+
Default(nowUTC),
6058
field.Time("updated_at").
61-
Default(time.Now).
62-
UpdateDefault(time.Now),
59+
Default(nowUTC).
60+
UpdateDefault(nowUTC),
6361
// Edges
6462
field.Int64("user_id"),
6563
field.Int64("repo_id"),

ent/schema/deploymentstatistics.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -31,10 +29,10 @@ func (DeploymentStatistics) Fields() []ent.Field {
3129
field.Int("lead_time_seconds").
3230
Default(0),
3331
field.Time("created_at").
34-
Default(time.Now),
32+
Default(nowUTC),
3533
field.Time("updated_at").
36-
Default(time.Now).
37-
UpdateDefault(time.Now),
34+
Default(nowUTC).
35+
UpdateDefault(nowUTC),
3836
field.Int64("repo_id"),
3937
}
4038
}

ent/schema/deploymentstatus.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -22,10 +20,10 @@ func (DeploymentStatus) Fields() []ent.Field {
2220
field.String("log_url").
2321
Optional(),
2422
field.Time("created_at").
25-
Default(time.Now),
23+
Default(nowUTC),
2624
field.Time("updated_at").
27-
Default(time.Now).
28-
UpdateDefault(time.Now),
25+
Default(nowUTC).
26+
UpdateDefault(nowUTC),
2927

3028
// edges
3129
field.Int("deployment_id"),

ent/schema/event.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -29,7 +27,7 @@ func (Event) Fields() []ent.Field {
2927
"deleted",
3028
),
3129
field.Time("created_at").
32-
Default(time.Now),
30+
Default(nowUTC),
3331
field.Int("deployment_id").
3432
Optional(),
3533
field.Int("approval_id").

ent/schema/lock.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/schema/edge"
86
"entgo.io/ent/schema/field"
@@ -22,7 +20,7 @@ func (Lock) Fields() []ent.Field {
2220
Optional().
2321
Nillable(),
2422
field.Time("created_at").
25-
Default(time.Now),
23+
Default(nowUTC),
2624
// Edges
2725
field.Int64("user_id"),
2826
field.Int64("repo_id"),

ent/schema/perm.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/dialect"
86
"entgo.io/ent/schema/edge"
@@ -31,10 +29,10 @@ func (Perm) Fields() []ent.Field {
3129
dialect.MySQL: "timestamp(6)",
3230
}),
3331
field.Time("created_at").
34-
Default(time.Now),
32+
Default(nowUTC),
3533
field.Time("updated_at").
36-
Default(time.Now).
37-
UpdateDefault(time.Now),
34+
Default(nowUTC).
35+
UpdateDefault(nowUTC),
3836
// Edges
3937
field.Int64("user_id"),
4038
field.Int64("repo_id"),

ent/schema/repo.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package schema
22

33
import (
4-
"time"
5-
64
"entgo.io/ent"
75
"entgo.io/ent/dialect/entsql"
86
"entgo.io/ent/schema/edge"
@@ -30,10 +28,10 @@ func (Repo) Fields() []ent.Field {
3028
field.Int64("webhook_id").
3129
Optional(),
3230
field.Time("created_at").
33-
Default(time.Now),
31+
Default(nowUTC),
3432
field.Time("updated_at").
35-
Default(time.Now).
36-
UpdateDefault(time.Now),
33+
Default(nowUTC).
34+
UpdateDefault(nowUTC),
3735
// Denormalization to sort with deployment.
3836
field.Time("latest_deployed_at").
3937
Optional(),

ent/schema/shared.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package schema
2+
3+
import (
4+
"math/rand"
5+
"time"
6+
)
7+
8+
func generateHash() string {
9+
rand.Seed(time.Now().UnixNano())
10+
11+
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
12+
b := make([]rune, 32)
13+
for i := range b {
14+
b[i] = letterRunes[rand.Intn(len(letterRunes))]
15+
}
16+
return string(b)
17+
}
18+
19+
func nowUTC() time.Time {
20+
return time.Now().UTC()
21+
}

ent/schema/user.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package schema
22

33
import (
4-
"math/rand"
5-
"time"
6-
74
"entgo.io/ent"
85
"entgo.io/ent/dialect/entsql"
96
"entgo.io/ent/schema/edge"
@@ -35,10 +32,10 @@ func (User) Fields() []ent.Field {
3532
DefaultFunc(generateHash).
3633
Sensitive(),
3734
field.Time("created_at").
38-
Default(time.Now),
35+
Default(nowUTC),
3936
field.Time("updated_at").
40-
Default(time.Now).
41-
UpdateDefault(time.Now),
37+
Default(nowUTC).
38+
UpdateDefault(nowUTC),
4239
}
4340
}
4441

@@ -59,14 +56,3 @@ func (User) Edges() []ent.Edge {
5956
edge.To("locks", Lock.Type),
6057
}
6158
}
62-
63-
func generateHash() string {
64-
rand.Seed(time.Now().UnixNano())
65-
66-
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
67-
b := make([]rune, 32)
68-
for i := range b {
69-
b[i] = letterRunes[rand.Intn(len(letterRunes))]
70-
}
71-
return string(b)
72-
}

internal/interactor/deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ L:
110110
break L
111111
}
112112
case t := <-ticker.C:
113-
ds, err := i.ListInactiveDeploymentsLessThanTime(ctx, t.Add(-30*time.Minute), 1, 30)
113+
ds, err := i.ListInactiveDeploymentsLessThanTime(ctx, t.Add(-30*time.Minute).UTC(), 1, 30)
114114
if err != nil {
115115
i.log.Error("It has failed to read inactive deployments.", zap.Error(err))
116116
continue

internal/interactor/event.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ L:
2929
}
3030

3131
case t := <-ticker.C:
32-
es, err := i.ListEventsGreaterThanTime(ctx, t.Add(-period))
32+
es, err := i.ListEventsGreaterThanTime(ctx, t.Add(-period).UTC())
3333
if err != nil {
3434
i.log.Error("It has failed to read events.", zap.Error(err))
3535
continue

internal/interactor/lock.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ L:
2020
break L
2121
}
2222
case t := <-ticker.C:
23-
ls, err := i.ListExpiredLocksLessThanTime(ctx, t)
23+
ls, err := i.ListExpiredLocksLessThanTime(ctx, t.UTC())
2424
if err != nil {
2525
i.log.Error("It has failed to read expired locks.", zap.Error(err))
2626
continue
2727
}
2828

2929
for _, l := range ls {
3030
i.DeleteLock(ctx, l)
31-
i.log.Debug("Delete the expired lock.", zap.Int("id", l.ID))
31+
i.log.Debug("Delete the expired lock.", zap.Int("id", l.ID), zap.Time("time", t))
3232
}
3333
}
3434
}

internal/server/api/v1/search/search.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func (s *Search) SearchDeployments(c *gin.Context) {
9595
v, _ := c.Get(gb.KeyUser)
9696
u := v.(*ent.User)
9797

98-
if ds, err = s.i.SearchDeployments(ctx, u, ss, o, f, t, p, pp); err != nil {
98+
if ds, err = s.i.SearchDeployments(ctx, u, ss, o, f.UTC(), t.UTC(), p, pp); err != nil {
9999
s.log.Error("It has failed to search deployments.", zap.Error(err))
100100
gb.ErrorResponse(c, http.StatusInternalServerError, "It has failed to search deployments.")
101101
return
@@ -159,7 +159,7 @@ func (s *Search) SearchApprovals(c *gin.Context) {
159159
v, _ := c.Get(gb.KeyUser)
160160
u := v.(*ent.User)
161161

162-
if ds, err = s.i.SearchApprovals(ctx, u, ss, f, t, p, pp); err != nil {
162+
if ds, err = s.i.SearchApprovals(ctx, u, ss, f.UTC(), t.UTC(), p, pp); err != nil {
163163
s.log.Error("It has failed to search deployments.", zap.Error(err))
164164
gb.ErrorResponse(c, http.StatusInternalServerError, "It has failed to search deployments.")
165165
return

internal/server/api/v1/sync/syncher.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func (s *Syncher) Sync(c *gin.Context) {
4343
return
4444
}
4545

46-
syncTime := time.Now()
46+
syncTime := time.Now().UTC()
4747
syncCnt := 0
4848
for _, re := range remotes {
4949
// Skip un-selected repositories.

internal/server/metrics/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (c *collector) Collect(ch chan<- prometheus.Metric) {
8585
err error
8686
)
8787

88-
start := time.Now()
88+
start := time.Now().UTC()
8989
defer func() {
9090
c.lastTime = start
9191
}()

0 commit comments

Comments
 (0)