Finish to convert NW filter Lib structures into REST structures
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
use crate::libvirt_lib_structures::XMLUuid;
|
||||
use std::fmt::Display;
|
||||
use std::net::IpAddr;
|
||||
use std::net::{Ipv4Addr, Ipv6Addr};
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
#[serde(rename = "filterref")]
|
||||
@ -20,27 +20,27 @@ pub struct NetworkFilterRuleProtocolMac {
|
||||
rename(serialize = "@srcmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacaddr: Option<String>,
|
||||
pub srcmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacmask: Option<String>,
|
||||
pub srcmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacaddr: Option<String>,
|
||||
pub dstmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacmask: Option<String>,
|
||||
pub dstmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@comment"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
comment: Option<String>,
|
||||
pub comment: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
@ -50,48 +50,48 @@ pub struct NetworkFilterRuleProtocolArp {
|
||||
rename(serialize = "@srcmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacaddr: Option<String>,
|
||||
pub srcmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacmask: Option<String>,
|
||||
pub srcmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacaddr: Option<String>,
|
||||
pub dstmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacmask: Option<String>,
|
||||
pub dstmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@arpsrcipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
arpsrcipaddr: Option<String>,
|
||||
pub arpsrcipaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@arpsrcipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
arpsrcipmask: Option<u8>,
|
||||
pub arpsrcipmask: Option<u8>,
|
||||
#[serde(
|
||||
rename(serialize = "@arpdstipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
arpdstipaddr: Option<String>,
|
||||
pub arpdstipaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@arpdstipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
arpdstipmask: Option<u8>,
|
||||
pub arpdstipmask: Option<u8>,
|
||||
|
||||
#[serde(
|
||||
rename(serialize = "@comment"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
comment: Option<String>,
|
||||
pub comment: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
@ -101,130 +101,130 @@ pub struct NetworkFilterRuleProtocolIpvx {
|
||||
rename(serialize = "@srcmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacaddr: Option<String>,
|
||||
pub srcmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacmask: Option<String>,
|
||||
pub srcmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacaddr: Option<String>,
|
||||
pub dstmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstmacmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstmacmask: Option<String>,
|
||||
pub dstmacmask: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipaddr: Option<String>,
|
||||
pub srcipaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipmask: Option<u8>,
|
||||
pub srcipmask: Option<u8>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipaddr: Option<String>,
|
||||
pub dstipaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipmask: Option<u8>,
|
||||
pub dstipmask: Option<u8>,
|
||||
|
||||
#[serde(
|
||||
rename(serialize = "@comment"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
comment: Option<String>,
|
||||
pub comment: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
#[serde(rename = "layer4")]
|
||||
pub struct NetworkFilterRuleProtocolLayer4 {
|
||||
pub struct NetworkFilterRuleProtocolLayer4<IPv> {
|
||||
#[serde(
|
||||
rename(serialize = "@srcmacaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcmacaddr: Option<String>,
|
||||
pub srcmacaddr: Option<String>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipaddr: Option<IpAddr>,
|
||||
pub srcipaddr: Option<IPv>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipmask: Option<u8>,
|
||||
pub srcipmask: Option<u8>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstipaddr"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipaddr: Option<IpAddr>,
|
||||
pub dstipaddr: Option<IPv>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstipmask"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipmask: Option<u8>,
|
||||
pub dstipmask: Option<u8>,
|
||||
/// Start of range of source IP address
|
||||
#[serde(
|
||||
rename(serialize = "@srcipfrom"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipfrom: Option<IpAddr>,
|
||||
pub srcipfrom: Option<IPv>,
|
||||
/// End of range of source IP address
|
||||
#[serde(
|
||||
rename(serialize = "@srcipto"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcipto: Option<IpAddr>,
|
||||
pub srcipto: Option<IPv>,
|
||||
/// Start of range of destination IP address
|
||||
#[serde(
|
||||
rename(serialize = "@dstipfrom"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipfrom: Option<IpAddr>,
|
||||
pub dstipfrom: Option<IPv>,
|
||||
/// End of range of destination IP address
|
||||
#[serde(
|
||||
rename(serialize = "@dstipto"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstipto: Option<IpAddr>,
|
||||
pub dstipto: Option<IPv>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcportstart"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcportstart: Option<u16>,
|
||||
pub srcportstart: Option<u16>,
|
||||
#[serde(
|
||||
rename(serialize = "@srcportend"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
srcportend: Option<u16>,
|
||||
pub srcportend: Option<u16>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstportstart"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstportstart: Option<u16>,
|
||||
pub dstportstart: Option<u16>,
|
||||
#[serde(
|
||||
rename(serialize = "@dstportend"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
dstportend: Option<u16>,
|
||||
pub dstportend: Option<u16>,
|
||||
#[serde(rename(serialize = "@state"), skip_serializing_if = "Option::is_none")]
|
||||
state: Option<String>,
|
||||
pub state: Option<String>,
|
||||
|
||||
#[serde(
|
||||
rename(serialize = "@comment"),
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
comment: Option<String>,
|
||||
pub comment: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
@ -249,6 +249,10 @@ pub struct NetworkFilterRuleXML {
|
||||
#[serde(default, rename = "arp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub arp_rules: Vec<NetworkFilterRuleProtocolArp>,
|
||||
|
||||
/// Match rarp protocol
|
||||
#[serde(default, rename = "arp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub rarp_rules: Vec<NetworkFilterRuleProtocolArp>,
|
||||
|
||||
/// Match IPv4 protocol
|
||||
#[serde(default, rename = "ip", skip_serializing_if = "Vec::is_empty")]
|
||||
pub ipv4_rules: Vec<NetworkFilterRuleProtocolIpvx>,
|
||||
@ -259,15 +263,35 @@ pub struct NetworkFilterRuleXML {
|
||||
|
||||
/// Match TCP protocol
|
||||
#[serde(default, rename = "tcp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub tcp_rules: Vec<NetworkFilterRuleProtocolLayer4>,
|
||||
pub tcp_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv4Addr>>,
|
||||
|
||||
/// Match UDP protocol
|
||||
#[serde(default, rename = "udp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub udp_rules: Vec<NetworkFilterRuleProtocolLayer4>,
|
||||
pub udp_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv4Addr>>,
|
||||
|
||||
/// Match SCTP protocol
|
||||
#[serde(default, rename = "sctp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub sctp_rules: Vec<NetworkFilterRuleProtocolLayer4>,
|
||||
pub sctp_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv4Addr>>,
|
||||
|
||||
/// Match ICMP protocol
|
||||
#[serde(default, rename = "icmp", skip_serializing_if = "Vec::is_empty")]
|
||||
pub imcp_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv4Addr>>,
|
||||
|
||||
/// Match TCP IPv6 protocol
|
||||
#[serde(default, rename = "tcp-ipv6", skip_serializing_if = "Vec::is_empty")]
|
||||
pub tcp_ipv6_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv6Addr>>,
|
||||
|
||||
/// Match UDP IPv6 protocol
|
||||
#[serde(default, rename = "udp-ipv6", skip_serializing_if = "Vec::is_empty")]
|
||||
pub udp_ipv6_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv6Addr>>,
|
||||
|
||||
/// Match SCTP IPv6 protocol
|
||||
#[serde(default, rename = "sctp-ipv6", skip_serializing_if = "Vec::is_empty")]
|
||||
pub sctp_ipv6_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv6Addr>>,
|
||||
|
||||
/// Match ICMP IPv6 protocol
|
||||
#[serde(default, rename = "icmpv6", skip_serializing_if = "Vec::is_empty")]
|
||||
pub imcp_ipv6_rules: Vec<NetworkFilterRuleProtocolLayer4<Ipv6Addr>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||
|
Reference in New Issue
Block a user