buffet: Stub for StartDevice method.

This introduces StartDevice method with stub implementation
and allows buffet_client to invoke it.

BUG=None
TEST=cros_workon_make buffet --test and manual.

Change-Id: I3f89ed3fc735c0521041484bb9fdebc43d9d4b79
Reviewed-on: https://chromium-review.googlesource.com/220771
Commit-Queue: Anton Muhin <antonm@chromium.org>
Tested-by: Anton Muhin <antonm@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc
index bde5abe..f8ef56e 100644
--- a/buffet/buffet_client.cc
+++ b/buffet/buffet_client.cc
@@ -38,6 +38,7 @@
 void usage() {
   std::cerr << "Possible commands:" << std::endl;
   std::cerr << "  " << kManagerTestMethod << " <message>" << std::endl;
+  std::cerr << "  " << kManagerStartDevice << std::endl;
   std::cerr << "  " << kManagerCheckDeviceRegistered << std::endl;
   std::cerr << "  " << kManagerGetDeviceInfo << std::endl;
   std::cerr << "  " << kManagerStartRegisterDevice
@@ -88,6 +89,26 @@
     return EX_OK;
   }
 
+  int CallManagerStartDevice(const CommandLine::StringVector& args) {
+    if (!args.empty()) {
+      std::cerr << "Invalid number of arguments for "
+                << "Manager." << kManagerStartDevice << std::endl;
+      usage();
+      return EX_USAGE;
+    }
+
+    ErrorPtr error;
+    auto response = CallMethodAndBlock(
+        manager_proxy_,
+        kManagerInterface, kManagerStartDevice, &error);
+    if (!response || !ExtractMethodCallResults(response.get(), &error)) {
+      std::cout << "Failed to receive a response:"
+                << error->GetMessage() << std::endl;
+      return EX_UNAVAILABLE;
+    }
+    return EX_OK;
+  }
+
   int CallManagerCheckDeviceRegistered(const CommandLine::StringVector& args) {
     if (!args.empty()) {
       std::cerr << "Invalid number of arguments for "
@@ -298,6 +319,9 @@
 
   if (command.compare(kManagerTestMethod) == 0) {
     err = helper.CallTestMethod(args);
+  } else if (command.compare(kManagerStartDevice) == 0 ||
+             command.compare("sd") == 0) {
+    err = helper.CallManagerStartDevice(args);
   } else if (command.compare(kManagerCheckDeviceRegistered) == 0 ||
              command.compare("cr") == 0) {
     err = helper.CallManagerCheckDeviceRegistered(args);