diff --git a/fs_mgr/libsnapshot/include/libsnapshot/snapshot.h b/fs_mgr/libsnapshot/include/libsnapshot/snapshot.h index 5fe52809b..006c19f7d 100644 --- a/fs_mgr/libsnapshot/include/libsnapshot/snapshot.h +++ b/fs_mgr/libsnapshot/include/libsnapshot/snapshot.h @@ -644,6 +644,7 @@ class SnapshotManager final : public ISnapshotManager { MergeFailureCode CheckMergeConsistency(LockedFile* lock, const std::string& name, const SnapshotStatus& update_status); + auto UpdateStateToStr(enum UpdateState state); // Get status or table information about a device-mapper node with a single target. enum class TableQuery { Table, diff --git a/fs_mgr/libsnapshot/snapshot.cpp b/fs_mgr/libsnapshot/snapshot.cpp index 967070656..71e723709 100644 --- a/fs_mgr/libsnapshot/snapshot.cpp +++ b/fs_mgr/libsnapshot/snapshot.cpp @@ -988,6 +988,29 @@ bool SnapshotManager::IsSnapshotDevice(const std::string& dm_name, TargetInfo* t return true; } +auto SnapshotManager::UpdateStateToStr(const enum UpdateState state) { + switch (state) { + case None: + return "None"; + case Initiated: + return "Initiated"; + case Unverified: + return "Unverified"; + case Merging: + return "Merging"; + case MergeNeedsReboot: + return "MergeNeedsReboot"; + case MergeCompleted: + return "MergeCompleted"; + case MergeFailed: + return "MergeFailed"; + case Cancelled: + return "Cancelled"; + default: + return "Unknown"; + } +} + bool SnapshotManager::QuerySnapshotStatus(const std::string& dm_name, std::string* target_type, DmTargetSnapshot::Status* status) { DeviceMapper::TargetInfo target; @@ -1016,7 +1039,7 @@ UpdateState SnapshotManager::ProcessUpdateState(const std::function& cal const std::function& before_cancel) { while (true) { auto result = CheckMergeState(before_cancel); - LOG(INFO) << "ProcessUpdateState handling state: " << result.state; + LOG(INFO) << "ProcessUpdateState handling state: " << UpdateStateToStr(result.state); if (result.state == UpdateState::MergeFailed) { AcknowledgeMergeFailure(result.failure_code); @@ -1044,7 +1067,7 @@ auto SnapshotManager::CheckMergeState(const std::function& before_cancel } auto result = CheckMergeState(lock.get(), before_cancel); - LOG(INFO) << "CheckMergeState for snapshots returned: " << result.state; + LOG(INFO) << "CheckMergeState for snapshots returned: " << UpdateStateToStr(result.state); if (result.state == UpdateState::MergeCompleted) { // Do this inside the same lock. Failures get acknowledged without the @@ -1109,7 +1132,8 @@ auto SnapshotManager::CheckMergeState(LockedFile* lock, const std::function