Page MenuHomePhabricator

D13652.diff
No OneTemporary

D13652.diff

diff --git a/services/identity/src/grpc_services/authenticated.rs b/services/identity/src/grpc_services/authenticated.rs
--- a/services/identity/src/grpc_services/authenticated.rs
+++ b/services/identity/src/grpc_services/authenticated.rs
@@ -1,6 +1,6 @@
use std::collections::{HashMap, HashSet};
-use crate::comm_service::{backup, tunnelbroker};
+use crate::comm_service::{backup, blob, tunnelbroker};
use crate::config::CONFIG;
use crate::database::{DeviceListUpdate, PlatformDetails};
use crate::device_list::validation::DeviceListValidator;
@@ -99,14 +99,22 @@
Ok((user_id, device_id))
}
-fn spawn_delete_tunnelbroker_data_task(device_ids: Vec<String>) {
+fn spawn_delete_devices_services_data_task(
+ blob_client: &BlobServiceClient,
+ device_ids: Vec<String>,
+) {
+ let blob_client = blob_client.clone();
tokio::spawn(async move {
debug!(
"Attempting to delete Tunnelbroker data for devices: {:?}",
device_ids.as_slice()
);
- let result = tunnelbroker::delete_devices_data(&device_ids).await;
- consume_error(result);
+ let (tunnelbroker_result, blob_result) = tokio::join!(
+ tunnelbroker::delete_devices_data(&device_ids),
+ blob::remove_holders_for_devices(&blob_client, &device_ids)
+ );
+ consume_error(tunnelbroker_result);
+ consume_error(blob_result);
});
}
@@ -408,7 +416,10 @@
consume_error(result);
});
- spawn_delete_tunnelbroker_data_task([device_id].into());
+ spawn_delete_devices_services_data_task(
+ &self.blob_client,
+ [device_id].into(),
+ );
let response = Empty {};
Ok(Response::new(response))
@@ -476,7 +487,7 @@
.delete_devices_data_for_user(&user_id)
.await?;
- spawn_delete_tunnelbroker_data_task(device_ids);
+ spawn_delete_devices_services_data_task(&self.blob_client, device_ids);
let response = Empty {};
Ok(Response::new(response))
@@ -511,7 +522,10 @@
.delete_otks_table_rows_for_user_device(&user_id, &device_id)
.await?;
- spawn_delete_tunnelbroker_data_task([device_id].into());
+ spawn_delete_devices_services_data_task(
+ &self.blob_client,
+ [device_id].into(),
+ );
let response = Empty {};
Ok(Response::new(response))
@@ -537,7 +551,7 @@
));
}
- self.delete_tunnelbroker_and_backup_data(&user_id).await?;
+ self.delete_services_data_for_user(&user_id).await?;
self.db_client.delete_user(user_id.clone()).await?;
@@ -616,7 +630,7 @@
.finish(&message.opaque_login_upload)
.map_err(protocol_error_to_grpc_status)?;
- self.delete_tunnelbroker_and_backup_data(&user_id).await?;
+ self.delete_services_data_for_user(&user_id).await?;
self.db_client.delete_user(user_id.clone()).await?;
@@ -926,7 +940,7 @@
Ok(())
}
- async fn delete_tunnelbroker_and_backup_data(
+ async fn delete_services_data_for_user(
&self,
user_id: &str,
) -> Result<(), Status> {
@@ -943,10 +957,16 @@
delete_backup_result?;
debug!(
- "Attempting to delete Tunnelbroker data for devices: {:?}",
+ "Attempting to delete Blob holders and Tunnelbroker data for devices: {:?}",
device_ids
);
- tunnelbroker::delete_devices_data(&device_ids).await?;
+
+ let (tunnelbroker_result, blob_result) = tokio::join!(
+ tunnelbroker::delete_devices_data(&device_ids),
+ blob::remove_holders_for_devices(&self.blob_client, &device_ids)
+ );
+ tunnelbroker_result?;
+ blob_result?;
Ok(())
}

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 10, 8:35 AM (16 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2270391
Default Alt Text
D13652.diff (3 KB)

Event Timeline