Add new fields for OPNSense 25.1

This commit is contained in:
tahahawa 2025-07-12 01:05:21 -04:00
parent 537da5800f
commit c4f4a58dcf
3 changed files with 10 additions and 4 deletions

View File

@ -22,8 +22,10 @@ use harmony_macros::{ip, mac_address};
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
env_logger::init();
let firewall = harmony::topology::LogicalHost { let firewall = harmony::topology::LogicalHost {
ip: ip!("192.168.5.229"), ip: ip!("192.168.122.106"),
name: String::from("opnsense-1"), name: String::from("opnsense-1"),
}; };

View File

@ -83,6 +83,7 @@ pub struct Interface {
pub adv_dhcp_config_advanced: Option<MaybeString>, pub adv_dhcp_config_advanced: Option<MaybeString>,
pub adv_dhcp_config_file_override: Option<MaybeString>, pub adv_dhcp_config_file_override: Option<MaybeString>,
pub adv_dhcp_config_file_override_path: Option<MaybeString>, pub adv_dhcp_config_file_override_path: Option<MaybeString>,
pub mtu: Option<u32>,
} }
#[cfg(test)] #[cfg(test)]

View File

@ -1,6 +1,6 @@
use crate::HAProxy; use crate::HAProxy;
use crate::{data::dhcpd::DhcpInterface, xml_utils::to_xml_str}; use crate::{data::dhcpd::DhcpInterface, xml_utils::to_xml_str};
use log::error; use log::{debug, error};
use uuid::Uuid; use uuid::Uuid;
use yaserde::{MaybeString, NamedList, RawXml}; use yaserde::{MaybeString, NamedList, RawXml};
use yaserde_derive::{YaDeserialize, YaSerialize}; use yaserde_derive::{YaDeserialize, YaSerialize};
@ -17,12 +17,12 @@ pub struct OPNsense {
pub dhcpd: NamedList<DhcpInterface>, pub dhcpd: NamedList<DhcpInterface>,
pub snmpd: Snmpd, pub snmpd: Snmpd,
pub syslog: Syslog, pub syslog: Syslog,
pub nat: Nat, pub nat: Option<Nat>,
pub filter: Filters, pub filter: Filters,
pub load_balancer: Option<LoadBalancer>, pub load_balancer: Option<LoadBalancer>,
pub rrd: Option<RawXml>, pub rrd: Option<RawXml>,
pub ntpd: Ntpd, pub ntpd: Ntpd,
pub widgets: Widgets, pub widgets: Option<Widgets>,
pub revision: Revision, pub revision: Revision,
#[yaserde(rename = "OPNsense")] #[yaserde(rename = "OPNsense")]
pub opnsense: OPNsenseXmlSection, pub opnsense: OPNsenseXmlSection,
@ -46,10 +46,12 @@ pub struct OPNsense {
pub pischem: Option<Pischem>, pub pischem: Option<Pischem>,
pub ifgroups: Ifgroups, pub ifgroups: Ifgroups,
pub dnsmasq: Option<RawXml>, pub dnsmasq: Option<RawXml>,
pub wizardtemp: Option<RawXml>,
} }
impl From<String> for OPNsense { impl From<String> for OPNsense {
fn from(content: String) -> Self { fn from(content: String) -> Self {
debug!("XML content: {content}");
yaserde::de::from_str(&content) yaserde::de::from_str(&content)
.map_err(|e| println!("{}", e.to_string())) .map_err(|e| println!("{}", e.to_string()))
.expect("OPNSense received invalid string, should be full XML") .expect("OPNSense received invalid string, should be full XML")
@ -242,6 +244,7 @@ pub struct Ssh {
pub passwordauth: u8, pub passwordauth: u8,
pub keysig: MaybeString, pub keysig: MaybeString,
pub permitrootlogin: u8, pub permitrootlogin: u8,
pub rekeylimit: MaybeString,
} }
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)] #[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]