[cas-viewer] Fix how it creates gRPC clients.

It used to use context.Background() as the root context for
gRPC clients and its per-RPC credentials. This worked only
due to some fallback on per-request context that the auth
library is doing. But it is fragile and at some point it had
some changes that resulted in following error happening
in this situation:

> transport: per-RPC creds failed due to error: a transport or
credentials provider created within a context of one user request
is used within another user request, this is dangerous

This CL makes the client use the root server context that is
initialized to make gRPC auth working as expected.

Plus some style nits.

R=chanli@chromium.org

Change-Id: Ib922c08dab3c6dbfc23b9e5e2ef3b86a3db06d96
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/6065160
Reviewed-by: Chan Li <chanli@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
3 files changed
tree: 205bf6cb15a7f8552e1801bbeb69554280132028
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. cv/
  16. deploy/
  17. examples/
  18. gae/
  19. gce/
  20. grpc/
  21. hardcoded/
  22. led/
  23. logdog/
  24. luci_notify/
  25. lucicfg/
  26. lucictx/
  27. luciexe/
  28. mailer/
  29. milo/
  30. mmutex/
  31. provenance/
  32. recipes_py/
  33. resultdb/
  34. scheduler/
  35. scripts/
  36. server/
  37. source_index/
  38. standalone/
  39. starlark/
  40. swarming/
  41. teams/
  42. third_party/
  43. tokenserver/
  44. tools/
  45. tree_status/
  46. vpython/
  47. web/
  48. .gitallowed
  49. .gitattributes
  50. .gitignore
  51. .go-lintable
  52. AUTHORS
  53. codereview.settings
  54. CONTRIBUTING.md
  55. CONTRIBUTORS
  56. go.mod
  57. go.sum
  58. LICENSE
  59. OWNERS
  60. PRESUBMIT.py
  61. README.md
  62. staticcheck.conf
  63. tools.go
  64. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoReference

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

It is now possible to directly install tools with go install:

go install go.chromium.org/luci/auth/client/cmd/...@latest
go install go.chromium.org/luci/buildbucket/cmd/...@latest
go install go.chromium.org/luci/cipd/client/cmd/...@latest
go install go.chromium.org/luci/client/cmd/...@latest
go install go.chromium.org/luci/cv/cmd/...@latest
go install go.chromium.org/luci/gce/cmd/...@latest
go install go.chromium.org/luci/grpc/cmd/...@latest
go install go.chromium.org/luci/logdog/client/cmd/...@latest
go install go.chromium.org/luci/luci_notify/cmd/...@latest
go install go.chromium.org/luci/lucicfg/cmd/...@latest
go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest
go install go.chromium.org/luci/mailer/cmd/...@latest
go install go.chromium.org/luci/mmutex/cmd/...@latest
go install go.chromium.org/luci/resultdb/cmd/...@latest
go install go.chromium.org/luci/server/cmd/...@latest
go install go.chromium.org/luci/swarming/cmd/...@latest
go install go.chromium.org/luci/tokenserver/cmd/...@latest
go install go.chromium.org/luci/tools/cmd/...@latest

Contributing

Contributing uses the same flow as Chromium contributions.