123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //
- // Copyright (C) 2017 The Android Open Source Project
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- #ifndef UPDATE_ENGINE_METRICS_CONSTANTS_H_
- #define UPDATE_ENGINE_METRICS_CONSTANTS_H_
- namespace chromeos_update_engine {
- namespace metrics {
- // The possible outcomes when checking for updates.
- //
- // This is used in the UpdateEngine.Check.Result histogram.
- enum class CheckResult {
- kUpdateAvailable, // Response indicates an update is available.
- kNoUpdateAvailable, // Response indicates no updates are available.
- kDownloadError, // Error downloading response from Omaha.
- kParsingError, // Error parsing response.
- kRebootPending, // No update check was performed a reboot is pending.
- kNumConstants,
- kUnset = -1
- };
- // Possible ways a device can react to a new update being available.
- //
- // This is used in the UpdateEngine.Check.Reaction histogram.
- enum class CheckReaction {
- kUpdating, // Device proceeds to download and apply update.
- kIgnored, // Device-policy dictates ignoring the update.
- kDeferring, // Device-policy dictates waiting.
- kBackingOff, // Previous errors dictates waiting.
- kNumConstants,
- kUnset = -1
- };
- // The possible ways that downloading from a HTTP or HTTPS server can fail.
- //
- // This is used in the UpdateEngine.Check.DownloadErrorCode and
- // UpdateEngine.Attempt.DownloadErrorCode histograms.
- enum class DownloadErrorCode {
- // Errors that can happen in the field. See http://crbug.com/355745
- // for how we plan to add more detail in the future.
- kDownloadError = 0, // Error downloading data from server.
- // IMPORTANT: When adding a new error code, add at the bottom of the
- // above block and before the kInputMalformed field. This
- // is to ensure that error codes are not reordered.
- // This error code is used to convey that malformed input was given
- // to the utils::GetDownloadErrorCode() function. This should never
- // happen but if it does it's because of an internal update_engine
- // error and we're interested in knowing this.
- kInputMalformed = 100,
- // Bucket for capturing HTTP status codes not in the 200-599
- // range. This should never happen in practice but if it does we
- // want to know.
- kHttpStatusOther = 101,
- // Above 200 and below 600, the value is the HTTP status code.
- kHttpStatus200 = 200,
- kNumConstants = 600,
- kUnset = -1
- };
- // Possible ways an update attempt can end.
- //
- // This is used in the UpdateEngine.Attempt.Result histogram.
- enum class AttemptResult {
- kUpdateSucceeded, // The update succeeded.
- kInternalError, // An internal error occurred.
- kPayloadDownloadError, // Failure while downloading payload.
- kMetadataMalformed, // Metadata was malformed.
- kOperationMalformed, // An operation was malformed.
- kOperationExecutionError, // An operation failed to execute.
- kMetadataVerificationFailed, // Metadata verification failed.
- kPayloadVerificationFailed, // Payload verification failed.
- kVerificationFailed, // Root or Kernel partition verification failed.
- kPostInstallFailed, // The postinstall step failed.
- kAbnormalTermination, // The attempt ended abnormally.
- kUpdateCanceled, // Update canceled by the user.
- kUpdateSucceededNotActive, // Update succeeded but the new slot is not
- // active.
- kNumConstants,
- kUnset = -1
- };
- // Possible ways the device is connected to the Internet.
- //
- // This is used in the UpdateEngine.Attempt.ConnectionType histogram.
- enum class ConnectionType {
- kUnknown = 0, // Unknown.
- kEthernet = 1, // Ethernet.
- kWifi = 2, // Wireless.
- kWimax = 3, // WiMax.
- kBluetooth = 4, // Bluetooth.
- kCellular = 5, // Cellular.
- kTetheredEthernet = 6, // Tethered (Ethernet).
- kTetheredWifi = 7, // Tethered (Wifi).
- kDisconnected = 8, // Disconnected.
- kNumConstants,
- kUnset = -1
- };
- // Possible ways a rollback can end.
- //
- // This is used in the UpdateEngine.Rollback histogram.
- enum class RollbackResult {
- kFailed,
- kSuccess,
- kNumConstants
- };
- } // namespace metrics
- } // namespace chromeos_update_engine
- #endif // UPDATE_ENGINE_METRICS_CONSTANTS_H_
|