Page MenuHomePhabricator

D13942.diff
No OneTemporary

D13942.diff

diff --git a/services/backup/src/constants.rs b/services/backup/src/constants.rs
--- a/services/backup/src/constants.rs
+++ b/services/backup/src/constants.rs
@@ -43,3 +43,12 @@
pub const ATTACHMENTS: &str = "attachments";
}
}
+
+// Error Types
+
+pub mod error_types {
+ pub const DDB_ERROR: &str = "DDB Error";
+ pub const AUTH_ERROR: &str = "Auth Error";
+ pub const BLOB_ERROR: &str = "Blob Error";
+ pub const WS_ERROR: &str = "WS Error";
+}
diff --git a/services/backup/src/database/mod.rs b/services/backup/src/database/mod.rs
--- a/services/backup/src/database/mod.rs
+++ b/services/backup/src/database/mod.rs
@@ -5,7 +5,9 @@
backup_item::{BackupItem, OrderedBackupItem},
log_item::LogItem,
};
-use crate::constants::{backup_table, log_table, LOG_DEFAULT_PAGE_SIZE};
+use crate::constants::{
+ backup_table, error_types, log_table, LOG_DEFAULT_PAGE_SIZE,
+};
use aws_sdk_dynamodb::{
operation::get_item::GetItemOutput,
types::{AttributeValue, DeleteRequest, ReturnValue, WriteRequest},
@@ -48,7 +50,10 @@
.send()
.await
.map_err(|e| {
- error!("DynamoDB client failed to put backup item");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to put backup item"
+ );
Error::AwsSdk(e.into())
})?;
@@ -70,7 +75,10 @@
.send()
.await
.map_err(|e| {
- error!("DynamoDB client failed to find backup item");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to find backup item"
+ );
Error::AwsSdk(e.into())
})?;
@@ -112,7 +120,10 @@
.send()
.await
.map_err(|e| {
- error!("DynamoDB client failed to remove backup item");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to remove backup item"
+ );
Error::AwsSdk(e.into())
})?;
@@ -191,7 +202,10 @@
.send()
.await
.map_err(|e| {
- error!("DynamoDB client failed to put log item");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to put log item"
+ );
Error::AwsSdk(e.into())
})?;
@@ -238,7 +252,10 @@
}
let response = query.send().await.map_err(|e| {
- error!("DynamoDB client failed to fetch logs");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to fetch logs"
+ );
Error::AwsSdk(e.into())
})?;
@@ -346,7 +363,10 @@
.send()
.await
.map_err(|e| {
- error!("DynamoDB client failed to fetch backups");
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "DynamoDB client failed to fetch backups"
+ );
Error::AwsSdk(e.into())
})?;
diff --git a/services/backup/src/error.rs b/services/backup/src/error.rs
--- a/services/backup/src/error.rs
+++ b/services/backup/src/error.rs
@@ -12,6 +12,8 @@
use reqwest::StatusCode;
use tracing::{error, trace, warn};
+use crate::constants::error_types;
+
#[derive(
Debug, derive_more::Display, derive_more::From, derive_more::Error,
)]
@@ -49,11 +51,17 @@
BackupError::BlobError(
err @ (BlobServiceError::URLError(_) | BlobServiceError::NotFound),
) => {
- error!("Unexpected blob error: {err}");
+ error!(
+ errorType = error_types::BLOB_ERROR,
+ "Unexpected blob error: {err}"
+ );
ErrorInternalServerError("server error")
}
BackupError::AuthError(err) => {
- error!("Unexpected auth error: {err}");
+ error!(
+ errorType = error_types::AUTH_ERROR,
+ "Unexpected auth error: {err}"
+ );
ErrorInternalServerError("server error")
}
BackupError::DB(err) => match err {
@@ -66,7 +74,10 @@
ErrorServiceUnavailable("please retry")
}
unexpected => {
- error!("Received an unexpected DB error: {0:?} - {0}", unexpected);
+ error!(
+ errorType = error_types::DDB_ERROR,
+ "Received an unexpected DB error: {0:?} - {0}", unexpected
+ );
ErrorInternalServerError("server error")
}
},
diff --git a/services/backup/src/http/handlers/log.rs b/services/backup/src/http/handlers/log.rs
--- a/services/backup/src/http/handlers/log.rs
+++ b/services/backup/src/http/handlers/log.rs
@@ -1,4 +1,4 @@
-use crate::constants::WS_FRAME_SIZE;
+use crate::constants::{error_types, WS_FRAME_SIZE};
use crate::database::{log_item::LogItem, DatabaseClient};
use actix::fut::ready;
use actix::{Actor, ActorContext, ActorFutureExt, AsyncContext, StreamHandler};
@@ -109,7 +109,7 @@
);
}
Err(err) => {
- error!("Error: {err:?}");
+ error!(errorType = error_types::WS_ERROR, "Error: {err:?}");
Self::spawn_response_future(
ctx,
@@ -130,7 +130,7 @@
let responses = match responses {
Ok(responses) => responses,
Err(err) => {
- error!("Error: {err:?}");
+ error!(errorType = error_types::WS_ERROR, "Error: {err:?}");
vec![LogWSResponse::ServerError]
}
};
@@ -140,6 +140,7 @@
Ok(bytes) => ctx.binary(bytes),
Err(error) => {
error!(
+ errorType = error_types::WS_ERROR,
"Error serializing a response: {response:?}. Error: {error}"
);
}

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 22, 8:26 PM (16 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2692377
Default Alt Text
D13942.diff (5 KB)

Event Timeline