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