url => { optional => 0},
token => { optional => 0 },
section => { optional => 0 },
+ fingerprint => { optional => 1 },
};
}
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
my $section = $plugin_config->{section};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
#search subnet
sectionId => $section,
};
- eval { PVE::Network::SDN::api_request("POST", "$url/subnets/", $headers, $params) };
+ eval { PVE::Network::SDN::api_request("POST", "$url/subnets/", $headers, $params, $fingerprint) };
die "error add subnet to ipam: $@" if $@ && !$noerr;
}
}
my $cidr = $subnet->{cidr};
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $internalid = get_prefix_id($url, $cidr, $headers);
return; #fixme: check that prefix is empty exluding gateway, before delete
- eval { PVE::Network::SDN::api_request("DELETE", "$url/subnets/$internalid", $headers) };
+ eval { PVE::Network::SDN::api_request("DELETE", "$url/subnets/$internalid", $headers, undef, $fingerprint) };
die "error deleting subnet from ipam: $@" if $@ && !$noerr;
}
my $cidr = $subnet->{cidr};
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $internalid = get_prefix_id($url, $cidr, $headers);
$params->{mac} = $mac if $mac;
eval {
- PVE::Network::SDN::api_request("POST", "$url/addresses/", $headers, $params);
+ PVE::Network::SDN::api_request("POST", "$url/addresses/", $headers, $params, $fingerprint);
};
if ($@) {
my $cidr = $subnet->{cidr};
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $ip_id = get_ip_id($url, $ip, $headers);
$params->{mac} = $mac if $mac;
eval {
- PVE::Network::SDN::api_request("PATCH", "$url/addresses/$ip_id", $headers, $params);
+ PVE::Network::SDN::api_request("PATCH", "$url/addresses/$ip_id", $headers, $params,$fingerprint);
};
if ($@) {
my $mask = $subnet->{mask};
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $internalid = get_prefix_id($url, $cidr, $headers);
my $ip = undef;
eval {
- my $result = PVE::Network::SDN::api_request("POST", "$url/addresses/first_free/$internalid/", $headers, $params);
+ my $result = PVE::Network::SDN::api_request("POST", "$url/addresses/first_free/$internalid/", $headers, $params, $fingerprint);
$ip = $result->{data};
};
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $ip_id = get_ip_id($url, $ip, $headers);
return if !$ip_id;
eval {
- PVE::Network::SDN::api_request("DELETE", "$url/addresses/$ip_id", $headers);
+ PVE::Network::SDN::api_request("DELETE", "$url/addresses/$ip_id", $headers, undef, $fingerprint);
};
if ($@) {
die "error delete ip $ip: $@" if !$noerr;
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
my $ip4 = undef;
my $ip6 = undef;
- my $ips = eval { PVE::Network::SDN::api_request("GET", "$url/addresses/search_mac/$mac", $headers) };
+ my $ips = eval { PVE::Network::SDN::api_request("GET", "$url/addresses/search_mac/$mac", $headers, undef, $fingerprint) };
return if $@;
#fixme
my $url = $plugin_config->{url};
my $token = $plugin_config->{token};
my $sectionid = $plugin_config->{section};
+ my $fingerprint = $plugin_config->{fingerprint};
my $headers = ['Content-Type' => 'application/json; charset=UTF-8', 'Token' => $token];
eval {
- PVE::Network::SDN::api_request("GET", "$url/sections/$sectionid", $headers);
+ PVE::Network::SDN::api_request("GET", "$url/sections/$sectionid", $headers, undef, $fingerprint);
};
if ($@) {
die "Can't connect to phpipam api: $@";