From: Stefan Hanreich <s.hanreich@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [WIP v2 pve-network 02/10] subnets: vnets: preparations for DHCP plugins
Date: Tue, 17 Oct 2023 15:54:59 +0200 [thread overview]
Message-ID: <20231017135507.2220948-3-s.hanreich@proxmox.com> (raw)
In-Reply-To: <20231017135507.2220948-1-s.hanreich@proxmox.com>
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.
Additionally include the id for subnets, since it is needed later by
some of the DHCP plugins.
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
---
src/PVE/Network/SDN/Subnets.pm | 25 +++++++++++++------------
src/PVE/Network/SDN/Vnets.pm | 27 +++++++++++++--------------
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/PVE/Network/SDN/Subnets.pm b/src/PVE/Network/SDN/Subnets.pm
index 6bb42e5..f654d3a 100644
--- a/src/PVE/Network/SDN/Subnets.pm
+++ b/src/PVE/Network/SDN/Subnets.pm
@@ -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 {
diff --git a/src/PVE/Network/SDN/Vnets.pm b/src/PVE/Network/SDN/Vnets.pm
index 1106c9f..39bdda0 100644
--- a/src/PVE/Network/SDN/Vnets.pm
+++ b/src/PVE/Network/SDN/Vnets.pm
@@ -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 {
--
2.39.2
next prev parent reply other threads:[~2023-10-17 13:55 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 13:54 [pve-devel] [WIP v2 cluster/network/manager/qemu-server/container 00/10] Add support for DHCP servers to SDN Stefan Hanreich
2023-10-17 13:54 ` [pve-devel] [WIP v2 pve-cluster 01/10] cluster files: add dhcp.cfg Stefan Hanreich
2023-10-17 13:54 ` Stefan Hanreich [this message]
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-network 03/10] dhcp: add abstract class for DHCP plugins Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-network 04/10] dhcp: subnet: add DHCP options to subnet configuration Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-network 05/10] dhcp: add DHCP plugin for dnsmasq Stefan Hanreich
2023-10-18 10:13 ` DERUMIER, Alexandre
2023-11-08 17:18 ` DERUMIER, Alexandre
2023-11-09 8:45 ` Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-network 06/10] ipam: Add helper methods for DHCP to PVE IPAM Stefan Hanreich
2023-10-27 11:51 ` Stefan Lendl
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-network 07/10] dhcp: regenerate config for DHCP servers on reload Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-manager 08/10] sdn: regenerate DHCP config " Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 qemu-server 09/10] sdn: dhcp: add DHCP setup to vm-network-scripts Stefan Hanreich
2023-10-17 13:55 ` [pve-devel] [WIP v2 pve-container 10/10] sdn: dhcp: setup DHCP mappings in LXC hooks Stefan Hanreich
2023-10-17 14:48 ` [pve-devel] [WIP v2 cluster/network/manager/qemu-server/container 00/10] Add support for DHCP servers to SDN DERUMIER, Alexandre
2023-10-17 16:05 ` Stefan Hanreich
2023-10-17 21:00 ` DERUMIER, Alexandre
2023-10-17 16:04 ` Stefan Hanreich
2023-10-18 9:59 ` DERUMIER, Alexandre
2023-10-23 12:40 ` Stefan Lendl
2023-10-27 7:39 ` Thomas Lamprecht
2023-10-27 12:26 ` Stefan Lendl
2023-10-27 12:36 ` DERUMIER, Alexandre
2023-10-27 11:19 ` [pve-devel] [RFC SDN DHCP] Add and Remove DHCP mappings on vNIC add/remove Stefan Lendl
2023-10-27 11:20 ` Stefan Lendl
2023-10-27 11:20 ` [pve-devel] [RFC pve-network 1/3] dhcp add ip returns IP if already present for MAC Stefan Lendl
2023-10-27 11:20 ` [pve-devel] [RFC pve-network 2/3] always generate dnsmasq ethers file Stefan Lendl
2023-10-27 11:20 ` [pve-devel] [RFC pve-network 3/3] touch the ethers file when creating the dnsmasq config Stefan Lendl
2023-10-27 11:20 ` [pve-devel] [RFC pve-network] do not remove DHCP mapping on stop Stefan Lendl
2023-11-08 14:32 ` DERUMIER, Alexandre
2023-11-08 14:38 ` Stefan Hanreich
2023-11-08 15:41 ` DERUMIER, Alexandre
2023-10-27 11:20 ` [pve-devel] [RFC pve-network 4/5] do not remove DHCP mapping on VM stop Stefan Lendl
2023-10-27 11:20 ` [pve-devel] [RFC pve-network 5/5] DHCP mappings on vNIC add/remove Stefan Lendl
2023-10-27 11:29 ` [pve-devel] [RFC SDN DHCP] Add and Remove " Stefan Lendl
2023-10-27 11:29 ` [pve-devel] [RFC pve-network 1/6] dhcp add ip returns IP if already present for MAC Stefan Lendl
2023-10-27 11:29 ` [pve-devel] [RFC pve-network 2/6] always generate dnsmasq ethers file Stefan Lendl
2023-11-08 16:44 ` DERUMIER, Alexandre
2023-10-27 11:29 ` [pve-devel] [RFC pve-network 3/6] touch the ethers file when creating the dnsmasq config Stefan Lendl
2023-10-27 11:29 ` [pve-devel] [RFC pve-container 4/6] do not remove DHCP mapping on stop Stefan Lendl
2023-10-27 11:29 ` [pve-devel] [RFC qemu-server 5/6] do not remove DHCP mapping on VM stop Stefan Lendl
2023-10-27 11:30 ` [pve-devel] [RFC qemu-server 6/6] DHCP mappings on vNIC add/remove Stefan Lendl
2023-11-08 16:46 ` DERUMIER, Alexandre
2023-10-27 11:52 ` [pve-devel] [RFC SDN DHCP] Add and Remove " Thomas Lamprecht
2023-10-27 11:54 ` Stefan Lendl
2023-10-27 11:59 ` Thomas Lamprecht
2023-10-27 11:57 ` Thomas Lamprecht
2023-10-27 12:53 ` [pve-devel] [WIP v2 cluster/network/manager/qemu-server/container 00/10] Add support for DHCP servers to SDN Stefan Lendl
2023-10-27 13:37 ` DERUMIER, Alexandre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231017135507.2220948-3-s.hanreich@proxmox.com \
--to=s.hanreich@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal