]>
git.proxmox.com Git - pve-network.git/blob - PVE/Network/SDN/Vnets.pm
95a74f58a3523b52f3a0ffcdb3c6d50c92d9e903
1 package PVE
::Network
::SDN
::Vnets
;
6 use PVE
::Cluster
qw(cfs_read_file cfs_write_file cfs_lock_file);
9 use PVE
::Network
::SDN
::VnetPlugin
;
10 PVE
::Network
::SDN
::VnetPlugin-
>register();
11 PVE
::Network
::SDN
::VnetPlugin-
>init();
13 sub sdn_vnets_config
{
14 my ($cfg, $id, $noerr) = @_;
16 die "no sdn vnet ID specified\n" if !$id;
18 my $scfg = $cfg->{ids
}->{$id};
19 die "sdn vnet '$id' does not exists\n" if (!$noerr && !$scfg);
25 my $config = cfs_read_file
("sdn/vnets.cfg.new");
26 $config = cfs_read_file
("sdn/vnets.cfg") if !keys %{$config->{ids
}};
33 cfs_write_file
("sdn/vnets.cfg.new", $cfg);
36 sub lock_sdn_vnets_config
{
37 my ($code, $errmsg) = @_;
39 cfs_lock_file
("sdn/vnets.cfg.new", undef, $code);
41 $errmsg ?
die "$errmsg: $err" : die $err;
48 return keys %{$cfg->{ids
}};
51 sub complete_sdn_vnet
{
52 my ($cmdname, $pname, $cvalue) = @_;
54 my $cfg = PVE
::Network
::SDN
::Vnets
::config
();
56 return $cmdname eq 'add' ?
[] : [ PVE
::Network
::SDN
::Vnets
::sdn_vnet_ids
($cfg) ];