buffet: Expose RegistrationStatus over DBus
This new property lets applications monitor Buffet's connection to
cloud services.
BUG=brillo:16
TEST=Unittests, buffet_Registration has been expanded appropriately.
CQ-DEPEND=CL:*199337
Change-Id: I30253e8199cb65068a74dd8b780a8ab0954bf9fa
Reviewed-on: https://chromium-review.googlesource.com/250011
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc
index 10efa6e..5a8a72a 100644
--- a/buffet/buffet_client.cc
+++ b/buffet/buffet_client.cc
@@ -146,7 +146,12 @@
return return_code;
object_manager_.reset(new org::chromium::Buffet::ObjectManagerProxy{bus_});
- manager_proxy_.reset(new org::chromium::Buffet::ManagerProxy{bus_});
+ auto manager_instances = object_manager_->GetManagerInstances();
+ if (manager_instances.empty()) {
+ fprintf(stderr, "Buffet daemon was offline.");
+ return EX_UNAVAILABLE;
+ }
+ manager_proxy_ = manager_instances.front();
auto args = CommandLine::ForCurrentProcess()->GetArgs();
@@ -361,8 +366,8 @@
}
std::unique_ptr<org::chromium::Buffet::ObjectManagerProxy> object_manager_;
- std::unique_ptr<org::chromium::Buffet::ManagerProxy> manager_proxy_;
- int exit_code_ = EX_OK;
+ org::chromium::Buffet::ManagerProxy* manager_proxy_{nullptr};
+ int exit_code_{EX_OK};
DISALLOW_COPY_AND_ASSIGN(Daemon);
};