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:
Stefan Hanreich 2025-03-10 09:51:01 +01:00 committed by Thomas Lamprecht
parent b673a106c5
commit f36174e072

View file

@ -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 {