make diesel optional in u_lib and cross-compile u_agent to windows

pull/1/head
plazmoid 2 years ago
parent c25fa780bf
commit 0a077af936
  1. 2
      Cargo.toml
  2. 2
      bin/u_server/Cargo.toml
  3. 0
      bin/u_server/src/models.rs
  4. 1
      bin/u_server/src/u_server.rs
  5. 5
      lib/u_lib/Cargo.toml
  6. 2
      lib/u_lib/src/lib.rs
  7. 49
      lib/u_lib/src/models/agent.rs
  8. 21
      lib/u_lib/src/models/jobs/assigned.rs
  9. 13
      lib/u_lib/src/models/jobs/meta.rs
  10. 21
      lib/u_lib/src/models/jobs/misc.rs
  11. 1
      lib/u_lib/src/models/mod.rs

@ -2,7 +2,7 @@
members = [
"bin/u_agent",
"bin/u_panel",
#"bin/u_run",
"bin/u_run",
"bin/u_server",
"lib/u_lib",
"integration"

@ -15,7 +15,7 @@ openssl = "*"
diesel = { version = "1.4.5", features = ["postgres", "uuid"] }
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1.9", features = ["macros"] }
u_lib = { path = "../../lib/u_lib", version = "*" }
u_lib = { path = "../../lib/u_lib", version = "*", features = ["server"] }
[dev-dependencies]

@ -14,7 +14,6 @@ extern crate diesel;
mod db;
mod errors;
mod handlers;
mod models;
use errors::{Error, SResult};
use serde::{de::DeserializeOwned, Deserialize};

@ -15,13 +15,13 @@ libc = "^0.2"
lazy_static = "1.4.0"
futures = "0.3.5"
thiserror = "*"
diesel-derive-enum = { version = "1", features = ["postgres"] }
diesel-derive-enum = { version = "1", features = ["postgres"], optional = true }
chrono = "0.4.19"
strum = { version = "0.20", features = ["derive"] }
once_cell = "1.7.2"
shlex = "1.0.0"
crossbeam = "0.8.1"
diesel = { version = "1.4.5", features = ["postgres", "uuid"] }
diesel = { version = "1.4.5", features = ["postgres", "uuid"], optional = true }
envy = "0.4.2"
serde_json = "1.0.81"
tracing-subscriber = { version = "0.3.14", features = ["env-filter"] }
@ -32,6 +32,7 @@ platforms = "3.0.1"
[features]
panel = []
server = ["dep:diesel", "dep:diesel-derive-enum"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
reqwest = { version = "0.11", features = ["json", "native-tls"] }

@ -28,11 +28,13 @@ pub mod exports {
pub use errors::{UError, UResult};
pub use exports::*;
#[cfg(feature = "server")]
pub mod schema_exports {
pub use crate::models::{Agentstate, Jobstate, Jobtype};
pub use diesel::sql_types::*;
}
#[cfg(feature = "server")]
#[macro_use]
extern crate diesel;

@ -1,4 +1,6 @@
#[cfg(feature = "server")]
use diesel::{AsChangeset, Identifiable, Insertable, Queryable};
#[cfg(feature = "server")]
use diesel_derive_enum::DbEnum;
use serde::{Deserialize, Serialize};
use std::{fmt, time::SystemTime};
@ -6,19 +8,24 @@ use strum::Display;
#[cfg(not(target_arch = "wasm32"))]
use crate::builder::NamedJobBuilder;
#[cfg(feature = "server")]
use crate::models::schema::*;
use crate::{
config::get_self_uid,
messaging::Reportable,
models::schema::*,
unwrap_enum,
utils::{systime_to_string, Platform},
};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, DbEnum, Display)]
#[PgType = "AgentState"]
#[DieselType = "Agentstate"]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Display)]
#[cfg_attr(
feature = "server",
derive(DbEnum),
PgType = "AgentState",
DieselType = "Agentstate"
)]
pub enum AgentState {
New,
Active,
@ -26,18 +33,12 @@ pub enum AgentState {
}
//belongs_to
#[derive(
Clone,
Debug,
Serialize,
Deserialize,
Identifiable,
Queryable,
Insertable,
AsChangeset,
PartialEq,
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[cfg_attr(
feature = "server",
derive(Identifiable, Queryable, Insertable, AsChangeset),
table_name = "agents"
)]
#[table_name = "agents"]
pub struct Agent {
pub alias: Option<String>,
pub hostname: String,
@ -130,13 +131,13 @@ impl Default for Agent {
}
}
#[cfg(test)]
mod tests {
use super::*;
// #[cfg(test)]
// mod tests {
// use super::*;
#[tokio::test]
async fn test_gather() {
let cli_info = Agent::gather().await;
assert_eq!(cli_info.alias, None)
}
}
// #[tokio::test]
// async fn test_gather() {
// let cli_info = Agent::gather().await;
// assert_eq!(cli_info.alias, None)
// }
// }

@ -1,30 +1,27 @@
use super::JobState;
#[cfg(feature = "server")]
use crate::models::schema::*;
#[cfg(not(target_arch = "wasm32"))]
use crate::{cache::JobCache, utils::TempFile};
use crate::{
config::get_self_uid,
errors::UError,
messaging::Reportable,
models::schema::*,
utils::{systime_to_string, ProcOutput},
};
#[cfg(feature = "server")]
use diesel::{Identifiable, Insertable, Queryable};
use serde::{Deserialize, Serialize};
use std::{fmt, time::SystemTime};
use uuid::Uuid;
#[derive(
Serialize,
Deserialize,
Clone,
Debug,
Queryable,
Identifiable,
Insertable,
AsChangeset,
PartialEq,
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(
feature = "server",
derive(Queryable, Identifiable, Insertable, AsChangeset),
table_name = "results"
)]
#[table_name = "results"]
pub struct AssignedJob {
pub agent_id: Uuid,
pub alias: Option<String>,

@ -1,6 +1,9 @@
use super::JobType;
#[cfg(feature = "server")]
use crate::models::schema::*;
use crate::utils::Platform;
use crate::{models::schema::*, utils::Stripped, UError, UResult};
use crate::{utils::Stripped, UError, UResult};
#[cfg(feature = "server")]
use diesel::{Identifiable, Insertable, Queryable};
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
@ -8,10 +11,12 @@ use std::str::from_utf8;
use std::{fmt, fs};
use uuid::Uuid;
#[derive(
Serialize, Deserialize, Clone, Debug, Queryable, Identifiable, Insertable, AsChangeset,
#[derive(Serialize, Deserialize, Clone, Debug)]
#[cfg_attr(
feature = "server",
derive(Queryable, Identifiable, Insertable, AsChangeset),
table_name = "jobs"
)]
#[table_name = "jobs"]
pub struct JobMeta {
pub alias: Option<String>,
/// string like `bash -c {} -a 1 --arg2`,

@ -1,3 +1,4 @@
#[cfg(feature = "server")]
use diesel_derive_enum::DbEnum;
use serde::{Deserialize, Serialize};
use strum::Display;
@ -17,9 +18,13 @@ pub enum JobSchedule {
//Scheduled
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, DbEnum, Display)]
#[PgType = "JobState"]
#[DieselType = "Jobstate"]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Display)]
#[cfg_attr(
feature = "server",
derive(DbEnum),
PgType = "JobState",
DieselType = "Jobstate"
)]
pub enum JobState {
Queued, // server created a job, but client didn't get it yet
//Pending, // client got a job, but not running yet
@ -27,9 +32,13 @@ pub enum JobState {
Finished,
}
#[derive(Default, Serialize, Deserialize, Clone, Debug, PartialEq, DbEnum, Display)]
#[PgType = "JobType"]
#[DieselType = "Jobtype"]
#[derive(Default, Serialize, Deserialize, Clone, Debug, PartialEq, Display)]
#[cfg_attr(
feature = "server",
derive(DbEnum),
PgType = "JobType",
DieselType = "Jobtype"
)]
pub enum JobType {
Manage,
#[default]

@ -1,5 +1,6 @@
mod agent;
mod jobs;
#[cfg(feature = "server")]
pub mod schema;
pub use crate::models::{agent::*, jobs::*};

Loading…
Cancel
Save