diff options
author | David Zeuthen <zeuthen@chromium.org> | 2013-04-29 13:42:47 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-04-30 19:03:07 -0700 |
commit | a99981fda75fe0b17e96c700e3ddc93eca1cebe5 (patch) | |
tree | 88ec1486cf36f378acaf666c61a56ea533966caa /error_code.h | |
parent | 8a075a75a13a2b182c229f3095c20e69f8f8f999 (diff) |
Rename ActionExitCode to ErrorCode
Nowadays ActionExitCode is used throughout the codebase so use a more
generic name to reflect this.
BUG=chromium:216507
TEST=unit tests pass
Change-Id: I23d1d7e2676443251dbc42ed137fd018aadfa8a3
Reviewed-on: https://gerrit.chromium.org/gerrit/49512
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
Diffstat (limited to 'error_code.h')
-rw-r--r-- | error_code.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/error_code.h b/error_code.h new file mode 100644 index 00000000..db023f72 --- /dev/null +++ b/error_code.h @@ -0,0 +1,107 @@ +// Copyright (c) 2013 The Chromium OS Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_ERROR_CODE_H__ +#define CHROMEOS_PLATFORM_UPDATE_ENGINE_ERROR_CODE_H__ + +namespace chromeos_update_engine { + +// Action exit codes. +enum ErrorCode { + kErrorCodeSuccess = 0, + kErrorCodeError = 1, + kErrorCodeOmahaRequestError = 2, + kErrorCodeOmahaResponseHandlerError = 3, + kErrorCodeFilesystemCopierError = 4, + kErrorCodePostinstallRunnerError = 5, + kErrorCodeSetBootableFlagError = 6, // TODO(petkov): Unused. Recycle? + kErrorCodeInstallDeviceOpenError = 7, + kErrorCodeKernelDeviceOpenError = 8, + kErrorCodeDownloadTransferError = 9, + kErrorCodePayloadHashMismatchError = 10, + kErrorCodePayloadSizeMismatchError = 11, + kErrorCodeDownloadPayloadVerificationError = 12, + kErrorCodeDownloadNewPartitionInfoError = 13, + kErrorCodeDownloadWriteError = 14, + kErrorCodeNewRootfsVerificationError = 15, + kErrorCodeNewKernelVerificationError = 16, + kErrorCodeSignedDeltaPayloadExpectedError = 17, + kErrorCodeDownloadPayloadPubKeyVerificationError = 18, + kErrorCodePostinstallBootedFromFirmwareB = 19, + kErrorCodeDownloadStateInitializationError = 20, + kErrorCodeDownloadInvalidMetadataMagicString = 21, + kErrorCodeDownloadSignatureMissingInManifest = 22, + kErrorCodeDownloadManifestParseError = 23, + kErrorCodeDownloadMetadataSignatureError = 24, + kErrorCodeDownloadMetadataSignatureVerificationError = 25, + kErrorCodeDownloadMetadataSignatureMismatch = 26, + kErrorCodeDownloadOperationHashVerificationError = 27, + kErrorCodeDownloadOperationExecutionError = 28, + kErrorCodeDownloadOperationHashMismatch = 29, + kErrorCodeOmahaRequestEmptyResponseError = 30, + kErrorCodeOmahaRequestXMLParseError = 31, + kErrorCodeDownloadInvalidMetadataSize = 32, + kErrorCodeDownloadInvalidMetadataSignature = 33, + kErrorCodeOmahaResponseInvalid = 34, + kErrorCodeOmahaUpdateIgnoredPerPolicy = 35, + kErrorCodeOmahaUpdateDeferredPerPolicy = 36, + kErrorCodeOmahaErrorInHTTPResponse = 37, + kErrorCodeDownloadOperationHashMissingError = 38, + kErrorCodeDownloadMetadataSignatureMissingError = 39, + kErrorCodeOmahaUpdateDeferredForBackoff = 40, + kErrorCodePostinstallPowerwashError = 41, + kErrorCodeUpdateCanceledByChannelChange = 42, + + // Note: When adding new error codes, please remember to add the + // error into one of the buckets in PayloadState::UpdateFailed method so + // that the retries across URLs and the payload backoff mechanism work + // correctly for those new error codes. + + // Any code above this is sent to both Omaha and UMA as-is, except + // kErrorCodeOmahaErrorInHTTPResponse (see error code 2000 for more details). + // Codes/flags below this line is sent only to Omaha and not to UMA. + + // kErrorCodeUmaReportedMax is not an error code per se, it's just the count + // of the number of enums above. Add any new errors above this line if you + // want them to show up on UMA. Stuff below this line will not be sent to UMA + // but is used for other errors that are sent to Omaha. We don't assign any + // particular value for this enum so that it's just one more than the last + // one above and thus always represents the correct count of UMA metrics + // buckets, even when new enums are added above this line in future. See + // utils::SendErrorCodeToUma on how this enum is used. + kErrorCodeUmaReportedMax, + + // use the 2xxx range to encode HTTP errors. These errors are available in + // Dremel with the individual granularity. But for UMA purposes, all these + // errors are aggregated into one: kErrorCodeOmahaErrorInHTTPResponse. + kErrorCodeOmahaRequestHTTPResponseBase = 2000, // + HTTP response code + + // TODO(jaysri): Move out all the bit masks into separate constants + // outside the enum as part of fixing bug 34369. + // Bit flags. Remember to update the mask below for new bits. + + // Set if boot mode not normal. + kErrorCodeDevModeFlag = 1 << 31, + + // Set if resuming an interruped update. + kErrorCodeResumedFlag = 1 << 30, + + // Set if using a dev/test image as opposed to an MP-signed image. + kErrorCodeTestImageFlag = 1 << 29, + + // Set if using devserver or Omaha sandbox (using crosh autest). + kErrorCodeTestOmahaUrlFlag = 1 << 28, + + // Mask that indicates bit positions that are used to indicate special flags + // that are embedded in the error code to provide additional context about + // the system in which the error was encountered. + kErrorCodeSpecialFlags = (kErrorCodeDevModeFlag | + kErrorCodeResumedFlag | + kErrorCodeTestImageFlag | + kErrorCodeTestOmahaUrlFlag) +}; + +} // namespace chromeos_update_engine + +#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_ACTION_PROCESSOR_H__ |