mirror of
git://git.proxmox.com/git/pve-network.git
synced 2025-04-30 11:27:11 +02:00
sdn: preparations for DHCP plugin
Add the option to retrieve the running configuration instead of only the pending configuration via the config methods. Refactor methods using the running config to utilize the new parameter. Add helper methods and return additional attributes from the getter functions that are needed by the dhcp plugins. Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
This commit is contained in:
parent
e8ca5bc603
commit
a1845dad80
|
@ -23,7 +23,9 @@ sub sdn_subnets_config {
|
|||
my $scfg = $cfg->{ids}->{$id};
|
||||
die "sdn subnet '$id' does not exist\n" if (!$noerr && !$scfg);
|
||||
|
||||
if($scfg) {
|
||||
if ($scfg) {
|
||||
$scfg->{id} = $id;
|
||||
|
||||
my ($zone, $network, $mask) = split(/-/, $id);
|
||||
$scfg->{cidr} = "$network/$mask";
|
||||
$scfg->{zone} = $zone;
|
||||
|
@ -35,7 +37,14 @@ sub sdn_subnets_config {
|
|||
}
|
||||
|
||||
sub config {
|
||||
my $config = cfs_read_file("sdn/subnets.cfg");
|
||||
my ($running) = @_;
|
||||
|
||||
if ($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
return $cfg->{subnets};
|
||||
}
|
||||
|
||||
return cfs_read_file("sdn/subnets.cfg");
|
||||
}
|
||||
|
||||
sub write_config {
|
||||
|
@ -61,16 +70,8 @@ sub complete_sdn_subnet {
|
|||
sub get_subnet {
|
||||
my ($subnetid, $running) = @_;
|
||||
|
||||
my $cfg = {};
|
||||
if($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
$cfg = $cfg->{subnets};
|
||||
} else {
|
||||
$cfg = PVE::Network::SDN::Subnets::config();
|
||||
}
|
||||
|
||||
my $subnet = PVE::Network::SDN::Subnets::sdn_subnets_config($cfg, $subnetid, 1);
|
||||
return $subnet;
|
||||
my $cfg = PVE::Network::SDN::Subnets::config($running);
|
||||
return PVE::Network::SDN::Subnets::sdn_subnets_config($cfg, $subnetid, 1);
|
||||
}
|
||||
|
||||
sub find_ip_subnet {
|
||||
|
|
|
@ -26,6 +26,13 @@ sub sdn_vnets_config {
|
|||
}
|
||||
|
||||
sub config {
|
||||
my ($running) = @_;
|
||||
|
||||
if ($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
return $cfg->{vnets};
|
||||
}
|
||||
|
||||
return cfs_read_file("sdn/vnets.cfg");
|
||||
}
|
||||
|
||||
|
@ -54,31 +61,23 @@ sub get_vnet {
|
|||
|
||||
return if !$vnetid;
|
||||
|
||||
my $scfg = {};
|
||||
if($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
$scfg = $cfg->{vnets};
|
||||
} else {
|
||||
$scfg = PVE::Network::SDN::Vnets::config();
|
||||
}
|
||||
|
||||
my $vnet = PVE::Network::SDN::Vnets::sdn_vnets_config($scfg, $vnetid, 1);
|
||||
|
||||
return $vnet;
|
||||
my $cfg = PVE::Network::SDN::Vnets::config($running);
|
||||
return PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $vnetid, 1);
|
||||
}
|
||||
|
||||
sub get_subnets {
|
||||
my ($vnetid) = @_;
|
||||
my ($vnetid, $running) = @_;
|
||||
|
||||
my $subnets = undef;
|
||||
my $subnets_cfg = PVE::Network::SDN::Subnets::config();
|
||||
my $subnets_cfg = PVE::Network::SDN::Subnets::config($running);
|
||||
|
||||
foreach my $subnetid (sort keys %{$subnets_cfg->{ids}}) {
|
||||
my $subnet = PVE::Network::SDN::Subnets::sdn_subnets_config($subnets_cfg, $subnetid);
|
||||
next if !$subnet->{vnet} || ($vnetid && $subnet->{vnet} ne $vnetid);
|
||||
$subnets->{$subnetid} = $subnet;
|
||||
}
|
||||
return $subnets;
|
||||
|
||||
return $subnets;
|
||||
}
|
||||
|
||||
sub get_subnet_from_vnet_cidr {
|
||||
|
|
|
@ -40,8 +40,14 @@ sub sdn_zones_config {
|
|||
}
|
||||
|
||||
sub config {
|
||||
my $config = cfs_read_file("sdn/zones.cfg");
|
||||
return $config;
|
||||
my ($running) = @_;
|
||||
|
||||
if ($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
return $cfg->{zones};
|
||||
}
|
||||
|
||||
return cfs_read_file("sdn/zones.cfg");
|
||||
}
|
||||
|
||||
sub get_plugin_config {
|
||||
|
@ -74,19 +80,29 @@ sub complete_sdn_zone {
|
|||
sub get_zone {
|
||||
my ($zoneid, $running) = @_;
|
||||
|
||||
my $cfg = {};
|
||||
if($running) {
|
||||
my $cfg = PVE::Network::SDN::running_config();
|
||||
$cfg = $cfg->{vnets};
|
||||
} else {
|
||||
$cfg = PVE::Network::SDN::Zones::config();
|
||||
}
|
||||
my $cfg = PVE::Network::SDN::Zones::config($running);
|
||||
|
||||
my $zone = PVE::Network::SDN::Zones::sdn_zones_config($cfg, $zoneid, 1);
|
||||
|
||||
return $zone;
|
||||
}
|
||||
|
||||
sub get_vnets {
|
||||
my ($zoneid, $running) = @_;
|
||||
|
||||
return if !$zoneid;
|
||||
|
||||
my $vnets_config = PVE::Network::SDN::Vnets::config($running);
|
||||
my $vnets = undef;
|
||||
|
||||
for my $vnetid (keys %{$vnets_config->{ids}}) {
|
||||
my $vnet = PVE::Network::SDN::Vnets::sdn_vnets_config($vnets_config, $vnetid);
|
||||
next if !$vnet->{zone} || $vnet->{zone} ne $zoneid;
|
||||
$vnets->{$vnetid} = $vnet;
|
||||
}
|
||||
|
||||
return $vnets;
|
||||
}
|
||||
|
||||
sub generate_etc_network_config {
|
||||
|
||||
|
|
Loading…
Reference in a new issue