buffet: Configure buffet from the file.
We used to keep a lot of constants in the source files, now
let's start to move necessary constants into configuration
file to make it easier control buffet behaviour.
BUG=chromium:364692
TEST=manual
Change-Id: I77b95976746ac11e9b1a16cfc6476b8ac1464295
Reviewed-on: https://chromium-review.googlesource.com/231301
Reviewed-by: Anton Muhin <antonm@chromium.org>
Commit-Queue: Anton Muhin <antonm@chromium.org>
Tested-by: Anton Muhin <antonm@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index a54825c..6336c5d 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -15,6 +15,7 @@
#include <chromeos/data_encoding.h>
#include <chromeos/errors/error_codes.h>
#include <chromeos/http/http_utils.h>
+#include <chromeos/key_value_store.h>
#include <chromeos/mime_utils.h>
#include <chromeos/strings/string_utils.h>
#include <chromeos/url_utils.h>
@@ -58,18 +59,6 @@
const base::FilePath::CharType kDeviceInfoFilePath[] =
FILE_PATH_LITERAL("/var/lib/buffet/device_reg_info");
-bool GetParamValue(
- const std::map<std::string, std::string>& params,
- const std::string& param_name,
- std::string* param_value) {
- auto p = params.find(param_name);
- if (p == params.end())
- return false;
-
- *param_value = p->second;
- return true;
-}
-
std::pair<std::string, std::string> BuildAuthHeader(
const std::string& access_token_type,
const std::string& access_token) {
@@ -155,10 +144,12 @@
DeviceRegistrationInfo::DeviceRegistrationInfo(
const std::shared_ptr<CommandManager>& command_manager,
- const std::shared_ptr<StateManager>& state_manager)
+ const std::shared_ptr<StateManager>& state_manager,
+ std::unique_ptr<chromeos::KeyValueStore> config_store)
: DeviceRegistrationInfo(
command_manager,
state_manager,
+ std::move(config_store),
chromeos::http::Transport::CreateDefault(),
// TODO(avakulenko): Figure out security implications of storing
// this data unencrypted.
@@ -168,14 +159,18 @@
DeviceRegistrationInfo::DeviceRegistrationInfo(
const std::shared_ptr<CommandManager>& command_manager,
const std::shared_ptr<StateManager>& state_manager,
+ std::unique_ptr<chromeos::KeyValueStore> config_store,
const std::shared_ptr<chromeos::http::Transport>& transport,
const std::shared_ptr<StorageInterface>& storage)
: transport_{transport},
storage_{storage},
command_manager_{command_manager},
- state_manager_{state_manager} {
+ state_manager_{state_manager},
+ config_store_{std::move(config_store)} {
}
+DeviceRegistrationInfo::~DeviceRegistrationInfo() = default;
+
std::pair<std::string, std::string>
DeviceRegistrationInfo::GetAuthorizationHeader() const {
return BuildAuthHeader("Bearer", access_token_);
@@ -833,4 +828,18 @@
base::Bind(&IgnoreCloudResult), base::Bind(&IgnoreCloudError));
}
+void DeviceRegistrationInfo::GetParamValue(
+ const std::map<std::string, std::string>& params,
+ const std::string& param_name,
+ std::string* param_value) {
+ auto p = params.find(param_name);
+ if (p != params.end()) {
+ *param_value = p->second;
+ return;
+ }
+
+ bool present = config_store_->GetString(param_name, param_value);
+ CHECK(present) << "No default for parameter " << param_name;
+}
+
} // namespace buffet