mirror of
https://git.proxmox.com/git/proxmox-ve-rs
synced 2025-10-04 21:58:25 +00:00
tests: add ipam tests
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
This commit is contained in:
parent
021536ea4e
commit
33c67da5a5
@ -5,11 +5,13 @@ use std::{
|
|||||||
|
|
||||||
use proxmox_ve_config::{
|
use proxmox_ve_config::{
|
||||||
firewall::types::{address::IpRange, Cidr},
|
firewall::types::{address::IpRange, Cidr},
|
||||||
|
guest::vm::MacAddress,
|
||||||
sdn::{
|
sdn::{
|
||||||
config::{
|
config::{
|
||||||
RunningConfig, SdnConfig, SdnConfigError, SubnetConfig, VnetConfig, ZoneConfig,
|
RunningConfig, SdnConfig, SdnConfigError, SubnetConfig, VnetConfig, ZoneConfig,
|
||||||
ZoneType,
|
ZoneType,
|
||||||
},
|
},
|
||||||
|
ipam::{Ipam, IpamDataVm, IpamEntry, IpamJson},
|
||||||
SubnetName, VnetName, ZoneName,
|
SubnetName, VnetName, ZoneName,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -142,3 +144,46 @@ fn sdn_config() {
|
|||||||
Err(SdnConfigError::DuplicateVnetName),
|
Err(SdnConfigError::DuplicateVnetName),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parse_ipam() {
|
||||||
|
let ipam_json: IpamJson = serde_json::from_str(include_str!("resources/ipam.db")).unwrap();
|
||||||
|
let ipam = Ipam::try_from(ipam_json).unwrap();
|
||||||
|
|
||||||
|
let zone_name = ZoneName::new("zone0".to_string()).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
Ipam::from_entries([
|
||||||
|
IpamEntry::new(
|
||||||
|
SubnetName::new(
|
||||||
|
zone_name.clone(),
|
||||||
|
Cidr::new_v6([0xFD80, 0, 0, 0, 0, 0, 0, 0], 64).unwrap()
|
||||||
|
),
|
||||||
|
IpamDataVm::new(
|
||||||
|
Ipv6Addr::new(0xFD80, 0, 0, 0, 0, 0, 0, 0x1000),
|
||||||
|
1000,
|
||||||
|
MacAddress::new([0xBC, 0x24, 0x11, 0, 0, 0x01]),
|
||||||
|
"test0".to_string()
|
||||||
|
)
|
||||||
|
.into()
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
IpamEntry::new(
|
||||||
|
SubnetName::new(
|
||||||
|
zone_name.clone(),
|
||||||
|
Cidr::new_v4([10, 101, 0, 0], 16).unwrap()
|
||||||
|
),
|
||||||
|
IpamDataVm::new(
|
||||||
|
Ipv4Addr::new(10, 101, 99, 101),
|
||||||
|
1000,
|
||||||
|
MacAddress::new([0xBC, 0x24, 0x11, 0, 0, 0x01]),
|
||||||
|
"test0".to_string()
|
||||||
|
)
|
||||||
|
.into()
|
||||||
|
)
|
||||||
|
.unwrap(),
|
||||||
|
])
|
||||||
|
.unwrap(),
|
||||||
|
ipam
|
||||||
|
)
|
||||||
|
}
|
||||||
|
26
proxmox-ve-config/tests/sdn/resources/ipam.db
Normal file
26
proxmox-ve-config/tests/sdn/resources/ipam.db
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"zones": {
|
||||||
|
"zone0": {
|
||||||
|
"subnets": {
|
||||||
|
"fd80::/64": {
|
||||||
|
"ips": {
|
||||||
|
"fd80::1000": {
|
||||||
|
"vmid": "1000",
|
||||||
|
"mac": "BC:24:11:00:00:01",
|
||||||
|
"hostname": "test0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"10.101.0.0/16": {
|
||||||
|
"ips": {
|
||||||
|
"10.101.99.101": {
|
||||||
|
"mac": "BC:24:11:00:00:01",
|
||||||
|
"vmid": "1000",
|
||||||
|
"hostname": "test0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user