patchpanel: Add support for getting all managed devices.

Adds a new dbus method - GetDevices - and the supporting implementation
in the arc and crostini services to acquire the list of devices
currently managed by patchpanel. This currently includes only the
virtual devices it creates for guests and excludes physical and virtual
(like VPN) devices tracked by shill.

BUG=b:174432555
TEST=units

Change-Id: I3e62c89836bf7bfbc0fade5260ea27eb1f60df9f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2566852
Tested-by: Garrick Evans <garrick@chromium.org>
Commit-Queue: Garrick Evans <garrick@chromium.org>
Reviewed-by: Hugo Benichi <hugobenichi@google.com>
diff --git a/patchpanel/manager.h b/patchpanel/manager.h
index 5055cda..3280772 100644
--- a/patchpanel/manager.h
+++ b/patchpanel/manager.h
@@ -116,6 +116,9 @@
   // address to guest-facing interface.
   void OnNDProxyMessage(const NDProxyMessage& msg);
 
+  // Handles DBus request for managed device list.
+  std::unique_ptr<dbus::Response> OnGetDevices(dbus::MethodCall* method_call);
+
   // Handles DBus notification indicating ARC++ is booting up.
   std::unique_ptr<dbus::Response> OnArcStartup(dbus::MethodCall* method_call);