[system-health-check] check_and_set_system_health

Merges check_system_health and set_active_configuration_healthy into a
single new operation with the following semantics:

- If the current configuration is marked "Pending" according to the
  paver, run health checks. If they fail, return an error. Eventually,
  seeing this error will cause system-update-checker and omaha-client
  to trigger reboot.

- Otherwise, mark the current configuration as healthy and the
  alternate configuration as unbootable.

Test: did an OTA, checked that the system logs were as expected on
  first boot (set healthy followed by set unbootable), and that
  //src/sys/pkg:tests passed on the newly updated system. Rebooted the
  machine and repeated this process, verifying the "skipping health
  checks" message appeared.

Fixed: 51480
Change-Id: I90a0952b3fe702f1f90184bd4497b00c98438f80
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/442202
Reviewed-by: Aaron Wood <aaronwood@google.com>
Reviewed-by: Zach Kirschenbaum <zkbaum@google.com>
Reviewed-by: John Wittrock <wittrock@google.com>
Testability-Review: Zach Kirschenbaum <zkbaum@google.com>
Commit-Queue: Hunter Freyer <hjfreyer@google.com>
9 files changed
tree: ecb0cc67cabe995ea6d7455b116b9c8781df9a9c
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

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.