parent
37ae67bd1c
commit
56bdb3bac7
24 changed files with 266 additions and 164 deletions
@ -1,26 +0,0 @@ |
|||||||
.PHONY: _pre_build debug release run clean unit integration test |
|
||||||
|
|
||||||
CARGO=./scripts/cargo_musl.sh
|
|
||||||
|
|
||||||
clean: |
|
||||||
${CARGO} clean
|
|
||||||
|
|
||||||
_pre_build: |
|
||||||
docker build -t unki/musllibs ./muslrust
|
|
||||||
|
|
||||||
debug: _pre_build |
|
||||||
${CARGO} build
|
|
||||||
|
|
||||||
release: _pre_build |
|
||||||
${CARGO} build --release
|
|
||||||
|
|
||||||
run: build |
|
||||||
${CARGO} run
|
|
||||||
|
|
||||||
unit: |
|
||||||
${CARGO} test --lib
|
|
||||||
|
|
||||||
integration: |
|
||||||
cd ./integration && ./integration_tests.sh
|
|
||||||
|
|
||||||
test: unit integration |
|
@ -0,0 +1,48 @@ |
|||||||
|
[config] |
||||||
|
default_to_workspace = false
|
||||||
|
|
||||||
|
[env] |
||||||
|
CARGO = "./scripts/cargo_musl.sh"
|
||||||
|
|
||||||
|
[tasks.build_cargo_image] |
||||||
|
script = "docker build -t unki/musllibs ./muslrust"
|
||||||
|
|
||||||
|
[tasks.clean] |
||||||
|
command = "${CARGO}"
|
||||||
|
args = ["clean"]
|
||||||
|
|
||||||
|
[tasks.debug] |
||||||
|
dependencies = ["build_cargo_image"]
|
||||||
|
command = "${CARGO}"
|
||||||
|
args = ["build"]
|
||||||
|
|
||||||
|
[tasks.release] |
||||||
|
dependencies = ["build_cargo_image"]
|
||||||
|
command = "${CARGO}"
|
||||||
|
args = ["build", "--release"]
|
||||||
|
|
||||||
|
[tasks.run] |
||||||
|
script = '''
|
||||||
|
echo "Only integration tests are supported." |
||||||
|
exit 1 |
||||||
|
''' |
||||||
|
|
||||||
|
[tasks.unit] |
||||||
|
command = "${CARGO}"
|
||||||
|
args = ["test", "--lib", "${@}"]
|
||||||
|
|
||||||
|
[tasks.integration] |
||||||
|
script = '''
|
||||||
|
cd ./integration |
||||||
|
bash integration_tests.sh |
||||||
|
''' |
||||||
|
|
||||||
|
[tasks.gen_schema] |
||||||
|
script = '''
|
||||||
|
cd ./integration |
||||||
|
docker-compose up -d u_server |
||||||
|
docker-compose down |
||||||
|
''' |
||||||
|
|
||||||
|
[tasks.test] |
||||||
|
dependencies = ["unit", "integration"]
|
@ -0,0 +1,35 @@ |
|||||||
|
use crate::models::schema::*; |
||||||
|
use diesel::{Insertable, Queryable}; |
||||||
|
use serde::{Deserialize, Serialize}; |
||||||
|
use std::time::SystemTime; |
||||||
|
use uuid::Uuid; |
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Clone, Debug, Queryable, Insertable, PartialEq)] |
||||||
|
#[table_name = "errors"] |
||||||
|
pub struct AgentError { |
||||||
|
pub agent_id: Uuid, |
||||||
|
pub created: SystemTime, |
||||||
|
pub id: Uuid, |
||||||
|
pub msg: String, |
||||||
|
} |
||||||
|
|
||||||
|
impl AgentError { |
||||||
|
pub fn from_msg(msg: impl Into<String>, agent_id: Uuid) -> Self { |
||||||
|
AgentError { |
||||||
|
agent_id, |
||||||
|
msg: msg.into(), |
||||||
|
..Default::default() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
impl Default for AgentError { |
||||||
|
fn default() -> Self { |
||||||
|
Self { |
||||||
|
agent_id: Uuid::new_v4(), |
||||||
|
created: SystemTime::now(), |
||||||
|
id: Uuid::new_v4(), |
||||||
|
msg: String::new(), |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,13 +1,6 @@ |
|||||||
mod agent; |
mod agent; |
||||||
pub mod jobs; |
mod errors; |
||||||
|
mod jobs; |
||||||
pub mod schema; |
pub mod schema; |
||||||
|
|
||||||
pub use crate::models::{agent::*, jobs::*}; |
pub use crate::models::{agent::*, errors::*, jobs::*}; |
||||||
use serde::{Deserialize, Serialize}; |
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone, PartialEq)] |
|
||||||
pub enum ExecResult { |
|
||||||
Assigned(AssignedJob), |
|
||||||
Agent(Agent), |
|
||||||
Dummy, |
|
||||||
} |
|
||||||
|
Loading…
Reference in new issue