Chromium Code Reviews| Index: milo/appengine/swarming/buildinfo.go |
| diff --git a/milo/appengine/swarming/buildinfo.go b/milo/appengine/swarming/buildinfo.go |
| index ac4334297566716e51a3f769277de7c1502f1a4e..8654daa9f436eb5b099bc8f60b41e16f7738492a 100644 |
| --- a/milo/appengine/swarming/buildinfo.go |
| +++ b/milo/appengine/swarming/buildinfo.go |
| @@ -9,6 +9,7 @@ import ( |
| "strings" |
| "unicode/utf8" |
| + "github.com/luci/luci-go/buildbucket/swarmbucket/tasktemplate" |
| swarming "github.com/luci/luci-go/common/api/swarming/swarming/v1" |
| "github.com/luci/luci-go/common/errors" |
| "github.com/luci/luci-go/common/logging" |
| @@ -131,7 +132,7 @@ func resolveLogDogAnnotations(c context.Context, sr *swarming.SwarmingRpcsTaskRe |
| // Try and resolve from explicit tags (preferred). |
| tags := swarmingTags(sr.Tags) |
| - addr, err := resolveLogDogStreamAddrFromTags(tags) |
| + addr, err := resolveLogDogStreamAddrFromTags(tags, taskID, tryNumber) |
| if err == nil { |
| return addr, nil |
| } |
| @@ -207,7 +208,7 @@ func getLogDogProjectFromKitchen(cmd []string) (proj cfgtypes.ProjectName, isKit |
| return |
| } |
| -func resolveLogDogStreamAddrFromTags(tags map[string]string) (*types.StreamAddr, error) { |
| +func resolveLogDogStreamAddrFromTags(tags map[string]string, taskID string, tryNumber int64) (*types.StreamAddr, error) { |
| // If we don't have a LUCI project, abort. |
| luciProject, logLocation := tags["luci_project"], tags["log_location"] |
| switch { |
| @@ -217,6 +218,18 @@ func resolveLogDogStreamAddrFromTags(tags map[string]string) (*types.StreamAddr, |
| return nil, errors.New("no 'log_location' tag") |
| } |
| + // Gather our SwarmBucket template parameters and perform a substitution. |
|
nodir
2017/02/18 15:40:31
it is rather swarmbucket template parameters
dnj
2017/02/18 18:52:31
yeah sorry was just coming up with a name. going w
|
| + runID, err := getRunID(taskID, tryNumber) |
| + if err != nil { |
| + return nil, errors.Annotate(err).Err() |
| + } |
| + p := tasktemplate.Params{ |
| + SwarmingRunID: runID, |
| + } |
| + if logLocation, err = p.Resolve(logLocation); err != nil { |
| + return nil, errors.Annotate(err).Reason("failed to resolve SwarmBucket templating in 'log_location'").Err() |
|
nodir
2017/02/18 15:40:32
here too
dnj
2017/02/18 18:52:31
Done.
|
| + } |
| + |
| addr, err := types.ParseURL(logLocation) |
| if err != nil { |
| return nil, errors.Annotate(err).Reason("could not parse LogDog stream from location").Err() |