Merge "libsnapshot: Make the new Open calls look more like MapUpdateSnapshot." am: 9ec8c31afb am: ef77597707 am: d24bfd33c9

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1433352

Change-Id: I146b9f0d3c2f992d06bd6244f594b00dbd0611e2
This commit is contained in:
David Anderson 2020-09-22 19:32:18 +00:00 committed by Automerger Merge Worker
commit 52c8bd65ce
5 changed files with 22 additions and 30 deletions

View file

@ -39,11 +39,9 @@ class MockSnapshotManager : public ISnapshotManager {
std::string* snapshot_path), std::string* snapshot_path),
(override)); (override));
MOCK_METHOD(std::unique_ptr<ICowWriter>, OpenSnapshotWriter, MOCK_METHOD(std::unique_ptr<ICowWriter>, OpenSnapshotWriter,
(const std::string& partition_name, std::chrono::milliseconds timeout_ms), (const android::fs_mgr::CreateLogicalPartitionParams& params), (override));
(override));
MOCK_METHOD(std::unique_ptr<FileDescriptor>, OpenSnapshotReader, MOCK_METHOD(std::unique_ptr<FileDescriptor>, OpenSnapshotReader,
(const std::string& partition_name, std::chrono::milliseconds timeout_ms), (const android::fs_mgr::CreateLogicalPartitionParams& params), (override));
(override));
MOCK_METHOD(bool, UnmapUpdateSnapshot, (const std::string& target_partition_name), (override)); MOCK_METHOD(bool, UnmapUpdateSnapshot, (const std::string& target_partition_name), (override));
MOCK_METHOD(bool, NeedSnapshotsInFirstStageMount, (), (override)); MOCK_METHOD(bool, NeedSnapshotsInFirstStageMount, (), (override));
MOCK_METHOD(bool, CreateLogicalAndSnapshotPartitions, MOCK_METHOD(bool, CreateLogicalAndSnapshotPartitions,

View file

@ -187,14 +187,15 @@ class ISnapshotManager {
virtual bool MapUpdateSnapshot(const android::fs_mgr::CreateLogicalPartitionParams& params, virtual bool MapUpdateSnapshot(const android::fs_mgr::CreateLogicalPartitionParams& params,
std::string* snapshot_path) = 0; std::string* snapshot_path) = 0;
// Create an ICowWriter to build a snapshot against a target partition. // Create an ICowWriter to build a snapshot against a target partition. The partition name must
// be suffixed.
virtual std::unique_ptr<ICowWriter> OpenSnapshotWriter( virtual std::unique_ptr<ICowWriter> OpenSnapshotWriter(
const std::string& partition_name, std::chrono::milliseconds timeout_ms = {}) = 0; const android::fs_mgr::CreateLogicalPartitionParams& params) = 0;
// Open a snapshot for reading. A file-like interface is provided through the FileDescriptor. // Open a snapshot for reading. A file-like interface is provided through the FileDescriptor.
// In this mode, writes are not supported. // In this mode, writes are not supported. The partition name must be suffixed.
virtual std::unique_ptr<FileDescriptor> OpenSnapshotReader( virtual std::unique_ptr<FileDescriptor> OpenSnapshotReader(
const std::string& partition_name, std::chrono::milliseconds timeout_ms = {}) = 0; const android::fs_mgr::CreateLogicalPartitionParams& params) = 0;
// Unmap a snapshot device or CowWriter that was previously opened with MapUpdateSnapshot, // Unmap a snapshot device or CowWriter that was previously opened with MapUpdateSnapshot,
// OpenSnapshotWriter, or OpenSnapshotReader. All outstanding open descriptors, writers, // OpenSnapshotWriter, or OpenSnapshotReader. All outstanding open descriptors, writers,
@ -310,9 +311,9 @@ class SnapshotManager final : public ISnapshotManager {
bool MapUpdateSnapshot(const CreateLogicalPartitionParams& params, bool MapUpdateSnapshot(const CreateLogicalPartitionParams& params,
std::string* snapshot_path) override; std::string* snapshot_path) override;
std::unique_ptr<ICowWriter> OpenSnapshotWriter( std::unique_ptr<ICowWriter> OpenSnapshotWriter(
const std::string& partition_name, std::chrono::milliseconds timeout_ms = {}) override; const android::fs_mgr::CreateLogicalPartitionParams& params) override;
std::unique_ptr<FileDescriptor> OpenSnapshotReader( std::unique_ptr<FileDescriptor> OpenSnapshotReader(
const std::string& partition_name, std::chrono::milliseconds timeout_ms = {}) override; const android::fs_mgr::CreateLogicalPartitionParams& params) override;
bool UnmapUpdateSnapshot(const std::string& target_partition_name) override; bool UnmapUpdateSnapshot(const std::string& target_partition_name) override;
bool NeedSnapshotsInFirstStageMount() override; bool NeedSnapshotsInFirstStageMount() override;
bool CreateLogicalAndSnapshotPartitions( bool CreateLogicalAndSnapshotPartitions(

View file

@ -36,10 +36,10 @@ class SnapshotManagerStub : public ISnapshotManager {
const chromeos_update_engine::DeltaArchiveManifest& manifest) override; const chromeos_update_engine::DeltaArchiveManifest& manifest) override;
bool MapUpdateSnapshot(const android::fs_mgr::CreateLogicalPartitionParams& params, bool MapUpdateSnapshot(const android::fs_mgr::CreateLogicalPartitionParams& params,
std::string* snapshot_path) override; std::string* snapshot_path) override;
std::unique_ptr<ICowWriter> OpenSnapshotWriter(const std::string& partition_name, std::unique_ptr<ICowWriter> OpenSnapshotWriter(
std::chrono::milliseconds timeout_ms) override; const android::fs_mgr::CreateLogicalPartitionParams& params) override;
std::unique_ptr<FileDescriptor> OpenSnapshotReader( std::unique_ptr<FileDescriptor> OpenSnapshotReader(
const std::string& partition_name, std::chrono::milliseconds timeout_ms = {}) override; const android::fs_mgr::CreateLogicalPartitionParams& params) override;
bool UnmapUpdateSnapshot(const std::string& target_partition_name) override; bool UnmapUpdateSnapshot(const std::string& target_partition_name) override;
bool NeedSnapshotsInFirstStageMount() override; bool NeedSnapshotsInFirstStageMount() override;
bool CreateLogicalAndSnapshotPartitions( bool CreateLogicalAndSnapshotPartitions(

View file

@ -2442,25 +2442,18 @@ bool SnapshotManager::MapUpdateSnapshot(const CreateLogicalPartitionParams& para
} }
std::unique_ptr<ICowWriter> SnapshotManager::OpenSnapshotWriter( std::unique_ptr<ICowWriter> SnapshotManager::OpenSnapshotWriter(
const std::string& partition_name, std::chrono::milliseconds timeout_ms) { const android::fs_mgr::CreateLogicalPartitionParams& params) {
if (!IsCompressionEnabled()) { (void)params;
LOG(ERROR) << "OpenSnapshotWriter can only be called in compression mode.";
return nullptr;
}
(void)partition_name; LOG(ERROR) << "OpenSnapshotWriter not yet implemented";
(void)timeout_ms;
// Not yet implemented.
return nullptr; return nullptr;
} }
std::unique_ptr<FileDescriptor> SnapshotManager::OpenSnapshotReader( std::unique_ptr<FileDescriptor> SnapshotManager::OpenSnapshotReader(
const std::string& partition_name, std::chrono::milliseconds timeout_ms) { const android::fs_mgr::CreateLogicalPartitionParams& params) {
(void)partition_name; (void)params;
(void)timeout_ms;
// Not yet implemented. LOG(ERROR) << "OpenSnapshotReader not yet implemented";
return nullptr; return nullptr;
} }

View file

@ -130,14 +130,14 @@ ISnapshotMergeStats* SnapshotManagerStub::GetSnapshotMergeStatsInstance() {
return &snapshot_merge_stats; return &snapshot_merge_stats;
} }
std::unique_ptr<ICowWriter> SnapshotManagerStub::OpenSnapshotWriter(const std::string&, std::unique_ptr<ICowWriter> SnapshotManagerStub::OpenSnapshotWriter(
std::chrono::milliseconds) { const CreateLogicalPartitionParams&) {
LOG(ERROR) << __FUNCTION__ << " should never be called."; LOG(ERROR) << __FUNCTION__ << " should never be called.";
return nullptr; return nullptr;
} }
std::unique_ptr<FileDescriptor> SnapshotManagerStub::OpenSnapshotReader(const std::string&, std::unique_ptr<FileDescriptor> SnapshotManagerStub::OpenSnapshotReader(
std::chrono::milliseconds) { const CreateLogicalPartitionParams&) {
LOG(ERROR) << __FUNCTION__ << " should never be called."; LOG(ERROR) << __FUNCTION__ << " should never be called.";
return nullptr; return nullptr;
} }