| OLD | NEW |
| 1 // Copyright 2017 The LUCI Authors. | 1 // Copyright 2017 The LUCI Authors. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 "github.com/luci/luci-go/common/data/stringset" | 23 "github.com/luci/luci-go/common/data/stringset" |
| 24 "github.com/luci/luci-go/common/logging" | 24 "github.com/luci/luci-go/common/logging" |
| 25 miloProto "github.com/luci/luci-go/common/proto/milo" | 25 miloProto "github.com/luci/luci-go/common/proto/milo" |
| 26 "github.com/luci/luci-go/grpc/grpcutil" | 26 "github.com/luci/luci-go/grpc/grpcutil" |
| 27 "github.com/luci/luci-go/logdog/client/coordinator" | 27 "github.com/luci/luci-go/logdog/client/coordinator" |
| 28 "github.com/luci/luci-go/logdog/common/types" | 28 "github.com/luci/luci-go/logdog/common/types" |
| 29 "github.com/luci/luci-go/luci_config/common/cfgtypes" | 29 "github.com/luci/luci-go/luci_config/common/cfgtypes" |
| 30 milo "github.com/luci/luci-go/milo/api/proto" | 30 milo "github.com/luci/luci-go/milo/api/proto" |
| 31 "github.com/luci/luci-go/milo/buildsource/rawpresentation" | 31 "github.com/luci/luci-go/milo/buildsource/rawpresentation" |
| 32 "github.com/luci/luci-go/milo/common" |
| 32 | 33 |
| 33 "google.golang.org/grpc/codes" | 34 "google.golang.org/grpc/codes" |
| 34 | 35 |
| 35 "golang.org/x/net/context" | 36 "golang.org/x/net/context" |
| 36 ) | 37 ) |
| 37 | 38 |
| 38 // BuildInfoProvider is a configuration that provides build information. | 39 // BuildInfoProvider is a configuration that provides build information. |
| 39 // | 40 // |
| 40 // In a production system, this will be completely defaults. For testing, the | 41 // In a production system, this will be completely defaults. For testing, the |
| 41 // various services and data sources may be substituted for testing stubs. | 42 // various services and data sources may be substituted for testing stubs. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 65 // 3) Fetches the LogDog annotation stream and resolves it into a Step. | 66 // 3) Fetches the LogDog annotation stream and resolves it into a Step. |
| 66 // 4) Merges some operational BuildBot build information into the Step. | 67 // 4) Merges some operational BuildBot build information into the Step. |
| 67 func (p *BuildInfoProvider) GetBuildInfo(c context.Context, req *milo.BuildInfoR
equest_BuildBot, | 68 func (p *BuildInfoProvider) GetBuildInfo(c context.Context, req *milo.BuildInfoR
equest_BuildBot, |
| 68 projectHint cfgtypes.ProjectName) (*milo.BuildInfoResponse, error) { | 69 projectHint cfgtypes.ProjectName) (*milo.BuildInfoResponse, error) { |
| 69 | 70 |
| 70 logging.Infof(c, "Loading build info for master %q, builder %q, build #%
d", | 71 logging.Infof(c, "Loading build info for master %q, builder %q, build #%
d", |
| 71 req.MasterName, req.BuilderName, req.BuildNumber) | 72 req.MasterName, req.BuilderName, req.BuildNumber) |
| 72 | 73 |
| 73 // Load the BuildBot build from datastore. | 74 // Load the BuildBot build from datastore. |
| 74 build, err := getBuild(c, req.MasterName, req.BuilderName, int(req.Build
Number)) | 75 build, err := getBuild(c, req.MasterName, req.BuilderName, int(req.Build
Number)) |
| 75 » switch err { | 76 » if err != nil { |
| 76 » case errBuildNotFound: | 77 » » switch common.ErrorTag.In(err) { |
| 77 » » return nil, grpcutil.Errf(codes.NotFound, "Build #%d for master
%q, builder %q was not found", | 78 » » case common.CodeNotFound: |
| 78 » » » req.BuildNumber, req.MasterName, req.BuilderName) | 79 » » » return nil, grpcutil.Errf(codes.NotFound, "Build #%d for
master %q, builder %q was not found", |
| 79 » case errNotAuth: | 80 » » » » req.BuildNumber, req.MasterName, req.BuilderName
) |
| 80 » » return nil, grpcutil.Unauthenticated | 81 |
| 81 » case nil: | 82 » » case common.CodeUnauthorized: |
| 82 » » // continue | 83 » » » return nil, grpcutil.Unauthenticated |
| 83 » default: | 84 |
| 84 » » logging.WithError(err).Errorf(c, "Failed to load build info.") | 85 » » default: |
| 85 » » return nil, grpcutil.Internal | 86 » » » logging.WithError(err).Errorf(c, "Failed to load build i
nfo.") |
| 87 » » » return nil, grpcutil.Internal |
| 88 » » } |
| 86 } | 89 } |
| 87 | 90 |
| 88 // Create a new LogDog client. | 91 // Create a new LogDog client. |
| 89 client, err := p.newLogdogClient(c) | 92 client, err := p.newLogdogClient(c) |
| 90 if err != nil { | 93 if err != nil { |
| 91 logging.WithError(err).Errorf(c, "Failed to create LogDog client
.") | 94 logging.WithError(err).Errorf(c, "Failed to create LogDog client
.") |
| 92 return nil, grpcutil.Internal | 95 return nil, grpcutil.Internal |
| 93 } | 96 } |
| 94 | 97 |
| 95 // Identify the LogDog annotation stream from the build. | 98 // Identify the LogDog annotation stream from the build. |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 allProps.Add(prop.Name) | 277 allProps.Add(prop.Name) |
| 275 | 278 |
| 276 step.Property = append(step.Property, &miloProto.Step_Property{ | 279 step.Property = append(step.Property, &miloProto.Step_Property{ |
| 277 Name: prop.Name, | 280 Name: prop.Name, |
| 278 Value: fmt.Sprintf("%v", prop.Value), | 281 Value: fmt.Sprintf("%v", prop.Value), |
| 279 }) | 282 }) |
| 280 } | 283 } |
| 281 | 284 |
| 282 return nil | 285 return nil |
| 283 } | 286 } |
| OLD | NEW |