forked from Mirror/pve-network
partial fix #5496: ipam: netbox: properly return allocated ip
The netbox integration did not properly return the IP when creating the entries in netbox. This lead to errors on starting the guest, stating that an IP could not be allocated. Originally-by: lou lecrivain <lou.lecrivain@wdz.de> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com> Tested-by: Hannes Duerr <h.duerr@proxmox.com> Link: https://lore.proxmox.com/20250310085103.30549-6-s.hanreich@proxmox.com Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
b673a106c5
commit
f36174e072
|
@ -172,7 +172,7 @@ sub add_next_freeip {
|
||||||
my $description = undef;
|
my $description = undef;
|
||||||
$description = "mac:$mac" if $mac;
|
$description = "mac:$mac" if $mac;
|
||||||
|
|
||||||
eval {
|
my $ip = eval {
|
||||||
my $result = netbox_api_request($plugin_config, "POST", "/ipam/prefixes/$internalid/available-ips/", {
|
my $result = netbox_api_request($plugin_config, "POST", "/ipam/prefixes/$internalid/available-ips/", {
|
||||||
dns_name => $hostname,
|
dns_name => $hostname,
|
||||||
description => $description,
|
description => $description,
|
||||||
|
@ -185,6 +185,8 @@ sub add_next_freeip {
|
||||||
if ($@) {
|
if ($@) {
|
||||||
die "can't find free ip in subnet $cidr: $@" if !$noerr;
|
die "can't find free ip in subnet $cidr: $@" if !$noerr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub add_range_next_freeip {
|
sub add_range_next_freeip {
|
||||||
|
@ -201,7 +203,7 @@ sub add_range_next_freeip {
|
||||||
my $description = undef;
|
my $description = undef;
|
||||||
$description = "mac:$data->{mac}" if $data->{mac};
|
$description = "mac:$data->{mac}" if $data->{mac};
|
||||||
|
|
||||||
eval {
|
my $ip = eval {
|
||||||
my $result = netbox_api_request($plugin_config, "POST", "/ipam/ip-ranges/$internalid/available-ips/", {
|
my $result = netbox_api_request($plugin_config, "POST", "/ipam/ip-ranges/$internalid/available-ips/", {
|
||||||
dns_name => $data->{hostname},
|
dns_name => $data->{hostname},
|
||||||
description => $description,
|
description => $description,
|
||||||
|
@ -215,6 +217,8 @@ sub add_range_next_freeip {
|
||||||
if ($@) {
|
if ($@) {
|
||||||
die "can't find free ip in range $range->{'start-address'}-$range->{'end-address'}: $@" if !$noerr;
|
die "can't find free ip in range $range->{'start-address'}-$range->{'end-address'}: $@" if !$noerr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub del_ip {
|
sub del_ip {
|
||||||
|
|
Loading…
Reference in a new issue