libweave: Pass firmware using weave::Settings
Also removed unused weave::Options fields.
BUG=brillo:1257
TEST=`FEATURES=test emerge-gizmo libweave buffet`
Change-Id: I9299e3d2f58e9b8f2965cb2198107e865dabb953
Reviewed-on: https://chromium-review.googlesource.com/293927
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet_config.cc b/buffet/buffet_config.cc
index 9126ead..1bb1473 100644
--- a/buffet/buffet_config.cc
+++ b/buffet/buffet_config.cc
@@ -84,6 +84,17 @@
store.GetString(config_keys::kOemName, &settings->oem_name);
store.GetString(config_keys::kModelName, &settings->model_name);
store.GetString(config_keys::kModelId, &settings->model_id);
+
+ base::FilePath lsb_release_path("/etc/lsb-release");
+ chromeos::KeyValueStore lsb_release_store;
+ if (lsb_release_store.Load(lsb_release_path) &&
+ lsb_release_store.GetString("CHROMEOS_RELEASE_VERSION",
+ &settings->firmware_version)) {
+ } else {
+ LOG(ERROR) << "Failed to get CHROMEOS_RELEASE_VERSION from "
+ << lsb_release_path.value();
+ }
+
std::string polling_period_str;
if (store.GetString(config_keys::kPollingPeriodMs, &polling_period_str) &&
!StringToTimeDelta(polling_period_str, &settings->polling_period)) {
diff --git a/buffet/main.cc b/buffet/main.cc
index 280abd6..087707f 100644
--- a/buffet/main.cc
+++ b/buffet/main.cc
@@ -9,7 +9,6 @@
#include <chromeos/dbus/async_event_sequencer.h>
#include <chromeos/dbus/exported_object_manager.h>
#include <chromeos/flag_helper.h>
-#include <chromeos/key_value_store.h>
#include <chromeos/strings/string_utils.h>
#include <chromeos/syslog_logging.h>
@@ -26,21 +25,28 @@
class Daemon final : public DBusServiceDaemon {
public:
Daemon(const weave::Device::Options& options,
+ const base::FilePath& config_path,
+ const base::FilePath& state_path,
const std::set<std::string>& device_whitelist)
: DBusServiceDaemon(kServiceName, kRootServicePath),
options_{options},
+ config_path_{config_path},
+ state_path_{state_path},
device_whitelist_{device_whitelist} {}
protected:
void RegisterDBusObjectsAsync(AsyncEventSequencer* sequencer) override {
manager_.reset(new buffet::Manager(object_manager_->AsWeakPtr()));
- manager_->Start(options_, device_whitelist_, sequencer);
+ manager_->Start(options_, config_path_, state_path_, device_whitelist_,
+ sequencer);
}
void OnShutdown(int* return_code) override { manager_->Stop(); }
private:
weave::Device::Options options_;
+ base::FilePath config_path_;
+ base::FilePath state_path_;
std::set<std::string> device_whitelist_;
std::unique_ptr<buffet::Manager> manager_;
@@ -92,8 +98,6 @@
chromeos::string_utils::Split(FLAGS_device_whitelist, ",", true, true);
weave::Device::Options options;
- options.config_path = base::FilePath{FLAGS_config_path};
- options.state_path = base::FilePath{FLAGS_state_path};
options.definitions_path = base::FilePath{"/etc/buffet"};
options.test_definitions_path = base::FilePath{FLAGS_test_definitions_path};
options.xmpp_enabled = FLAGS_enable_xmpp;
@@ -102,17 +106,9 @@
options.enable_ping = FLAGS_enable_ping;
options.test_privet_ssid = FLAGS_test_privet_ssid;
- base::FilePath lsb_release_path("/etc/lsb-release");
- chromeos::KeyValueStore lsb_release_store;
- if (lsb_release_store.Load(lsb_release_path) &&
- lsb_release_store.GetString("CHROMEOS_RELEASE_VERSION",
- &options.firmware_version)) {
- } else {
- LOG(ERROR) << "Failed to get CHROMEOS_RELEASE_VERSION from "
- << lsb_release_path.value();
- }
-
- buffet::Daemon daemon{options, std::set<std::string>{device_whitelist.begin(),
- device_whitelist.end()}};
+ buffet::Daemon daemon{
+ options, base::FilePath{FLAGS_config_path},
+ base::FilePath{FLAGS_state_path},
+ std::set<std::string>{device_whitelist.begin(), device_whitelist.end()}};
return daemon.Run();
}
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 6fa818e..710a431 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -72,6 +72,8 @@
}
void Manager::Start(const weave::Device::Options& options,
+ const base::FilePath& config_path,
+ const base::FilePath& state_path,
const std::set<std::string>& device_whitelist,
AsyncEventSequencer* sequencer) {
task_runner_.reset(new TaskRunner{});
@@ -89,7 +91,7 @@
#endif // BUFFET_USE_WIFI_BOOTSTRAPPING
device_ = weave::Device::Create();
- config_.reset(new BuffetConfig{options.config_path, options.state_path});
+ config_.reset(new BuffetConfig{config_path, state_path});
config_->AddOnChangedCallback(
base::Bind(&Manager::OnConfigChanged, weak_ptr_factory_.GetWeakPtr()));
diff --git a/buffet/manager.h b/buffet/manager.h
index beee585..84861e1 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -56,6 +56,8 @@
~Manager();
void Start(const weave::Device::Options& options,
+ const base::FilePath& config_path,
+ const base::FilePath& state_path,
const std::set<std::string>& device_whitelist,
chromeos::dbus_utils::AsyncEventSequencer* sequencer);