diff --git a/src/bin/api.rs b/src/bin/api.rs index d3d6a65..1af3638 100644 --- a/src/bin/api.rs +++ b/src/bin/api.rs @@ -52,7 +52,12 @@ async fn main() -> Result<(), Error> { .get_provisioner(db.clone(), lnd.clone(), exchange.clone()); worker_provisioner.init().await?; - let mut worker = Worker::new(db.clone(), worker_provisioner, status.clone()); + let mut worker = Worker::new( + db.clone(), + worker_provisioner, + settings.delete_after, + status.clone(), + ); let sender = worker.sender(); tokio::spawn(async move { loop { diff --git a/src/worker.rs b/src/worker.rs index cd391e1..83b9cc6 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -21,6 +21,7 @@ pub enum WorkJob { } pub struct Worker { + delete_after: u16, db: Box, provisioner: Box, vm_state_cache: VmStateCache, @@ -32,6 +33,7 @@ impl Worker { pub fn new( db: D, provisioner: P, + delete_after: u16, vm_state_cache: VmStateCache, ) -> Self { let (tx, rx) = unbounded_channel(); @@ -39,6 +41,7 @@ impl Worker { db: Box::new(db), provisioner: Box::new(provisioner), vm_state_cache, + delete_after, tx, rx, } @@ -73,7 +76,7 @@ impl Worker { self.provisioner.stop_vm(db_vm.id).await?; } // Delete VM if expired > 3 days - if db_vm.expires.add(Days::new(3)) < Utc::now() { + if db_vm.expires.add(Days::new(self.delete_after as u64)) < Utc::now() { info!("Deleting expired VM {}", db_vm.id); self.provisioner.delete_vm(db_vm.id).await?; }