diff options
author | Kelvin Zhang <zhangkelvin@google.com> | 2023-12-04 21:41:56 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-12-04 21:41:56 +0000 |
commit | 10eb0870a6d74978ad8399a8979579d1117579a6 (patch) | |
tree | 415fba94797f79e36b388e9257f570f1e55b276b | |
parent | 13d28e0c059ab6076228b857e8eec3c7481f88ee (diff) | |
parent | be0a349a6def612267aa3640c18fe4b0b79a3adc (diff) | |
download | update_engine-10eb0870a6d74978ad8399a8979579d1117579a6.tar.gz |
Add specific error codes to enable better error handling am: be0a349a6d
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/2857466
Change-Id: I0b3c65370ff18e615c6b853f934cfc7951d5c213
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | aosp/update_attempter_android.cc | 20 | ||||
-rw-r--r-- | common/error_code.h | 2 | ||||
-rw-r--r-- | common/error_code_utils.cc | 4 | ||||
-rw-r--r-- | metrics_utils.cc | 4 |
4 files changed, 20 insertions, 10 deletions
diff --git a/aosp/update_attempter_android.cc b/aosp/update_attempter_android.cc index ea83d9a8..0f4b2e4b 100644 --- a/aosp/update_attempter_android.cc +++ b/aosp/update_attempter_android.cc @@ -242,18 +242,18 @@ bool UpdateAttempterAndroid::ApplyPayload( const vector<string>& key_value_pair_headers, Error* error) { if (status_ == UpdateStatus::UPDATED_NEED_REBOOT) { - return LogAndSetGenericError( - error, - __LINE__, - __FILE__, - "An update already applied, waiting for reboot"); + return LogAndSetError(error, + __LINE__, + __FILE__, + "An update already applied, waiting for reboot", + ErrorCode::kUpdateAlreadyInstalled); } if (processor_->IsRunning()) { - return LogAndSetGenericError( - error, - __LINE__, - __FILE__, - "Already processing an update, cancel it first."); + return LogAndSetError(error, + __LINE__, + __FILE__, + "Already processing an update, cancel it first.", + ErrorCode::kUpdateProcessing); } DCHECK_EQ(status_, UpdateStatus::IDLE); diff --git a/common/error_code.h b/common/error_code.h index 79245797..8954f720 100644 --- a/common/error_code.h +++ b/common/error_code.h @@ -88,6 +88,8 @@ enum class ErrorCode : int { kPackageExcludedFromUpdate = 62, kPostInstallMountError = 63, kOverlayfsenabledError = 64, + kUpdateProcessing = 65, + kUpdateAlreadyInstalled = 66, // VERY IMPORTANT! When adding new error codes: // diff --git a/common/error_code_utils.cc b/common/error_code_utils.cc index 12a98bf8..421e1249 100644 --- a/common/error_code_utils.cc +++ b/common/error_code_utils.cc @@ -177,6 +177,10 @@ string ErrorCodeToString(ErrorCode code) { return "ErrorCode::kPostInstallMountError"; case ErrorCode::kOverlayfsenabledError: return "ErrorCode::kOverlayfsenabledError"; + case ErrorCode::kUpdateProcessing: + return "ErrorCode::kUpdateProcessing"; + case ErrorCode::kUpdateAlreadyInstalled: + return "ErrorCode::kUpdateAlreadyInstalled"; // Don't add a default case to let the compiler warn about newly added // error codes which should be added here. } diff --git a/metrics_utils.cc b/metrics_utils.cc index 94a05201..35bbcf4c 100644 --- a/metrics_utils.cc +++ b/metrics_utils.cc @@ -138,6 +138,8 @@ metrics::AttemptResult GetAttemptResult(ErrorCode code) { case ErrorCode::kTestImageFlag: case ErrorCode::kTestOmahaUrlFlag: case ErrorCode::kSpecialFlags: + case ErrorCode::kUpdateProcessing: + case ErrorCode::kUpdateAlreadyInstalled: break; } @@ -245,6 +247,8 @@ metrics::DownloadErrorCode GetDownloadErrorCode(ErrorCode code) { case ErrorCode::kNotEnoughSpace: case ErrorCode::kDeviceCorrupted: case ErrorCode::kPackageExcludedFromUpdate: + case ErrorCode::kUpdateProcessing: + case ErrorCode::kUpdateAlreadyInstalled: break; // Special flags. These can't happen (we mask them out above) but |