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;