]> git.proxmox.com Git - pve-network.git/blob - PVE/Network/SDN/Dns.pm
controllers: evpn : use frr restart if reload fail
[pve-network.git] / PVE / Network / SDN / Dns.pm
1 package PVE::Network::SDN::Dns;
2
3 use strict;
4 use warnings;
5
6 use Data::Dumper;
7 use JSON;
8
9 use PVE::Tools qw(extract_param dir_glob_regex run_command);
10 use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_lock_file);
11 use PVE::Network;
12
13 use PVE::Network::SDN::Dns::PowerdnsPlugin;
14 use PVE::Network::SDN::Dns::Plugin;
15
16 PVE::Network::SDN::Dns::PowerdnsPlugin->register();
17 PVE::Network::SDN::Dns::Plugin->init();
18
19
20 sub sdn_dns_config {
21 my ($cfg, $id, $noerr) = @_;
22
23 die "no sdn dns ID specified\n" if !$id;
24
25 my $scfg = $cfg->{ids}->{$id};
26 die "sdn '$id' does not exist\n" if (!$noerr && !$scfg);
27
28 return $scfg;
29 }
30
31 sub config {
32 my $config = cfs_read_file("sdn/dns.cfg");
33 return $config;
34 }
35
36 sub write_config {
37 my ($cfg) = @_;
38
39 cfs_write_file("sdn/dns.cfg", $cfg);
40 }
41
42 sub sdn_dns_ids {
43 my ($cfg) = @_;
44
45 return keys %{$cfg->{ids}};
46 }
47
48 sub complete_sdn_dns {
49 my ($cmdname, $pname, $cvalue) = @_;
50
51 my $cfg = PVE::Network::SDN::Dns::config();
52
53 return $cmdname eq 'add' ? [] : [ PVE::Network::SDN::Dns::sdn_dns_ids($cfg) ];
54 }
55
56 1;
57