109 lines
2.0 KiB
Rust
109 lines
2.0 KiB
Rust
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct Config {
|
||
|
anti_phishing_code: String,
|
||
|
|
||
|
keymap: String,
|
||
|
modules: String,
|
||
|
|
||
|
auths: Vec<Auth>,
|
||
|
|
||
|
networks: Vec<Network>,
|
||
|
|
||
|
ssh: SSHServer,
|
||
|
|
||
|
#[serde(default)]
|
||
|
pre_lvm_crypt: Vec<CryptDev>,
|
||
|
#[serde(default)]
|
||
|
lvm: Vec<LvmVG>,
|
||
|
#[serde(default)]
|
||
|
crypt: Vec<CryptDev>,
|
||
|
|
||
|
bootstrap: Bootstrap,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct Auth {
|
||
|
name: String,
|
||
|
#[serde(rename = "sshKey")]
|
||
|
ssh_key: String,
|
||
|
password: String,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct Network {
|
||
|
name: String,
|
||
|
interfaces: Vec<NetworkInterface>,
|
||
|
script: String,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct NetworkInterface {
|
||
|
pub var: String,
|
||
|
pub n: i16,
|
||
|
pub regexps: Vec<String>,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct SSHServer {
|
||
|
listen: String,
|
||
|
keys: SSHKeys,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct SSHKeys {
|
||
|
dsa: String,
|
||
|
rsa: String,
|
||
|
ecdsa: String,
|
||
|
ed25519: String,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct LvmVG {
|
||
|
vg: String,
|
||
|
pvs: LvmPV,
|
||
|
|
||
|
defaults: Option<LvmLVDefaults>,
|
||
|
|
||
|
lvs: Vec<LvmLV>,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct LvmLVDefaults {
|
||
|
fs: String,
|
||
|
raid: Option<Raid>,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct LvmLV {
|
||
|
name: String,
|
||
|
fs: String,
|
||
|
raid: Option<Raid>,
|
||
|
size: String,
|
||
|
extents: String,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct LvmPV {
|
||
|
n: i16,
|
||
|
regexps: Vec<String>,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct CryptDev {
|
||
|
dev: String,
|
||
|
prefix: String,
|
||
|
name: String,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct Raid {
|
||
|
mirrors: u8,
|
||
|
stripes: u8,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||
|
pub struct Bootstrap {
|
||
|
dev: String,
|
||
|
seed: String,
|
||
|
}
|