[roll] Roll fuchsia [bedrock] Merge get_router_or_error and with_path

The get_router_or_error function looks special cased to a particular
dictionary layout. For example, the RoutingError is used if the path
didn't cross a router, but discarded if the path did cross a router,
where it delegates to with_path.

It turns out we can merge these two functions, if we add the error
parameter to with_path. The body of with_path can also be much simply
rewritten using the get_with_request helper. The resulting function is
called `lazy_get` in this CL.

This reveals a cyclic logic in extend_dict_with_dictionary. The
function grabs a member from the program_output_dict, transforms it, and
inserts the result back into program_output_dict. In order to break the
cycle, we introduce a program_output() router that avoids holding onto
the underlying dict forever. Following the same shape we can introduce
component_output() and remove the adhoc new_forwarding_router_to_child
helpers.

Original-Fixed: b/329912531
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1018316
Original-Revision: 06cd36b8a15b09731908ec0f78fe683923f8a527
GitOrigin-RevId: 4f243bdabf4580f5fbf828b76bcdba971d82fefd
Change-Id: I2fdbe194e7c341a870f3dad4a31fa34822f89dbc
1 file changed
tree: c0a980e7f801d85c5e6dd27da4385c7df5176e2a
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.