Compare commits

...

4 Commits

Author SHA1 Message Date
b6c4ab43fc fix: ensure now & expired are exactly the same
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-16 10:11:59 +01:00
51b8f42407 fix: delete unpaid only if created and expires timestamp are the same
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-16 10:10:05 +01:00
ee01eae498 chore: disable exchange rate logs
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-16 10:04:45 +01:00
e463e06a35 fix: missing country code in invoice template
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-02 10:57:33 +01:00
4 changed files with 9 additions and 5 deletions

View File

@ -98,6 +98,7 @@
<div>{{user.state}}</div> <div>{{user.state}}</div>
<div>{{user.postcode}}</div> <div>{{user.postcode}}</div>
<div>{{user.country}}</div> <div>{{user.country}}</div>
<div>{{user.country_code}}</div>
<div>{{user.tax_id}}</div> <div>{{user.tax_id}}</div>
</div> </div>
{{#company}} {{#company}}
@ -110,6 +111,7 @@
<div>{{company.state}}</div> <div>{{company.state}}</div>
<div>{{company.postcode}}</div> <div>{{company.postcode}}</div>
<div>{{company.country}}</div> <div>{{company.country}}</div>
<div>{{company.country_code}}</div>
<div>{{company.tax_id}}</div> <div>{{company.tax_id}}</div>
</div> </div>
{{/company}} {{/company}}

View File

@ -1,6 +1,6 @@
use anyhow::{anyhow, ensure, Result}; use anyhow::{anyhow, ensure, Result};
use lnvps_db::async_trait; use lnvps_db::async_trait;
use log::info; use log::{info, trace};
use rocket::serde::Deserialize; use rocket::serde::Deserialize;
use schemars::JsonSchema; use schemars::JsonSchema;
use serde::Serialize; use serde::Serialize;
@ -210,7 +210,7 @@ impl ExchangeRateService for DefaultRateCache {
async fn set_rate(&self, ticker: Ticker, amount: f32) { async fn set_rate(&self, ticker: Ticker, amount: f32) {
let mut cache = self.cache.write().await; let mut cache = self.cache.write().await;
info!("{}: {}", &ticker, amount); trace!("{}: {}", &ticker, amount);
cache.insert(ticker, amount); cache.insert(ticker, amount);
} }

View File

@ -459,6 +459,7 @@ impl LNVpsProvisioner {
// insert custom templates // insert custom templates
let template_id = self.db.insert_custom_vm_template(&template).await?; let template_id = self.db.insert_custom_vm_template(&template).await?;
let now = Utc::now();
let mut new_vm = Vm { let mut new_vm = Vm {
id: 0, id: 0,
host_id: host.host.id, host_id: host.host.id,
@ -467,8 +468,8 @@ impl LNVpsProvisioner {
template_id: None, template_id: None,
custom_template_id: Some(template_id), custom_template_id: Some(template_id),
ssh_key_id: ssh_key.id, ssh_key_id: ssh_key.id,
created: Utc::now(), created: now,
expires: Utc::now(), expires: now,
disk_id: pick_disk.disk.id, disk_id: pick_disk.disk.id,
mac_address: "ff:ff:ff:ff:ff:ff".to_string(), mac_address: "ff:ff:ff:ff:ff:ff".to_string(),
deleted: false, deleted: false,

View File

@ -196,7 +196,8 @@ impl Worker {
self.check_vm(vm).await?; self.check_vm(vm).await?;
// delete vm if not paid (in new state) // delete vm if not paid (in new state)
if vm.expires < Utc::now().sub(Days::new(1)) { if vm.created == vm.expires && !vm.deleted && vm.expires < Utc::now().sub(Days::new(1))
{
info!("Deleting unpaid VM {}", vm.id); info!("Deleting unpaid VM {}", vm.id);
self.provisioner.delete_vm(vm.id).await?; self.provisioner.delete_vm(vm.id).await?;
} }