add sync_cert method to domain manager
This commit is contained in:
parent
6da68dc042
commit
dbc912a9d3
@ -125,6 +125,11 @@ pub trait Manager: Sync + Send {
|
|||||||
domain: &domain::Name,
|
domain: &domain::Name,
|
||||||
) -> Result<sync::Arc<dyn origin::Origin>, GetOriginError>;
|
) -> Result<sync::Arc<dyn origin::Origin>, GetOriginError>;
|
||||||
|
|
||||||
|
fn sync_cert<'mgr>(
|
||||||
|
&'mgr self,
|
||||||
|
domain: domain::Name,
|
||||||
|
) -> pin::Pin<Box<dyn future::Future<Output = Result<(), unexpected::Error>> + Send + 'mgr>>;
|
||||||
|
|
||||||
fn sync_with_config<'mgr>(
|
fn sync_with_config<'mgr>(
|
||||||
&'mgr self,
|
&'mgr self,
|
||||||
domain: domain::Name,
|
domain: domain::Name,
|
||||||
@ -223,6 +228,20 @@ impl Manager for ManagerImpl {
|
|||||||
Ok(origin)
|
Ok(origin)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn sync_cert<'mgr>(
|
||||||
|
&'mgr self,
|
||||||
|
domain: domain::Name,
|
||||||
|
) -> pin::Pin<Box<dyn future::Future<Output = Result<(), unexpected::Error>> + Send + 'mgr>>
|
||||||
|
{
|
||||||
|
Box::pin(async move {
|
||||||
|
if let Some(ref acme_manager) = self.acme_manager {
|
||||||
|
acme_manager.sync_domain(domain.clone()).await?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
fn sync_with_config<'mgr>(
|
fn sync_with_config<'mgr>(
|
||||||
&'mgr self,
|
&'mgr self,
|
||||||
domain: domain::Name,
|
domain: domain::Name,
|
||||||
@ -243,9 +262,7 @@ impl Manager for ManagerImpl {
|
|||||||
|
|
||||||
self.domain_config_store.set(&domain, &config)?;
|
self.domain_config_store.set(&domain, &config)?;
|
||||||
|
|
||||||
if let Some(ref acme_manager) = self.acme_manager {
|
self.sync_cert(domain).await?;
|
||||||
acme_manager.sync_domain(domain.clone()).await?;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
|
11
src/main.rs
11
src/main.rs
@ -205,7 +205,6 @@ async fn main() {
|
|||||||
if let Some(https_params) = https_params {
|
if let Some(https_params) = https_params {
|
||||||
// Periodically refresh all domain certs, including the http_domain passed in the Cli opts
|
// Periodically refresh all domain certs, including the http_domain passed in the Cli opts
|
||||||
wait_group.push({
|
wait_group.push({
|
||||||
let https_params = https_params.clone();
|
|
||||||
let domain_manager = domain_manager.clone();
|
let domain_manager = domain_manager.clone();
|
||||||
let http_domain = config.http_domain.clone();
|
let http_domain = config.http_domain.clone();
|
||||||
let canceller = canceller.clone();
|
let canceller = canceller.clone();
|
||||||
@ -219,9 +218,8 @@ async fn main() {
|
|||||||
_ = canceller.cancelled() => return,
|
_ = canceller.cancelled() => return,
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = https_params
|
_ = domain_manager
|
||||||
.domain_acme_manager
|
.sync_cert(http_domain.clone())
|
||||||
.sync_domain(http_domain.clone())
|
|
||||||
.await
|
.await
|
||||||
.inspect_err(|err| {
|
.inspect_err(|err| {
|
||||||
log::error!(
|
log::error!(
|
||||||
@ -238,9 +236,8 @@ async fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for domain in domains_iter.unwrap().into_iter() {
|
for domain in domains_iter.unwrap().into_iter() {
|
||||||
let _ = https_params
|
let _ = domain_manager
|
||||||
.domain_acme_manager
|
.sync_cert(domain.clone())
|
||||||
.sync_domain(domain.clone())
|
|
||||||
.await
|
.await
|
||||||
.inspect_err(|err| {
|
.inspect_err(|err| {
|
||||||
log::error!(
|
log::error!(
|
||||||
|
Loading…
Reference in New Issue
Block a user