fix: readded tokio retry to get ca cert for a nats cluster which was accidentally removed during a refactor #229
@@ -1,3 +1,7 @@
|
|||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
|
use tokio_retry::{Retry, strategy::ExponentialBackoff};
|
||||||
|
|
||||||
use crate::modules::{
|
use crate::modules::{
|
||||||
cert_manager::{
|
cert_manager::{
|
||||||
capability::{CertificateManagement, CertificateManagementConfig},
|
capability::{CertificateManagement, CertificateManagementConfig},
|
||||||
@@ -69,9 +73,28 @@ where
|
|||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
self.topology
|
let strategy = ExponentialBackoff::from_millis(250)
|
||||||
|
.factor(2)
|
||||||
|
.max_delay(Duration::from_millis(1000))
|
||||||
|
.take(10);
|
||||||
|
|
||||||
|
Retry::spawn(strategy, || async {
|
||||||
|
log::debug!("Attempting CA cert fetch");
|
||||||
|
|
||||||
|
let res = self
|
||||||
|
.topology
|
||||||
.get_ca_certificate(root_ca_cert_name.into(), &root_ca_config)
|
.get_ca_certificate(root_ca_cert_name.into(), &root_ca_config)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
match res {
|
||||||
|
Ok(cert) => Ok(cert),
|
||||||
|
Err(e) => {
|
||||||
|
log::warn!("Retryable error: {:?}", e);
|
||||||
|
Err(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())
|
.map_err(|e| format!("Retries exhausted: {:?}", e))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user