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

Side by Side Diff: client/internal/logdog/butler/bundler/bundler.go

Issue 1970823005: LogDog: Add prefix registration endpoint. (Closed) Base URL: https://github.com/luci/luci-go@logdog-project-archivist-useconfig
Patch Set: Updated patchset dependency Created 4 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package bundler 5 package bundler
6 6
7 import ( 7 import (
8 "container/heap" 8 "container/heap"
9 "fmt" 9 "fmt"
10 "sync" 10 "sync"
11 "time" 11 "time"
12 12
13 "github.com/luci/luci-go/client/logdog/butlerlib/streamproto" 13 "github.com/luci/luci-go/client/logdog/butlerlib/streamproto"
14 "github.com/luci/luci-go/common/cancelcond" 14 "github.com/luci/luci-go/common/cancelcond"
15 "github.com/luci/luci-go/common/clock" 15 "github.com/luci/luci-go/common/clock"
16 "github.com/luci/luci-go/common/config" 16 "github.com/luci/luci-go/common/config"
17 "github.com/luci/luci-go/common/logdog/types" 17 "github.com/luci/luci-go/common/logdog/types"
18 "github.com/luci/luci-go/common/proto/google" 18 "github.com/luci/luci-go/common/proto/google"
19 "github.com/luci/luci-go/common/proto/logdog/logpb" 19 "github.com/luci/luci-go/common/proto/logdog/logpb"
20 "golang.org/x/net/context" 20 "golang.org/x/net/context"
21 ) 21 )
22 22
23 // Config is the Bundler configuration. 23 // Config is the Bundler configuration.
24 type Config struct { 24 type Config struct {
25 // Clock is the clock instance that will be used for Bundler and stream 25 // Clock is the clock instance that will be used for Bundler and stream
26 // timing. 26 // timing.
27 Clock clock.Clock 27 Clock clock.Clock
28 28
29 // Source is the bundle source string to use. This can be empty if there is no
30 // source information to include.
31 Source string
32
33 // Project is the project to use. 29 // Project is the project to use.
34 Project config.ProjectName 30 Project config.ProjectName
35 // Prefix is the common prefix for this set of streams. 31 // Prefix is the common prefix for this set of streams.
36 Prefix types.StreamName 32 Prefix types.StreamName
37 // Secret is the prefix secret for this set of streams. 33 // Secret is the prefix secret for this set of streams.
38 Secret []byte 34 Secret []byte
39 35
40 // MaxBufferedBytes is the maximum number of bytes to buffer in memory p er 36 // MaxBufferedBytes is the maximum number of bytes to buffer in memory p er
41 // stream. 37 // stream.
42 MaxBufferedBytes int64 38 MaxBufferedBytes int64
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 defer func() { 182 defer func() {
187 if bb != nil && bb.hasContent() { 183 if bb != nil && bb.hasContent() {
188 b.bundleC <- bb.bundle() 184 b.bundleC <- bb.bundle()
189 } 185 }
190 }() 186 }()
191 187
192 for { 188 for {
193 bb = &builder{ 189 bb = &builder{
194 size: b.c.MaxBundleSize, 190 size: b.c.MaxBundleSize,
195 template: logpb.ButlerLogBundle{ 191 template: logpb.ButlerLogBundle{
196 Source: b.c.Source,
197 Timestamp: google.NewTimestamp(b.getClock().Now( )), 192 Timestamp: google.NewTimestamp(b.getClock().Now( )),
198 Project: string(b.c.Project), 193 Project: string(b.c.Project),
199 Prefix: string(b.c.Prefix), 194 Prefix: string(b.c.Prefix),
200 Secret: b.c.Secret, 195 Secret: b.c.Secret,
201 }, 196 },
202 } 197 }
203 var oldestContentTime time.Time 198 var oldestContentTime time.Time
204 199
205 for { 200 for {
206 state := b.getStreamStateLocked() 201 state := b.getStreamStateLocked()
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 493
499 func (s *streamState) Push(x interface{}) { 494 func (s *streamState) Push(x interface{}) {
500 s.streams = append(s.streams, x.(bundlerStream)) 495 s.streams = append(s.streams, x.(bundlerStream))
501 } 496 }
502 497
503 func (s *streamState) Pop() interface{} { 498 func (s *streamState) Pop() interface{} {
504 last := s.streams[len(s.streams)-1] 499 last := s.streams[len(s.streams)-1]
505 s.streams = s.streams[:len(s.streams)-1] 500 s.streams = s.streams[:len(s.streams)-1]
506 return last 501 return last
507 } 502 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698