]> git.proxmox.com Git - pve-network.git/blob - PVE/Network/SDN/Vnets.pm
sdn/vnets: explicitly return config
[pve-network.git] / PVE / Network / SDN / Vnets.pm
1 package PVE::Network::SDN::Vnets;
2
3 use strict;
4 use warnings;
5
6 use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_lock_file);
7
8 use PVE::Network::SDN::VnetPlugin;
9 PVE::Network::SDN::VnetPlugin->register();
10 PVE::Network::SDN::VnetPlugin->init();
11
12 sub sdn_vnets_config {
13 my ($cfg, $id, $noerr) = @_;
14
15 die "no sdn vnet ID specified\n" if !$id;
16
17 my $scfg = $cfg->{ids}->{$id};
18 die "sdn vnet '$id' does not exist\n" if (!$noerr && !$scfg);
19
20 return $scfg;
21 }
22
23 sub config {
24 return cfs_read_file("sdn/vnets.cfg");
25 }
26
27 sub write_config {
28 my ($cfg) = @_;
29
30 cfs_write_file("sdn/vnets.cfg", $cfg);
31 }
32
33 sub sdn_vnets_ids {
34 my ($cfg) = @_;
35
36 return keys %{$cfg->{ids}};
37 }
38
39 sub complete_sdn_vnet {
40 my ($cmdname, $pname, $cvalue) = @_;
41
42 my $cfg = PVE::Network::SDN::Vnets::config();
43
44 return $cmdname eq 'add' ? [] : [ PVE::Network::SDN::Vnets::sdn_vnet_ids($cfg) ];
45 }
46
47 sub get_vnet {
48 my ($vnetid) = @_;
49
50 my $cfg = PVE::Network::SDN::Vnets::config();
51 my $vnet = PVE::Network::SDN::Vnets::sdn_vnets_config($cfg, $vnetid, 1);
52 return $vnet;
53 }
54
55 1;