mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-17 20:38:06 +00:00
Resilient connection (#153)
This commit is contained in:
@ -30,6 +30,7 @@ url = { version = "2.1", features = ["serde"] }
|
||||
uuid = { version = "0.8", features = ["serde", "v4"] }
|
||||
onefuzz = { path = "../onefuzz" }
|
||||
storage-queue = { path = "../storage-queue" }
|
||||
reqwest-retry = { path = "../reqwest-retry" }
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3.1"
|
||||
|
@ -8,6 +8,7 @@ use onefuzz::{
|
||||
syncdir::SyncedDir,
|
||||
};
|
||||
use reqwest::Url;
|
||||
use reqwest_retry::SendRetry;
|
||||
use serde::Deserialize;
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
@ -117,7 +118,7 @@ async fn try_delete_blob(input_url: Url) -> Result<()> {
|
||||
let http_client = reqwest::Client::new();
|
||||
match http_client
|
||||
.delete(input_url)
|
||||
.send()
|
||||
.send_retry_default()
|
||||
.await?
|
||||
.error_for_status_with_body()
|
||||
.await
|
||||
|
@ -10,6 +10,7 @@ use onefuzz::{
|
||||
syncdir::SyncedDir,
|
||||
};
|
||||
use reqwest::Url;
|
||||
use reqwest_retry::SendRetry;
|
||||
use serde::Deserialize;
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
@ -116,7 +117,7 @@ async fn try_delete_blob(input_url: Url) -> Result<()> {
|
||||
let http_client = reqwest::Client::new();
|
||||
match http_client
|
||||
.delete(input_url)
|
||||
.send()
|
||||
.send_retry_default()
|
||||
.await?
|
||||
.error_for_status_with_body()
|
||||
.await
|
||||
|
@ -8,7 +8,9 @@ use onefuzz::{
|
||||
syncdir::SyncedDir,
|
||||
telemetry::Event::{new_report, new_unable_to_reproduce, new_unique_report},
|
||||
};
|
||||
|
||||
use reqwest::StatusCode;
|
||||
use reqwest_retry::SendRetry;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::path::PathBuf;
|
||||
use uuid::Uuid;
|
||||
@ -65,7 +67,7 @@ async fn upload_deduped(report: &CrashReport, container: &BlobContainerUrl) -> R
|
||||
.json(report)
|
||||
// Conditional PUT, only if-not-exists.
|
||||
.header("If-None-Match", "*")
|
||||
.send()
|
||||
.send_retry_default()
|
||||
.await?;
|
||||
if result.status() != StatusCode::NOT_MODIFIED {
|
||||
event!(new_unique_report;);
|
||||
@ -77,7 +79,7 @@ async fn upload_report(report: &CrashReport, container: &BlobContainerUrl) -> Re
|
||||
event!(new_report;);
|
||||
let blob = BlobClient::new();
|
||||
let url = container.blob(report.blob_name()).url();
|
||||
blob.put(url).json(report).send().await?;
|
||||
blob.put(url).json(report).send_retry_default().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -85,7 +87,7 @@ async fn upload_no_repro(report: &NoCrash, container: &BlobContainerUrl) -> Resu
|
||||
event!(new_unable_to_reproduce;);
|
||||
let blob = BlobClient::new();
|
||||
let url = container.blob(report.blob_name()).url();
|
||||
blob.put(url).json(report).send().await?;
|
||||
blob.put(url).json(report).send_retry_default().await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user