my $params = { ip => $ip,
subnetId => $internalid,
- is_gateway => $is_gateway,
hostname => $hostname,
description => $description,
};
+ $params->{is_gateway} = 1 if $is_gateway;
$params->{mac} = $mac if $mac;
eval {
};
if ($@) {
- die "error add subnet ip to ipam: ip $ip already exist: $@" if !$noerr;
+ if($is_gateway) {
+ die "error add subnet ip to ipam: ip $ip already exist: $@" if !is_ip_gateway($url, $ip, $headers) && !$noerr;
+ } else {
+ die "error add subnet ip to ipam: ip $ip already exist: $@" if !$noerr;
+ }
}
}
die "can't find ip addresse in ipam" if !$ip_id;
my $params = {
- is_gateway => $is_gateway,
hostname => $hostname,
description => $description,
};
+ $params->{is_gateway} = 1 if $is_gateway;
$params->{mac} = $mac if $mac;
eval {
return $ip_id;
}
+sub is_ip_gateway {
+ my ($url, $ip, $headers) = @_;
+ my $result = PVE::Network::SDN::api_request("GET", "$url/addresses/search/$ip", $headers);
+ my $data = @{$result->{data}}[0];
+ my $is_gateway = $data->{is_gateway};
+ return $is_gateway;
+}
+
1;