Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Unified Diff: milo/buildsource/buildbucket/builder.go

Issue 2977863002: [milo] Refactor all html knowledge out of backends. (Closed)
Patch Set: now with case insensitivity Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « milo/buildsource/buildbot/master.go ('k') | milo/buildsource/buildbucket/builder_test.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: milo/buildsource/buildbucket/builder.go
diff --git a/milo/buildsource/buildbucket/builder.go b/milo/buildsource/buildbucket/builder.go
index 4bbfee914bfd96f5e03a0c997fc77b544d0aee40..fc9e5f2911615d2eb81b5b7b14eed34c3a788485 100644
--- a/milo/buildsource/buildbucket/builder.go
+++ b/milo/buildsource/buildbucket/builder.go
@@ -231,15 +231,24 @@ func getDebugBuilds(c context.Context, bucket, builder string, maxCompletedBuild
return nil
}
-type builderQuery struct {
- Bucket string
- Builder string
- Limit int
+// parseTimestamp converts buildbucket timestamp in microseconds to time.Time
+func parseTimestamp(microseconds int64) time.Time {
+ if microseconds == 0 {
+ return time.Time{}
+ }
+ return time.Unix(microseconds/1e6, microseconds%1e6*1000).UTC()
}
-// builderImpl is the implementation for getting a milo builder page from buildbucket.
-// if maxCompletedBuilds < 0, 25 is used.
-func builderImpl(c context.Context, q builderQuery) (*resp.Builder, error) {
+type newBuildsFirst []*resp.BuildSummary
+
+func (a newBuildsFirst) Len() int { return len(a) }
+func (a newBuildsFirst) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
+func (a newBuildsFirst) Less(i, j int) bool {
+ return a[i].PendingTime.Started.After(a[j].PendingTime.Started)
+}
+
+// GetBuilder is used by buildsource.BuilderID.Get to obtain the resp.Builder.
+func GetBuilder(c context.Context, bucket, builder string, limit int) (*resp.Builder, error) {
settings := common.GetSettings(c)
if settings.Buildbucket == nil || settings.Buildbucket.Host == "" {
logging.Errorf(c, "missing buildbucket settings")
@@ -247,15 +256,15 @@ func builderImpl(c context.Context, q builderQuery) (*resp.Builder, error) {
}
host := settings.Buildbucket.Host
- if q.Limit < 0 {
- q.Limit = 20
+ if limit < 0 {
+ limit = 20
}
result := &resp.Builder{
- Name: q.Builder,
+ Name: builder,
}
if host == "debug" {
- return result, getDebugBuilds(c, q.Bucket, q.Builder, q.Limit, result)
+ return result, getDebugBuilds(c, bucket, builder, limit, result)
}
client, err := newBuildbucketClient(c, host)
if err != nil {
@@ -263,7 +272,7 @@ func builderImpl(c context.Context, q builderQuery) (*resp.Builder, error) {
}
fetch := func(target *[]*resp.BuildSummary, status string, count int) error {
- builds, err := fetchBuilds(c, client, q.Bucket, q.Builder, status, count)
+ builds, err := fetchBuilds(c, client, bucket, builder, status, count)
if err != nil {
logging.Errorf(c, "Could not fetch builds with status %s: %s", status, err)
return err
@@ -285,23 +294,7 @@ func builderImpl(c context.Context, q builderQuery) (*resp.Builder, error) {
return fetch(&result.CurrentBuilds, StatusStarted, -1)
}
work <- func() error {
- return fetch(&result.FinishedBuilds, StatusCompleted, q.Limit)
+ return fetch(&result.FinishedBuilds, StatusCompleted, limit)
}
})
}
-
-// parseTimestamp converts buildbucket timestamp in microseconds to time.Time
-func parseTimestamp(microseconds int64) time.Time {
- if microseconds == 0 {
- return time.Time{}
- }
- return time.Unix(microseconds/1e6, microseconds%1e6*1000).UTC()
-}
-
-type newBuildsFirst []*resp.BuildSummary
-
-func (a newBuildsFirst) Len() int { return len(a) }
-func (a newBuildsFirst) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
-func (a newBuildsFirst) Less(i, j int) bool {
- return a[i].PendingTime.Started.After(a[j].PendingTime.Started)
-}
« no previous file with comments | « milo/buildsource/buildbot/master.go ('k') | milo/buildsource/buildbucket/builder_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698