Skip to content

Commit 3e157eb

Browse files
committed
Make MiscImage implement ImageFile
Bug: b/471849677
1 parent 399eca0 commit 3e157eb

File tree

6 files changed

+34
-43
lines changed

6 files changed

+34
-43
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <android-base/strings.h>
2323
#include <gflags/gflags.h>
2424
#include "absl/strings/match.h"
25+
#include "absl/strings/str_cat.h"
2526

2627
#include "cuttlefish/common/libs/fs/shared_buf.h"
2728
#include "cuttlefish/common/libs/fs/shared_fd.h"
@@ -225,7 +226,7 @@ Result<std::set<std::string>> PreservingOnResume(
225226
preserving.insert("pflash.img");
226227
preserving.insert("uboot_env.img");
227228
preserving.insert(FactoryResetProtectedImage::FileName());
228-
preserving.insert(MiscImage::Name());
229+
preserving.insert(absl::StrCat(MiscImage::kName, ".img"));
229230
preserving.insert("vmmtruststore.img");
230231
preserving.insert(MetadataImage::Name());
231232
preserving.insert("persistent_vbmeta.img");
@@ -338,13 +339,13 @@ Result<const CuttlefishConfig*> InitFilesystemAndCreateConfig(
338339
// then don't preserve any files and delete everything.
339340
for (const auto& instance : config.Instances()) {
340341
Result<MetadataImage> metadata = MetadataImage::Reuse(instance);
341-
Result<MiscImage> misc = MiscImage::Reuse(instance);
342+
MiscImage misc(instance);
342343
Result<std::optional<ChromeOsStateImage>> chrome_os_state =
343344
CF_EXPECT(ChromeOsStateImage::Reuse(instance));
344-
if (chrome_os_state.ok() && metadata.ok() && misc.ok()) {
345+
if (chrome_os_state.ok() && metadata.ok()) {
345346
Result<DiskBuilder> os_builder =
346347
OsCompositeDiskBuilder(config, instance, *chrome_os_state,
347-
*metadata, *misc, system_image_dir);
348+
*metadata, misc, system_image_dir);
348349
if (!os_builder.ok()) {
349350
creating_os_disk = true;
350351
} else {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,9 @@ Result<void> CreateDynamicDiskFiles(
159159
}
160160

161161
MetadataImage metadata = CF_EXPECT(MetadataImage::ReuseOrCreate(instance));
162-
MiscImage misc = CF_EXPECT(MiscImage::ReuseOrCreate(instance));
162+
163+
MiscImage misc(instance);
164+
CF_EXPECT(misc.Generate());
163165

164166
DiskBuilder os_disk_builder = CF_EXPECT(OsCompositeDiskBuilder(
165167
config, instance, chrome_os_state, metadata, misc, system_image_dirs));

base/cvd/cuttlefish/host/commands/assemble_cvd/disk/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ cf_cc_library(
261261
hdrs = ["misc_image.h"],
262262
deps = [
263263
"//cuttlefish/common/libs/utils:files",
264+
"//cuttlefish/host/commands/assemble_cvd/disk:image_file",
264265
"//cuttlefish/host/libs/config:cuttlefish_config",
265266
"//cuttlefish/host/libs/config:data_image",
266-
"//cuttlefish/host/libs/image_aggregator",
267267
"//cuttlefish/result",
268268
"//libbase",
269269
],

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ Result<std::vector<ImagePartition>> AndroidCompositeDiskConfig(
9191
const std::map<std::string_view, std::string> primary_paths = {
9292
{kPartitions.boot, instance.new_boot_image()},
9393
{kPartitions.init_boot, instance.init_boot_image()},
94+
{kPartitions.misc, CF_EXPECT(misc_image.Path())},
9495
{kPartitions.super, instance.new_super_image()},
9596
{kPartitions.userdata, instance.new_data_image()},
9697
{kPartitions.vbmeta, instance.new_vbmeta_image()},
@@ -139,7 +140,6 @@ Result<std::vector<ImagePartition>> AndroidCompositeDiskConfig(
139140
}
140141
}
141142

142-
partitions.push_back(misc_image.Partition());
143143
partitions.push_back(metadata_image.Partition());
144144

145145
std::optional<ImagePartition> hibernation_partition =

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

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,45 +21,30 @@
2121
#include "cuttlefish/common/libs/utils/files.h"
2222
#include "cuttlefish/host/libs/config/cuttlefish_config.h"
2323
#include "cuttlefish/host/libs/config/data_image.h"
24-
#include "cuttlefish/host/libs/image_aggregator/image_aggregator.h"
2524
#include "cuttlefish/result/result.h"
2625

2726
namespace cuttlefish {
2827

29-
Result<MiscImage> MiscImage::Reuse(
30-
const CuttlefishConfig::InstanceSpecific& instance) {
31-
std::string path = instance.PerInstancePath(Name());
32-
CF_EXPECT(FileHasContent(path));
33-
34-
LOG(DEBUG) << "misc partition image already exists";
35-
36-
return MiscImage(path);
28+
MiscImage::MiscImage(const CuttlefishConfig::InstanceSpecific& instance) {
29+
path_ = instance.PerInstancePath(kName);
30+
ready_ = FileHasContent(path_);
3731
}
3832

39-
Result<MiscImage> MiscImage::ReuseOrCreate(
40-
const CuttlefishConfig::InstanceSpecific& instance) {
41-
std::string path = instance.PerInstancePath(Name());
33+
std::string MiscImage::Name() const { return std::string(kName); }
4234

43-
Result<MiscImage> reuse_res = Reuse(instance);
44-
if (reuse_res.ok()) {
45-
return reuse_res.value();
35+
Result<std::string> MiscImage::Generate() {
36+
if (!ready_) {
37+
CF_EXPECT(CreateBlankImage(path_, 1 /* mb */, "none"),
38+
"Failed to create misc image");
39+
ready_ = true;
4640
}
47-
48-
LOG(DEBUG) << "misc partition image: creating empty at '" << path << "'";
49-
CF_EXPECT(CreateBlankImage(path, 1 /* mb */, "none"),
50-
"Failed to create misc image");
51-
return MiscImage(path);
41+
return path_;
5242
}
5343

54-
MiscImage::MiscImage(std::string path) : path_(std::move(path)) {}
55-
56-
std::string MiscImage::Name() { return "misc.img"; }
57-
58-
ImagePartition MiscImage::Partition() const {
59-
return ImagePartition{
60-
.label = "misc",
61-
.image_file_path = path_,
62-
};
44+
Result<std::string> MiscImage::Path() const {
45+
CF_EXPECT(!!ready_);
46+
return path_;
6347
}
6448

49+
6550
} // namespace cuttlefish

base/cvd/cuttlefish/host/commands/assemble_cvd/disk/misc_image.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,28 @@
1616

1717
#pragma once
1818

19+
#include "cuttlefish/host/commands/assemble_cvd/disk/image_file.h"
1920
#include "cuttlefish/host/libs/config/cuttlefish_config.h"
20-
#include "cuttlefish/host/libs/image_aggregator/image_aggregator.h"
2121
#include "cuttlefish/result/result.h"
2222

2323
namespace cuttlefish {
2424

25-
class MiscImage {
25+
class MiscImage : public ImageFile {
2626
public:
27-
static Result<MiscImage> Reuse(const CuttlefishConfig::InstanceSpecific&);
28-
static Result<MiscImage> ReuseOrCreate(
29-
const CuttlefishConfig::InstanceSpecific&);
27+
static constexpr std::string_view kName = "misc";
3028

31-
static std::string Name();
29+
MiscImage(const CuttlefishConfig::InstanceSpecific&);
3230

33-
ImagePartition Partition() const;
31+
std::string Name() const override;
32+
33+
Result<std::string> Generate() override;
34+
35+
Result<std::string> Path() const override;
3436

3537
private:
3638
MiscImage(std::string);
3739

40+
bool ready_;
3841
std::string path_;
3942
};
4043

0 commit comments

Comments
 (0)