feat: return ip info

This commit is contained in:
2024-11-26 19:14:31 +00:00
parent 54acb09d0f
commit fd4af065f6
7 changed files with 17 additions and 9 deletions

View File

@ -25,9 +25,11 @@ impl Hydrate for Vm {
}
async fn hydrate_down(&mut self, db: &Box<dyn LNVpsDb>) -> Result<()> {
let payments = db.list_vm_payment(self.id).await?;
//let payments = db.list_vm_payment(self.id).await?;
let ips = db.list_vm_ip_assignments(self.id).await?;
self.payments = Some(payments);
//self.payments = Some(payments);
self.ip_assignments = Some(ips);
Ok(())
}
}

View File

@ -88,10 +88,10 @@ pub trait LNVpsDb: Sync + Send {
async fn insert_vm_ip_assignment(&self, ip_assignment: &VmIpAssignment) -> Result<u64>;
/// List VM ip assignments
async fn get_vm_ip_assignments(&self, vm_id: u64) -> Result<Vec<VmIpAssignment>>;
async fn list_vm_ip_assignments(&self, vm_id: u64) -> Result<Vec<VmIpAssignment>>;
/// List VM ip assignments by IP range
async fn get_vm_ip_assignments_in_range(&self, range_id: u64) -> Result<Vec<VmIpAssignment>>;
async fn list_vm_ip_assignments_in_range(&self, range_id: u64) -> Result<Vec<VmIpAssignment>>;
/// List payments by VM id
async fn list_vm_payment(&self, vm_id: u64) -> Result<Vec<VmPayment>>;

View File

@ -217,9 +217,13 @@ pub struct Vm {
#[sqlx(skip)]
#[serde(skip_serializing_if = "Option::is_none")]
pub ssh_key: Option<UserSshKey>,
#[sqlx(skip)]
#[serde(skip_serializing_if = "Option::is_none")]
pub payments: Option<Vec<VmPayment>>,
#[sqlx(skip)]
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_assignments: Option<Vec<VmIpAssignment>>,
}
#[derive(Serialize, Deserialize, FromRow, Clone, Debug)]

View File

@ -232,7 +232,7 @@ impl LNVpsDb for LNVpsDbMysql {
.try_get(0)?)
}
async fn get_vm_ip_assignments(&self, vm_id: u64) -> Result<Vec<VmIpAssignment>> {
async fn list_vm_ip_assignments(&self, vm_id: u64) -> Result<Vec<VmIpAssignment>> {
sqlx::query_as("select * from vm_ip_assignment where vm_id = ?")
.bind(vm_id)
.fetch_all(&self.db)
@ -240,7 +240,7 @@ impl LNVpsDb for LNVpsDbMysql {
.map_err(Error::new)
}
async fn get_vm_ip_assignments_in_range(&self, range_id: u64) -> Result<Vec<VmIpAssignment>> {
async fn list_vm_ip_assignments_in_range(&self, range_id: u64) -> Result<Vec<VmIpAssignment>> {
sqlx::query_as("select * from vm_ip_assignment where ip_range_id = ?")
.bind(range_id)
.fetch_all(&self.db)