buffet: Add base.updateBaseConfiguration implementation

Required base command handled by buffet.

BUG=brillo:810
TEST=`FEATURES=test emerge-gizmo buffet`

Change-Id: I97ecd9f5d792cc636e76bbff92899a7ddfa4a605
Reviewed-on: https://chromium-review.googlesource.com/273618
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/device_registration_info.cc b/buffet/device_registration_info.cc
index 1fc329f..bd99917 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -672,6 +672,25 @@
   return true;
 }
 
+bool DeviceRegistrationInfo::UpdateBaseConfig(
+    const std::string& anonymous_access_role,
+    bool local_discovery_enabled,
+    bool local_pairing_enabled,
+    chromeos::ErrorPtr* error) {
+  BuffetConfig::Transaction change(config_.get());
+  if (!change.set_local_anonymous_access_role(anonymous_access_role)) {
+    chromeos::Error::AddToPrintf(error, FROM_HERE, kErrorDomainBuffet,
+                                 "invalid_parameter", "Invalid role: %s",
+                                 anonymous_access_role.c_str());
+    return false;
+  }
+
+  change.set_local_discovery_enabled(local_discovery_enabled);
+  change.set_local_pairing_enabled(local_pairing_enabled);
+
+  return true;
+}
+
 bool DeviceRegistrationInfo::UpdateServiceConfig(
     const std::string& client_id,
     const std::string& client_secret,