update_engine: Change parameters of AttemptInstall() DBus

Currently, the update_engine is using the dlcservice's protobuf as
its own input. This is bad API because now anyone dependent on the
update_engine's DBus, needs to be dependent on the dlcservice too. This
CL changes that so we only pass the arguments we want (DLC DIs and the
omaha url).

BUG=chromium:1071654
TEST=cros_workon_make --board reef --test update_engine

Cq-Depend: chromium:2157670
Change-Id: Id7f7a86d8b3e3194d4d7697a8ad26ed4bcc4ba2c
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/2163442
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Andrew Lassalle <andrewlassalle@chromium.org>
Reviewed-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Queue: Amin Hassani <ahassani@chromium.org>
diff --git a/client_library/client_dbus.cc b/client_library/client_dbus.cc
index 4ec76c5..5ca519a 100644
--- a/client_library/client_dbus.cc
+++ b/client_library/client_dbus.cc
@@ -21,7 +21,6 @@
 #include <memory>
 
 #include <dbus/bus.h>
-#include <dlcservice/proto_bindings/dlcservice.pb.h>
 #include <update_engine/dbus-constants.h>
 
 #include "update_engine/update_status_utils.h"
@@ -86,16 +85,7 @@
 
 bool DBusUpdateEngineClient::AttemptInstall(const string& omaha_url,
                                             const vector<string>& dlc_ids) {
-  // Convert parameters into protobuf.
-  dlcservice::DlcModuleList dlc_parameters;
-  dlc_parameters.set_omaha_url(omaha_url);
-  for (const auto& dlc_id : dlc_ids) {
-    dlcservice::DlcModuleInfo* dlc_module_info =
-        dlc_parameters.add_dlc_module_infos();
-    dlc_module_info->set_dlc_id(dlc_id);
-  }
-  return proxy_->AttemptInstall(dlc_parameters,
-                                nullptr /* brillo::ErrorPtr* */);
+  return proxy_->AttemptInstall(omaha_url, dlc_ids, nullptr);
 }
 
 bool DBusUpdateEngineClient::SetDlcActiveValue(bool is_active,
diff --git a/client_library/client_dbus.h b/client_library/client_dbus.h
index 74fcce3..f19555f 100644
--- a/client_library/client_dbus.h
+++ b/client_library/client_dbus.h
@@ -23,7 +23,6 @@
 #include <vector>
 
 #include <base/macros.h>
-#include <dlcservice/proto_bindings/dlcservice.pb.h>
 #include <update_engine/proto_bindings/update_engine.pb.h>
 
 #include "update_engine/client_library/include/update_engine/client.h"
diff --git a/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml b/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
index 51457e5..ac2f021 100644
--- a/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
+++ b/dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
@@ -35,12 +35,11 @@
       <arg type="i" name="flags" direction="in" />
     </method>
     <method name="AttemptInstall">
-      <arg type="ay" name="request" direction="in">
+      <arg type="s" name="omaha_url" direction="in" />
+      <arg type="as" name="dlc_ids" direction="in">
         <tp:docstring>
-          The information about DLC modules that needs to be installed.
+          The list of DLC IDs that needs to be installed.
         </tp:docstring>
-        <annotation name="org.chromium.DBus.Argument.ProtobufClass"
-                    value="dlcservice::DlcModuleList"/>
       </arg>
     </method>
     <method name="AttemptRollback">
diff --git a/dbus_service.cc b/dbus_service.cc
index a5fec74..46ac1d1 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -19,7 +19,6 @@
 #include <string>
 #include <vector>
 
-#include <dlcservice/proto_bindings/dlcservice.pb.h>
 #include <update_engine/dbus-constants.h>
 
 #include "update_engine/dbus_connection.h"
@@ -30,7 +29,6 @@
 
 using brillo::ErrorPtr;
 using chromeos_update_engine::UpdateEngineService;
-using dlcservice::DlcModuleList;
 using std::string;
 using std::vector;
 using update_engine::Operation;
@@ -82,17 +80,9 @@
 }
 
 bool DBusUpdateEngineService::AttemptInstall(ErrorPtr* error,
-                                             const DlcModuleList& request) {
-  vector<string> dlc_ids;
-  for (const auto& dlc_module_info : request.dlc_module_infos()) {
-    if (dlc_module_info.dlc_id().empty()) {
-      *error = brillo::Error::Create(
-          FROM_HERE, "update_engine", "INTERNAL", "Empty DLC ID passed.");
-      return false;
-    }
-    dlc_ids.push_back(dlc_module_info.dlc_id());
-  }
-  return common_->AttemptInstall(error, request.omaha_url(), dlc_ids);
+                                             const string& in_omaha_url,
+                                             const vector<string>& dlc_ids) {
+  return common_->AttemptInstall(error, in_omaha_url, dlc_ids);
 }
 
 bool DBusUpdateEngineService::AttemptRollback(ErrorPtr* error,
diff --git a/dbus_service.h b/dbus_service.h
index 86f5b93..873909e 100644
--- a/dbus_service.h
+++ b/dbus_service.h
@@ -21,10 +21,10 @@
 
 #include <memory>
 #include <string>
+#include <vector>
 
 #include <base/memory/ref_counted.h>
 #include <brillo/errors/error.h>
-#include <dlcservice/proto_bindings/dlcservice.pb.h>
 #include <update_engine/proto_bindings/update_engine.pb.h>
 
 #include "update_engine/common_service.h"
@@ -52,7 +52,8 @@
                               int32_t in_flags_as_int) override;
 
   bool AttemptInstall(brillo::ErrorPtr* error,
-                      const dlcservice::DlcModuleList& request) override;
+                      const std::string& in_omaha_url,
+                      const std::vector<std::string>& dlc_ids) override;
 
   bool AttemptRollback(brillo::ErrorPtr* error, bool in_powerwash) override;