impl postgres pool conn

This commit is contained in:
rmanach
2023-04-18 12:06:56 +02:00
parent 0163525773
commit 64d91f4cbf
15 changed files with 1178 additions and 88 deletions
+79
View File
@@ -0,0 +1,79 @@
use crate::database::get_connection;
use std::time::Duration;
use std::{thread, time};
use super::{Runner, RunnerStatus, Storer};
use crate::error::StorerError;
#[derive(Debug)]
pub enum JobAction {
MegaportDeploy,
MegaportUndeploy,
MegaportCheckDeploy,
MegaportCheckUndeploy,
}
#[derive(Debug)]
pub struct Job {
id: i32,
action: JobAction,
status: RunnerStatus,
}
impl Job {
pub fn new(id: i32, action: JobAction) -> Self {
Self {
id: id,
action: action,
status: RunnerStatus::Pending,
}
}
pub fn set_status(&mut self, status: RunnerStatus) {
self.status = status;
}
}
impl Runner for Job {
fn run(&mut self) {
self.set_status(RunnerStatus::Running);
match self.action {
JobAction::MegaportDeploy => {
println!("[job({:?})] deploying megaport...", self);
}
JobAction::MegaportUndeploy => {
println!("[job({:?})] undeploying megaport...", self);
}
JobAction::MegaportCheckDeploy => {
println!("[job({:?})] ckecking megaport deployment...", self);
}
JobAction::MegaportCheckUndeploy => {
println!("[job({:?})] ckecking megaport undeployment...", self);
}
}
let wait = time::Duration::from_millis(1);
thread::sleep(wait);
self.set_status(RunnerStatus::Success);
}
fn set_status(&mut self, status: RunnerStatus) {
self.status = status;
}
}
impl Storer for Job {
fn insert(&self) -> Result<(), StorerError> {
Ok(())
}
fn save(&self) -> Result<(), StorerError> {
Ok(())
}
fn delete(&self) -> Result<(), StorerError> {
Ok(())
}
}
+5
View File
@@ -0,0 +1,5 @@
mod job;
mod traits;
pub use job::{Job, JobAction};
pub use traits::{Runner, RunnerStatus, Storer};
+20
View File
@@ -0,0 +1,20 @@
use crate::error::StorerError;
#[derive(Debug)]
pub enum RunnerStatus {
Pending,
Running,
Failed,
Success,
}
pub trait Runner {
fn run(&mut self);
fn set_status(&mut self, status: RunnerStatus);
}
pub trait Storer {
fn insert(&self) -> Result<(), StorerError>;
fn save(&self) -> Result<(), StorerError>;
fn delete(&self) -> Result<(), StorerError>;
}