update_engine: Policy determines P2P enabled status.
This switches the P2P Manager to use the newly introduced Update Manger
policy requests in determining whether P2P is enabled on the system.
There is a policy request for the initial state (P2PEnabled, sync) and
for tracking changes (P2PEnabledChanged, async), with the latest known
value being cached by the P2P Manager.
This also reverses a recent change that moved P2P prefs setting into the
P2PManager. In the absence of any additional logic (now cleared) there
was no point in having a dedicated method just for that, and so
dbus_service writes the prefs value directly. This affords us removing
the prefs argument when initializing the P2PManager.
BUG=chromium:425233
TEST=Unit tests.
Change-Id: I53280f05da8fe532b6502c175a8cc9ddc1e15a87
Reviewed-on: https://chromium-review.googlesource.com/226937
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/dbus_service.cc b/dbus_service.cc
index 0c39340..ba99586 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -355,11 +355,9 @@
UpdateEngineService* self,
gboolean enabled,
GError **error) {
- chromeos_update_engine::P2PManager* p2p_manager =
- self->system_state_->p2p_manager();
+ chromeos_update_engine::PrefsInterface* prefs = self->system_state_->prefs();
- if (!(p2p_manager &&
- p2p_manager->SetP2PEnabledPref(enabled))) {
+ if (!prefs->SetBoolean(chromeos_update_engine::kPrefsP2PEnabled, enabled)) {
log_and_set_response_error(
error, UPDATE_ENGINE_SERVICE_ERROR_FAILED,
StringPrintf("Error setting the update via p2p permission to %s.",