finish containers persistance

This commit is contained in:
2023-09-07 21:27:03 +02:00
parent d0f75d89a8
commit 565cb660ee
6 changed files with 60 additions and 33 deletions

View File

@@ -14,6 +14,7 @@ pub struct ConfServer{
pub struct Instance {
id: i64,
pub docker_id: String,
pub ip: String,
pub domain: String,
pub image: i64,
@@ -40,6 +41,7 @@ impl InstanceStorage {
id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE);
CREATE TABLE IF NOT EXISTS l_instances(
id INTEGER PRIMARY KEY AUTOINCREMENT,
docker_id TEXT,
ip TEXT,
domain TEXT,
image INTEGER,
@@ -55,13 +57,14 @@ impl InstanceStorage {
}
fn load_instances(&mut self) -> Result<Vec<Instance>> {
let mut stmt = self.con.prepare("select id, ip, domain, image from l_instances")?;
let mut stmt = self.con.prepare("select id, docker_id, ip, domain, image from l_instances")?;
let mut rows = stmt.query([])?;
rows.map(|r| Ok(Instance{
id: r.get::<_, i64>(0)?,
ip: r.get::<_, String>(1)?,
domain: r.get::<_, String>(2)?,
image: r.get::<_, i64>(3)?,
docker_id: r.get::<_, String>(1)?,
ip: r.get::<_, String>(2)?,
domain: r.get::<_, String>(3)?,
image: r.get::<_, i64>(4)?,
})).collect()
}
@@ -95,14 +98,16 @@ impl InstanceStorage {
})
}
pub fn new_instance(&mut self, ip: String, domain: String, image: i64) -> Result<Instance>{
pub fn new_instance(&mut self, docker_id: String, ip: String, domain: String, image: i64) -> Result<Instance>{
//let image_id = self.create_or_get_image_id(image.clone(), 0)?;
let mut stmt = self.con.prepare("INSERT INTO l_instances(ip, domain, image) values(?1, ?2, ?3)")?;
stmt.execute([ip.clone(),
let mut stmt = self.con.prepare("INSERT INTO l_instances(docker_id, ip, domain, image) values(?1, ?2, ?3, ?4)")?;
stmt.execute([docker_id.clone(),
ip.clone(),
domain.clone(),
image.to_string()])?;
Ok(Instance {
id: image,
docker_id: docker_id,
ip: ip,
domain: domain,
image: image,