TT#36755 Add internal consistency check for address families

If we are using DHCP we do not need either an IPv4 nor an IPv6. If we
have an IPv6 we do not need an IPv4. If we have a netmask, a shared
IP, an advertised IP, we should have the matching IP setting.

Change-Id: I13f190086a0540495b0314e58ca301aae6db0453
changes/38/22538/6
Guillem Jover 8 years ago
parent ae25a37bad
commit 80f70d88b2

@ -159,6 +159,34 @@ foreach my $hostname (sort keys %{$yaml->{hosts}}) {
$ifacemap->{mapping}->{netmask}->{required} = 'yes';
}
# Consistency checks.
if (defined $host->{$iface}->{dhcp}) {
$ifacemap->{mapping}->{ip}->{required} = 'no';
$ifacemap->{mapping}->{v6ip}->{required} = 'no';
} elsif (defined $host->{$iface}->{ip}) {
$ifacemap->{mapping}->{ip}->{required} = 'yes';
$ifacemap->{mapping}->{v6ip}->{required} = 'no';
} elsif (defined $host->{$iface}->{v6ip}) {
$ifacemap->{mapping}->{ip}->{required} = 'no';
$ifacemap->{mapping}->{v6ip}->{required} = 'yes';
}
if (defined $host->{$iface}->{ip}) {
$ifacemap->{mapping}->{netmask}->{required} = 'yes';
}
if (defined $host->{$iface}->{netmask} or
defined $host->{$iface}->{shared_ip} or
defined $host->{$iface}->{advertised_ip}) {
$ifacemap->{mapping}->{ip}->{required} = 'yes';
}
if (defined $host->{$iface}->{v6ip}) {
$ifacemap->{mapping}->{v6netmask}->{required} = 'yes';
}
if (defined $host->{$iface}->{v6netmask} or
defined $host->{$iface}->{shared_v6ip}) {
$ifacemap->{mapping}->{v6ip}->{required} = 'yes';
}
$hostmap->{mapping}->{$iface} = $ifacemap;
}

Loading…
Cancel
Save