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();