[pmg-devel] [RFC pmg-api 2/4] PMG::Config: refactor dns info collection
Stoiko Ivanov
s.ivanov at proxmox.com
Tue Nov 12 15:16:12 CET 2019
Create a sub for gathering dns info of the current node (hostname, domainname,
fqdn) - so we can reuse it.
Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
src/PMG/Config.pm | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/PMG/Config.pm b/src/PMG/Config.pm
index 4634bd5..4cbc520 100755
--- a/src/PMG/Config.pm
+++ b/src/PMG/Config.pm
@@ -1175,13 +1175,31 @@ PVE::INotify::register_file('transport', $transport_map_filename,
# config file generation using templates
+sub get_host_dns_info {
+ my ($self) = @_;
+
+ my $dnsinfo = {};
+ my $nodename = PVE::INotify::nodename();
+
+ $dnsinfo->{hostname} = $nodename;
+ my $resolv = PVE::INotify::read_file('resolvconf');
+
+ my $domain = $resolv->{search} // 'localdomain';
+ $dnsinfo->{domain} = $domain;
+
+ $dnsinfo->{fqdn} = "$nodename.$domain";
+
+ return $dnsinfo;
+}
+
sub get_template_vars {
my ($self) = @_;
my $vars = { pmg => $self->get_config() };
- my $nodename = PVE::INotify::nodename();
- my $int_ip = PMG::Cluster::remote_node_ip($nodename);
+ my $dnsinfo = get_host_dns_info();
+ $vars->{dns} = $dnsinfo;
+ my $int_ip = PMG::Cluster::remote_node_ip($dnsinfo->{hostname});
$vars->{ipconfig}->{int_ip} = $int_ip;
my $transportnets = [];
@@ -1259,13 +1277,7 @@ sub get_template_vars {
$vars->{postfix}->{int_ip} = $int_ip;
}
- my $resolv = PVE::INotify::read_file('resolvconf');
- $vars->{dns}->{hostname} = $nodename;
-
- my $domain = $resolv->{search} // 'localdomain';
- $vars->{dns}->{domain} = $domain;
-
- my $wlbr = "$nodename.$domain";
+ my $wlbr = $dnsinfo->{fqdn};
foreach my $r (PVE::Tools::split_list($vars->{pmg}->{spam}->{wl_bounce_relays})) {
$wlbr .= " $r"
}
--
2.20.1
More information about the pmg-devel
mailing list