forked from NationTech/harmony
wip: Trying to figure out a nice way to have inventory and topology bound, maybe creating nodes that have this only purpose would make sense
This commit is contained in:
parent
042ff7e7dd
commit
9d0aa406e4
@ -31,10 +31,10 @@ pub enum HostCategory {
|
|||||||
|
|
||||||
#[derive(Debug, new, Clone)]
|
#[derive(Debug, new, Clone)]
|
||||||
pub struct NetworkInterface {
|
pub struct NetworkInterface {
|
||||||
name: String,
|
pub name: String,
|
||||||
mac_address: MacAddress,
|
pub mac_address: MacAddress,
|
||||||
speed: u64,
|
pub speed: u64,
|
||||||
plugged_in: bool,
|
pub plugged_in: bool,
|
||||||
}
|
}
|
||||||
type MacAddress = String;
|
type MacAddress = String;
|
||||||
|
|
||||||
|
|||||||
18
harmony-rs/harmony/src/infra/hp_ilo/mod.rs
Normal file
18
harmony-rs/harmony/src/infra/hp_ilo/mod.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
use derive_new::new;
|
||||||
|
use crate::topology::{IpAddress, MacAddress, ManagementInterface};
|
||||||
|
|
||||||
|
#[derive(new)]
|
||||||
|
pub struct HPIlo {
|
||||||
|
ip_address: IpAddress,
|
||||||
|
mac_address: MacAddress,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ManagementInterface for HPIlo {
|
||||||
|
fn boot_to_pxe(&self) {
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_ip(&self) -> IpAddress {
|
||||||
|
self.ip_address
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +1,10 @@
|
|||||||
use derive_new::new;
|
use derive_new::new;
|
||||||
use crate::topology::{IpAddress, ManagementInterface};
|
use crate::topology::{IpAddress, MacAddress, ManagementInterface};
|
||||||
|
|
||||||
#[derive(new)]
|
#[derive(new)]
|
||||||
pub struct IntelAmtManagement {
|
pub struct IntelAmtManagement {
|
||||||
ip_address: IpAddress,
|
ip_address: IpAddress,
|
||||||
|
mac_address: MacAddress,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ManagementInterface for IntelAmtManagement {
|
impl ManagementInterface for IntelAmtManagement {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
pub mod executors;
|
pub mod executors;
|
||||||
pub mod opnsense;
|
pub mod opnsense;
|
||||||
pub mod intel_amt;
|
pub mod intel_amt;
|
||||||
|
pub mod hp_ilo;
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
use derive_new::new;
|
use derive_new::new;
|
||||||
use crate::topology::{Backend, DhcpServer, DnsServer, Firewall, FirewallError, FirewallRule, Frontend, IpAddress, LoadBalancer, LoadBalancerError};
|
use crate::{hardware::NetworkInterface, topology::{Backend, DhcpServer, DnsServer, Firewall, FirewallError, FirewallRule, Frontend, IpAddress, LoadBalancer, LoadBalancerError}};
|
||||||
|
|
||||||
#[derive(new, Clone)]
|
#[derive(new, Clone)]
|
||||||
pub struct OPNSenseFirewall {
|
pub struct OPNSenseFirewall {
|
||||||
ip_address: IpAddress,
|
ip_address: IpAddress,
|
||||||
|
interfaces: Vec<NetworkInterface>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Firewall for OPNSenseFirewall {
|
impl Firewall for OPNSenseFirewall {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user