}
}
+sub update_ip {
+ my ($class, $plugin_config, $subnetid, $subnet, $ip, $hostname, $mac, $description, $is_gateway) = @_;
+
+ my $cidr = $subnet->{cidr};
+ my $url = $plugin_config->{url};
+ my $token = $plugin_config->{token};
+ my $section = $plugin_config->{section};
+ my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
+
+ my $ip_id = get_ip_id($url, $ip, $headers);
+ die "can't find ip addresse in ipam" if !$ip_id;
+
+ my $params = {
+ is_gateway => $is_gateway,
+ hostname => $hostname,
+ description => $description,
+ };
+ $params->{mac} = $mac if $mac;
+
+ eval {
+ PVE::Network::SDN::Ipams::Plugin::api_request("PATCH", "$url/addresses/$ip_id", $headers, $params);
+ };
+
+ if ($@) {
+ die "ipam: error update subnet ip $ip: $@";
+ }
+}
+
sub add_next_freeip {
my ($class, $plugin_config, $subnetid, $subnet, $hostname, $mac, $description) = @_;