Skip to content

Commit 4d477fc

Browse files
committed
Move FetcherConfigs creation logic into FetcherConfigs
Bug: b/469552996
1 parent 34ef6e6 commit 4d477fc

File tree

6 files changed

+34
-21
lines changed

6 files changed

+34
-21
lines changed

base/cvd/cuttlefish/host/commands/assemble_cvd/assemble_cvd.cc

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,24 +66,6 @@
6666
namespace cuttlefish {
6767
namespace {
6868

69-
static constexpr std::string_view kFetcherConfigFile = "fetcher_config.json";
70-
71-
FetcherConfigs FindFetcherConfigs(
72-
const SystemImageDirFlag& system_image_dir) {
73-
std::vector<FetcherConfig> fetcher_configs;
74-
for (size_t i = 0; i < system_image_dir.Size(); ++i) {
75-
std::string fetcher_file =
76-
fmt::format("{}/{}", system_image_dir.ForIndex(i), kFetcherConfigFile);
77-
FetcherConfig fetcher_config;
78-
if (!fetcher_config.LoadFromFile(fetcher_file)) {
79-
LOG(DEBUG) << "No valid fetcher_config in '" << fetcher_file
80-
<< "', falling back to default";
81-
}
82-
fetcher_configs.emplace_back(std::move(fetcher_config));
83-
}
84-
return FetcherConfigs::Create(std::move(fetcher_configs));
85-
}
86-
8769
std::string GetLegacyConfigFilePath(const CuttlefishConfig& config) {
8870
return config.ForDefaultInstance().PerInstancePath("cuttlefish_config.json");
8971
}
@@ -606,7 +588,8 @@ Result<int> AssembleCvdMain(int argc, char** argv) {
606588
SystemImageDirFlag system_image_dir =
607589
CF_EXPECT(SystemImageDirFlag::FromGlobalGflags());
608590

609-
FetcherConfigs fetcher_configs = FindFetcherConfigs(system_image_dir);
591+
FetcherConfigs fetcher_configs =
592+
FetcherConfigs::ReadFromDirectories(system_image_dir.AsVector());
610593

611594
InitramfsPathFlag initramfs_path =
612595
InitramfsPathFlag::FromGlobalGflags(fetcher_configs);

base/cvd/cuttlefish/host/commands/assemble_cvd/flags/system_image_dir.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ std::string SystemImageDirFlag::ForIndex(size_t argument_index) const {
5555
return system_image_dirs_[argument_index];
5656
}
5757

58+
const std::vector<std::string>& SystemImageDirFlag::AsVector() const {
59+
return system_image_dirs_;
60+
}
61+
5862
SystemImageDirFlag::SystemImageDirFlag(
5963
std::vector<std::string> system_image_dirs)
6064
: system_image_dirs_(std::move(system_image_dirs)) {}

base/cvd/cuttlefish/host/commands/assemble_cvd/flags/system_image_dir.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ class SystemImageDirFlag {
3434

3535
size_t Size() const { return system_image_dirs_.size(); }
3636

37+
const std::vector<std::string>& AsVector() const;
38+
3739
private:
3840
explicit SystemImageDirFlag(std::vector<std::string> system_image_dirs);
3941

base/cvd/cuttlefish/host/libs/config/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ cf_cc_library(
226226
hdrs = ["fetcher_configs.h"],
227227
deps = [
228228
"//cuttlefish/host/libs/config:fetcher_config",
229+
"//libbase",
230+
"@abseil-cpp//absl/strings",
229231
],
230232
)
231233

base/cvd/cuttlefish/host/libs/config/fetcher_configs.cc

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,38 @@
1818

1919
#include <stddef.h>
2020

21+
#include <string>
22+
#include <string_view>
2123
#include <utility>
2224
#include <vector>
2325

26+
#include "absl/strings/str_cat.h"
27+
#include "android-base/logging.h"
28+
2429
#include "cuttlefish/host/libs/config/fetcher_config.h"
2530

2631
namespace cuttlefish {
2732

28-
FetcherConfigs FetcherConfigs::Create(std::vector<FetcherConfig> configs) {
33+
static constexpr std::string_view kFetcherConfigFile = "fetcher_config.json";
34+
35+
FetcherConfigs FetcherConfigs::ReadFromDirectories(
36+
const std::vector<std::string>& directories) {
37+
std::vector<FetcherConfig> configs;
38+
configs.reserve(directories.size());
39+
40+
for (std::string_view directory : directories) {
41+
FetcherConfig& config = configs.emplace_back();
42+
43+
std::string config_path = absl::StrCat(directory, "/", kFetcherConfigFile);
44+
if (!config.LoadFromFile(config_path)) {
45+
LOG(DEBUG) << "No valid fetcher_config in '" << config_path
46+
<< "', falling back to default";
47+
}
48+
}
2949
if (configs.empty()) {
3050
configs.emplace_back();
3151
}
52+
3253
return FetcherConfigs(std::move(configs));
3354
}
3455

base/cvd/cuttlefish/host/libs/config/fetcher_configs.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include <stddef.h>
1919

20+
#include <string>
2021
#include <vector>
2122

2223
#include "cuttlefish/host/libs/config/fetcher_config.h"
@@ -25,7 +26,7 @@ namespace cuttlefish {
2526

2627
class FetcherConfigs {
2728
public:
28-
static FetcherConfigs Create(std::vector<FetcherConfig> configs);
29+
static FetcherConfigs ReadFromDirectories(const std::vector<std::string>&);
2930
FetcherConfigs(FetcherConfigs&&) = default;
3031
~FetcherConfigs() = default;
3132

0 commit comments

Comments
 (0)