privetd: Implement privet/v3/commands/status Privetd just forwards IDs to the buffet and buffet returns JSON representation of the command. BUG=brillo:430 TEST=unittest Change-Id: I5698f9fc915ae32dc2b9be3cc35f8efe919ee4e3 Reviewed-on: https://chromium-review.googlesource.com/261641 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Reviewed-by: Vitaly Buka <vitalybuka@chromium.org> Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml b/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml index 8473fe2..8b59b42 100644 --- a/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml +++ b/buffet/dbus_bindings/org.chromium.Buffet.Manager.xml
@@ -33,6 +33,11 @@ <arg name="json_command" type="s" direction="in"/> <annotation name="org.chromium.DBus.Method.Kind" value="async"/> </method> + <method name="GetCommand"> + <arg name="id" type="s" direction="in"/> + <arg name="json_command" type="s" direction="out"/> + <annotation name="org.chromium.DBus.Method.Kind" value="async"/> + </method> <method name="TestMethod"> <arg name="message" type="s" direction="in"/> <arg name="echoed_message" type="s" direction="out"/>
diff --git a/buffet/manager.cc b/buffet/manager.cc index 6097b09..01f73b1 100644 --- a/buffet/manager.cc +++ b/buffet/manager.cc
@@ -189,6 +189,19 @@ response->Return(); } +void Manager::GetCommand(DBusMethodResponse<std::string> response, + const std::string& id) { + const CommandInstance* command = command_manager_->FindCommand(id); + if (!command) { + response->ReplyWithError(FROM_HERE, kErrorDomainGCD, "unknown_command", + "Can't find command with id: " + id); + return; + } + std::string command_str; + base::JSONWriter::Write(command->ToJson().get(), &command_str); + response->Return(command_str); +} + std::string Manager::TestMethod(const std::string& message) { LOG(INFO) << "Received call to test method: " << message; return message;
diff --git a/buffet/manager.h b/buffet/manager.h index d307ca2..d61c6fa 100644 --- a/buffet/manager.h +++ b/buffet/manager.h
@@ -70,6 +70,9 @@ // Handles calls to org.chromium.Buffet.Manager.AddCommand(). void AddCommand(DBusMethodResponse<> response, const std::string& json_command) override; + // Handles calls to org.chromium.Buffet.Manager.GetCommand(). + void GetCommand(DBusMethodResponse<std::string> response, + const std::string& id) override; // Handles calls to org.chromium.Buffet.Manager.Test() std::string TestMethod(const std::string& message) override;