Merge aosp/upstream-master into aosp/master.
Added BinderUpdateEngineClient::AttemptInstall().
Test: update_engine_unittests
Change-Id: Id6911f49d763b0d572658acb7d66857016bf6969
diff --git a/client_library/client_binder.cc b/client_library/client_binder.cc
index 54b33ed..5c22f84 100644
--- a/client_library/client_binder.cc
+++ b/client_library/client_binder.cc
@@ -58,6 +58,11 @@
.isOk();
}
+bool BinderUpdateEngineClient::AttemptInstall(
+ const string& omaha_url, const std::vector<string>& dlc_module_ids) {
+ return false;
+}
+
bool BinderUpdateEngineClient::GetStatus(int64_t* out_last_checked_time,
double* out_progress,
UpdateStatus* out_update_status,
diff --git a/client_library/client_binder.h b/client_library/client_binder.h
index 17f2beb..b3c8940 100644
--- a/client_library/client_binder.h
+++ b/client_library/client_binder.h
@@ -47,6 +47,9 @@
const std::string& omaha_url,
bool at_user_request) override;
+ bool AttemptInstall(const std::string& omaha_url,
+ const std::vector<std::string>& dlc_module_ids) override;
+
bool GetStatus(int64_t* out_last_checked_time,
double* out_progress,
UpdateStatus* out_update_status,
diff --git a/client_library/client_dbus.cc b/client_library/client_dbus.cc
index 1072836..e0d1f64 100644
--- a/client_library/client_dbus.cc
+++ b/client_library/client_dbus.cc
@@ -20,6 +20,7 @@
#include <dbus/bus.h>
#include <update_engine/dbus-constants.h>
+#include <update_engine/proto_bindings/update_engine.pb.h>
#include "update_engine/update_status_utils.h"
@@ -27,6 +28,7 @@
using dbus::Bus;
using org::chromium::UpdateEngineInterfaceProxy;
using std::string;
+using std::vector;
namespace update_engine {
namespace internal {
@@ -55,6 +57,24 @@
nullptr);
}
+bool DBusUpdateEngineClient::AttemptInstall(
+ const string& omaha_url, const vector<string>& dlc_module_ids) {
+ // Convert parameters into protobuf.
+ chromeos_update_engine::DlcParameters dlc_parameters;
+ dlc_parameters.set_omaha_url(omaha_url);
+ for (const auto& dlc_module_id : dlc_module_ids) {
+ chromeos_update_engine::DlcInfo* dlc_info = dlc_parameters.add_dlc_infos();
+ dlc_info->set_dlc_id(dlc_module_id);
+ }
+ string dlc_request;
+ if (dlc_parameters.SerializeToString(&dlc_request)) {
+ return proxy_->AttemptInstall(dlc_request, nullptr /* brillo::ErrorPtr* */);
+ } else {
+ LOG(ERROR) << "Fail to serialize a protobuf to a string.";
+ return false;
+ }
+}
+
bool DBusUpdateEngineClient::GetStatus(int64_t* out_last_checked_time,
double* out_progress,
UpdateStatus* out_update_status,
diff --git a/client_library/client_dbus.h b/client_library/client_dbus.h
index cec1665..a186d45 100644
--- a/client_library/client_dbus.h
+++ b/client_library/client_dbus.h
@@ -41,6 +41,9 @@
const std::string& omaha_url,
bool at_user_request) override;
+ bool AttemptInstall(const std::string& omaha_url,
+ const std::vector<std::string>& dlc_module_ids) override;
+
bool GetStatus(int64_t* out_last_checked_time,
double* out_progress,
UpdateStatus* out_update_status,
diff --git a/client_library/include/update_engine/client.h b/client_library/include/update_engine/client.h
index be87c76..1bc6111 100644
--- a/client_library/include/update_engine/client.h
+++ b/client_library/include/update_engine/client.h
@@ -20,6 +20,7 @@
#include <cstdint>
#include <memory>
#include <string>
+#include <vector>
#include "update_engine/status_update_handler.h"
#include "update_engine/update_status.h"
@@ -47,6 +48,18 @@
const std::string& omaha_url,
bool at_user_request) = 0;
+ // Request the update_engine to install a list of DLC modules.
+ // |omaha_url|
+ // Force update_engine to look for updates from the given server. Passing
+ // empty indicates update_engine should use its default value. Note that
+ // update_engine will ignore this parameter in production mode to avoid
+ // pulling untrusted updates.
+ // |dlc_module_ids|
+ // A list of DLC module IDs.
+ virtual bool AttemptInstall(
+ const std::string& omaha_url,
+ const std::vector<std::string>& dlc_module_ids) = 0;
+
// Returns the current status of the Update Engine.
//
// |out_last_checked_time|