[pkg-resolver] Cache TUF metadata with non-auto repos

Previously, we would try to update TUF every time before we try to
resolve a package. This can generate a significant amount of load during
an OTA, since we would update for each package. This patch fixes this by
allowing the TUF metadata to be cached for 5 minutes, which should
significantly reduce the load on the server.

Note: This differs from the original CL since fuchsia-pkg-testing's
serve::handler was renamed to serve::responder, and that we needed to
backport serve::handler::Record for the tests to pass.

Fixed: 77442
Change-Id: I70b5a5682a56dd706f26b6536bed13565f6418bd
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/538013
Commit-Queue: Erick Tryzelaar <etryzelaar@google.com>
Fuchsia-Auto-Submit: Erick Tryzelaar <etryzelaar@google.com>
Reviewed-by: Dan Johnson <computerdruid@google.com>
(cherry picked from commit c8a2a422f7684f810af88217fa74ff2d374fdd64)
4 files changed
tree: 8aad06efe0e6cfbaa6e1f6e2fe854f25c149f07c
  1. .clang-format
  2. .clang-tidy
  3. .git-blame-ignore-revs
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. .style.yapf
  9. BUILD.gn
  13. OWNERS
  15. README.md
  16. boards/
  17. build/
  18. buildtools/
  19. bundles/
  20. docs/
  21. examples/
  22. garnet/
  23. products/
  24. rustfmt.toml
  25. scripts/
  26. sdk/
  27. src/
  28. third_party/
  29. tools/
  30. zircon/


Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.