[pve-devel] [PATCH pve-network v3 1/3] ipam: nautobot: base plugin

Hannes Dürr h.duerr at proxmox.com
Wed Mar 19 10:21:18 CET 2025


On 3/6/25 12:08, lou.lecrivain at orange.fr wrote:

[...]

> +sub verify_api {
> +    my ($class, $plugin_config) = @_;
> +
> +    my $url = $plugin_config->{url};
> +    my $namespace = $plugin_config->{namespace};
> +    my $headers = default_headers($plugin_config);
> +
> +    # check that the namespace exists AND that default IP active status
> +    # exists AND that we have indeed API access
> +    eval {
> +	get_namespace_id($url, $namespace, $headers, 0)
> +	    // die "namespace $namespace does not exist";
> +	get_status_id($url, default_ip_status(), $headers, 0)
> +	    // die "default IP status ". default_ip_status() . " not found";
> +    };
> +    if ($@) {
> +	die "Can't use nautobot api: $@";
> +    }
> +}
> +

[...]

> +sub get_status_id {
> +    my ($url, $status, $headers, $noerr) = @_;
> +
> +    my $result = eval {
> +	return PVE::Network::SDN::api_request(
> +	    "GET", "$url/extras/statuses/?q=$status", $headers);
> +    };
Unfortunately, I don't quite understand what this check actually does, 
or why we need this check.
The documentation [0] says:
`Nautobot provides the ability for custom statuses to be defined
within an organisation to be used on various objects to facilitate
business workflows around object statuses.`

And as I understand the API call, it checks whether the
status object ‘Active’ exists and gets its ID. But I don't
understand why this should be checked with `verify_api`?
In my opinion, we don't really need this check, unless I'm missing 
something here.

[0] 
https://docs.nautobot.com/projects/core/en/stable/user-guide/platform-functionality/status/ 

> +    if ($@) {
> +	die "error while querying for status $status id: $@" if !$noerr;
> +    }
> +
> +    my $data = @{$result->{results}}[0];
> +    my $internalid = $data->{id};
> +    return $internalid;
> +}




More information about the pve-devel mailing list