From 5bdb9dbb7929c136e6221f239a4e65186c55e42e Mon Sep 17 00:00:00 2001 From: Sandeep Dhavale Date: Tue, 12 Jul 2022 03:40:11 +0000 Subject: [PATCH] Print OTA merge progress state in logs Currently OTA merge process prints enum values in logs in numerical form. This patch changes the log messages from numerical enums to more friendly names. Test: Manual OTA ===========Logs========== CheckTargetMergeState for vendor_dlkm_b returned: Merging ProcessUpdateState handling state: Merging CheckTargetMergeState for product_b returned: Merging CheckTargetMergeState for vendor_dlkm_b returned: MergeCompleted ProcessUpdateState handling state: Merging CheckTargetMergeState for product_b returned: MergeCompleted ProcessUpdateState handling state: MergeCompleted Bug: 234518211 Change-Id: If690d3ea86e6fe37e8b3e4bd52e87b70ae92495c --- .../include/libsnapshot/snapshot.h | 1 + fs_mgr/libsnapshot/snapshot.cpp | 30 +++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) 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