Commit 32667616 authored by Josh Nohle's avatar Josh Nohle Committed by Commit Bot

[DeviceSync v2] Classify DeviceSync results as success, non-fatal, or fatal

Also updated result codes.

Bug: 951969
Change-Id: I872c02203ce80688bd8f9916d4d909a00e34e122
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1731871Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Josh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684465}
parent 782f209d
......@@ -8,6 +8,19 @@ namespace chromeos {
namespace device_sync {
// static
CryptAuthDeviceSyncResult::ResultType CryptAuthDeviceSyncResult::GetResultType(
const ResultCode& result_code) {
switch (result_code) {
case CryptAuthDeviceSyncResult::ResultCode::kSuccess:
return CryptAuthDeviceSyncResult::ResultType::kSuccess;
case CryptAuthDeviceSyncResult::ResultCode::kFinishedWithNonFatalErrors:
return CryptAuthDeviceSyncResult::ResultType::kNonFatalError;
default:
return CryptAuthDeviceSyncResult::ResultType::kFatalError;
}
}
CryptAuthDeviceSyncResult::CryptAuthDeviceSyncResult(
ResultCode result_code,
bool did_device_registry_change,
......@@ -21,8 +34,13 @@ CryptAuthDeviceSyncResult::CryptAuthDeviceSyncResult(
CryptAuthDeviceSyncResult::~CryptAuthDeviceSyncResult() = default;
CryptAuthDeviceSyncResult::ResultType CryptAuthDeviceSyncResult::GetResultType()
const {
return GetResultType(result_code_);
}
bool CryptAuthDeviceSyncResult::IsSuccess() const {
return result_code_ == ResultCode::kSuccess;
return GetResultType(result_code_) == ResultType::kSuccess;
}
bool CryptAuthDeviceSyncResult::operator==(
......@@ -70,8 +88,8 @@ std::ostream& operator<<(
case ResultCode::kErrorNoLocalDeviceMetadataInResponse:
stream << "[Error: No local device metadata in SyncMetadata response]";
break;
case ResultCode::kErrorMissingFeatureStatuses:
stream << "[Error: Feature statuses not received for device(s)]";
case ResultCode::kErrorMissingLocalDeviceFeatureStatuses:
stream << "[Error: No local device feature statuses]";
break;
case ResultCode::kErrorMissingLocalDeviceSyncBetterTogetherKey:
stream << "[Error: No DeviceSync:BetterTogether key in registry]";
......@@ -79,20 +97,6 @@ std::ostream& operator<<(
case ResultCode::kErrorDecryptingGroupPrivateKey:
stream << "[Error: Could not decrypt group private key]";
break;
case ResultCode::kErrorInconsistentGroupPrivateKeys:
stream << "[Error: Group private key from SyncMetadata response "
<< "unexpectedly disagrees with the one in local storage]";
break;
case ResultCode::kErrorDecryptingMetadata:
stream << "[Error: Could not decrypt device metadata]";
break;
case ResultCode::kErrorParsingMetadata:
stream << "[Error: Could not parse device metadata]";
break;
case ResultCode::kErrorInconsistentLocalDeviceMetadata:
stream << "[Error: Local device metadata disagrees with that in "
<< "SyncMetadata response]";
break;
case ResultCode::kErrorEncryptingGroupPrivateKey:
stream << "[Error: Could not encrypt group private key]";
break;
......
......@@ -31,13 +31,9 @@ class CryptAuthDeviceSyncResult {
kErrorNoMetadataInResponse,
kErrorAllResponseMetadataInvalid,
kErrorNoLocalDeviceMetadataInResponse,
kErrorMissingFeatureStatuses,
kErrorMissingLocalDeviceFeatureStatuses,
kErrorMissingLocalDeviceSyncBetterTogetherKey,
kErrorDecryptingGroupPrivateKey,
kErrorInconsistentGroupPrivateKeys,
kErrorDecryptingMetadata,
kErrorParsingMetadata,
kErrorInconsistentLocalDeviceMetadata,
kErrorEncryptingGroupPrivateKey,
kErrorSyncMetadataApiCallOffline,
kErrorSyncMetadataApiCallEndpointNotFound,
......@@ -73,6 +69,10 @@ class CryptAuthDeviceSyncResult {
kMaxValue = kErrorTimeoutWaitingForShareGroupPrivateKeyResponse
};
enum class ResultType { kSuccess, kNonFatalError, kFatalError };
static ResultType GetResultType(const ResultCode& result_code);
CryptAuthDeviceSyncResult(
ResultCode result_code,
bool did_device_registry_change,
......@@ -91,6 +91,7 @@ class CryptAuthDeviceSyncResult {
return did_device_registry_change_;
}
ResultType GetResultType() const;
bool IsSuccess() const;
bool operator==(const CryptAuthDeviceSyncResult& other) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment