]>
git.proxmox.com Git - pve-network.git/blob - PVE/Network/Vnet.pm
1 package PVE
::Network
::Vnet
;
6 use PVE
::Cluster
qw(cfs_read_file cfs_write_file cfs_lock_file);
10 my ($cfg, $vnetid, $noerr) = @_;
12 die "no vnet ID specified\n" if !$vnetid;
14 my $scfg = $cfg->{ids
}->{$vnetid};
15 die "vnet '$vnetid' does not exists\n" if (!$noerr && !$scfg);
22 return cfs_read_file
("network/vnet.cfg");
27 cfs_write_file
("network/vnet.cfg", $cfg);
30 sub lock_vnet_config
{
31 my ($code, $errmsg) = @_;
33 cfs_lock_file
("network/vnet.cfg", undef, $code);
36 $errmsg ?
die "$errmsg: $err" : die $err;
43 return keys %{$cfg->{ids
}};
47 my ($cmdname, $pname, $cvalue) = @_;
49 my $cfg = PVE
::Network
::Vnet
::config
();
51 return $cmdname eq 'add' ?
[] : [ PVE
::Network
::Vnet
::vnets_ids
($cfg) ];
55 my $format_config_line = sub {
56 my ($schema, $key, $value) = @_;
58 my $ct = $schema->{type
};
60 die "property '$key' contains a line feed\n"
61 if ($key =~ m/[\n\r]/) || ($value =~ m/[\n\r]/);
63 if ($ct eq 'boolean') {
64 return "\t$key " . ($value ?
1 : 0) . "\n"
67 return "\t$key $value\n" if "$value" ne '';