libweave: Move firmware version generation out of libweave
Temporarily location is weave::Options, should be moved into
weave::Settings.
BUG=brillo:1257,brillo:1253
TEST=`FEATURES=test emerge-gizmo libweave buffet`
Change-Id: Ib24083f02e56b9af28d11d046631f19593394b3e
Reviewed-on: https://chromium-review.googlesource.com/293926
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 5802db8..585adba 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -27,6 +27,7 @@
class Device {
public:
struct Options {
+ std::string firmware_version; // TODO: Move into weave::Settings
base::FilePath config_path;
base::FilePath state_path;
base::FilePath definitions_path;
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc
index ed85d39..d09e512 100644
--- a/libweave/src/base_api_handler.cc
+++ b/libweave/src/base_api_handler.cc
@@ -20,27 +20,17 @@
BaseApiHandler::BaseApiHandler(
DeviceRegistrationInfo* device_info,
+ const std::string& firmware_version,
const std::shared_ptr<StateManager>& state_manager,
const std::shared_ptr<CommandManager>& command_manager)
: device_info_{device_info}, state_manager_{state_manager} {
device_info_->AddOnConfigChangedCallback(base::Bind(
&BaseApiHandler::OnConfigChanged, weak_ptr_factory_.GetWeakPtr()));
- // Populate state fields that belong to the system.
- base::FilePath lsb_release_path("/etc/lsb-release");
- chromeos::KeyValueStore lsb_release_store;
- std::string firmware_version;
- if (lsb_release_store.Load(lsb_release_path) &&
- lsb_release_store.GetString("CHROMEOS_RELEASE_VERSION",
- &firmware_version)) {
- base::DictionaryValue state;
- state.SetStringWithoutPathExpansion(kBaseStateFirmwareVersion,
- firmware_version);
- CHECK(state_manager_->SetProperties(state, nullptr));
- } else {
- LOG(ERROR) << "Failed to get CHROMEOS_RELEASE_VERSION from "
- << lsb_release_path.value();
- }
+ base::DictionaryValue state;
+ state.SetStringWithoutPathExpansion(kBaseStateFirmwareVersion,
+ firmware_version);
+ CHECK(state_manager_->SetProperties(state, nullptr));
command_manager->AddOnCommandAddedCallback(base::Bind(
&BaseApiHandler::OnCommandAdded, weak_ptr_factory_.GetWeakPtr()));
diff --git a/libweave/src/base_api_handler.h b/libweave/src/base_api_handler.h
index c1a5f2e..abb60b1 100644
--- a/libweave/src/base_api_handler.h
+++ b/libweave/src/base_api_handler.h
@@ -27,6 +27,7 @@
class BaseApiHandler final {
public:
BaseApiHandler(DeviceRegistrationInfo* device_info,
+ const std::string& firmware_version,
const std::shared_ptr<StateManager>& state_manager,
const std::shared_ptr<CommandManager>& command_manager);
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc
index 8a1b881..735ddd9 100644
--- a/libweave/src/base_api_handler_unittest.cc
+++ b/libweave/src/base_api_handler_unittest.cc
@@ -60,8 +60,8 @@
std::unique_ptr<BuffetConfig>{new BuffetConfig{
std::unique_ptr<StorageInterface>{new MemStorage}}},
nullptr, &http_client_, true, nullptr));
- handler_.reset(
- new BaseApiHandler{dev_reg_.get(), state_manager_, command_manager_});
+ handler_.reset(new BaseApiHandler{dev_reg_.get(), "123123", state_manager_,
+ command_manager_});
}
void LoadCommands(const std::string& command_definitions) {
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index efbac77..4d3c251 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -48,8 +48,9 @@
device_info_.reset(new DeviceRegistrationInfo(
command_manager_, state_manager_, std::move(config), task_runner,
http_client, options.xmpp_enabled, network));
- base_api_handler_.reset(
- new BaseApiHandler{device_info_.get(), state_manager_, command_manager_});
+ base_api_handler_.reset(new BaseApiHandler{device_info_.get(),
+ options.firmware_version,
+ state_manager_, command_manager_});
device_info_->Start();