From: Arthur Bied-Charreton <a.bied-charreton@proxmox.com>
To: Lorne Guse <boomshankerx@hotmail.com>
Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: proxmox-truenas storage plugin api2 issue
Date: Thu, 16 Apr 2026 08:03:25 +0200 [thread overview]
Message-ID: <u5lkundlszfkhosu57ywuev5iiwg7u45wf2567uyvo4sz4lw5r@kl66bkjg5hcx> (raw)
In-Reply-To: <CO1PR17MB52769FFEFEC846C7D11AC72AD0222@CO1PR17MB5276.namprd17.prod.outlook.com>
On Wed, Apr 15, 2026 at 09:59:20PM +0000, Lorne Guse wrote:
> One of my users ran across an issue I could use some help with. https://github.com/boomshankerx/proxmox-truenas/issues/133
> When trying to use Veeam with my custom storage plugin, the output of /api2/json/nodes/NODE/storage shows the active field as string "1" instead of int 1. This is causing tools like Veeam to fail.
>
> Is this a problem with my plugin or something further up the stack?
>
> # OUTPUT JSON
>
> {
> "data": [
> {
> "shared": 0,
> "storage": "local",
> "content": "iso,vztmpl,backup",
> "used": 131072,
> "type": "dir",
> "enabled": 1,
> "avail": 236805029888,
> "used_fraction": 5.53501450173799e-7,
> "active": 1,
> "total": 236805160960
> },
> {
> "shared": 1,
> "content": "images",
> "storage": "nas.proxmox",
> "used": 0,
> "type": "nfs",
> "enabled": 1,
> "avail": 7313282826240,
> "used_fraction": 0,
> "active": 1,
> "total": 7313282826240
> },
> {
> "shared": 1,
> "storage": "nas",
> "content": "images",
> "used": 443571322880,
> "type": "truenas",
> "enabled": 1,
> "used_fraction": 0.0571844359724994,
> "avail": 7313282711552,
> "active": "1",
> "total": 7756854034432
> },
>
> ]
> }
>
> --
> BooMShanꓘerX
> (Lorne Guse)
Hey Lorne,
Dietmar and I investigated this: in your code [0], you
string-interpolate $active for logging before returning it. This sets
the pPOK flag, leading to the JSON encoder interpreting it as a string.
This is not an issue for $total, $available, and $used because we cast
those to int on our side [1].
I did not look very deeply into this, but my guess as to why we do not
cast $active as well is to allow other truthy values like 'yes', 'true',
etc - maybe someone who knows can chime in here?
Anyway, you should be able to fix this on your side by forcing $active
into a numeric value, with int($active) or by adding 0 to it before
returning it.
[0] https://github.com/boomshankerx/proxmox-truenas/blob/b4e73456e2de3c9ba1f589349ce5c87cd6199251/perl5/PVE/Storage/Custom/TrueNASPlugin.pm#L462
[1] https://git.proxmox.com/?p=pve-storage.git;a=blob;f=src/PVE/Storage.pm;h=6e87bac36edf277a02a6fb5c9e600ef8281b34ad;hb=refs/heads/master#l1523
next prev parent reply other threads:[~2026-04-16 6:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-15 21:59 Lorne Guse
2026-04-16 6:03 ` Arthur Bied-Charreton [this message]
2026-04-16 6:20 ` Arthur Bied-Charreton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=u5lkundlszfkhosu57ywuev5iiwg7u45wf2567uyvo4sz4lw5r@kl66bkjg5hcx \
--to=a.bied-charreton@proxmox.com \
--cc=boomshankerx@hotmail.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox