public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Ciro Iriarte <cyruspy@gmail.com>
To: Thomas Lamprecht <t.lamprecht@proxmox.com>
Cc: pve-devel@lists.proxmox.com
Subject: Re: [PATCH common/manager/proxmox-widget-toolkit/storage 00/13] GUI Support for Custom Storage Plugins
Date: Sat, 18 Jul 2026 11:19:22 -0700 (PDT)	[thread overview]
Message-ID: <6a5bc3aa.1728eaf3.2a2f6.730c@mx.google.com> (raw)
In-Reply-To: <4d0f0ae5-5069-4aac-83f4-b9f1acfda0b5@proxmox.com>

Hi Thomas,

On P1: agreed, and the Rust UI framework settles it. If index.html.tpl
injection is going away, a blessed JS override path would only be a dead
end I'd have to migrate off later, so I'd rather it not exist.

The part I'd still like to see land eventually is the backend method you
sketched -- a plugin-provided live verification the UI can call. That
covers my actual use cases (credential and endpoint validation, and
eventually populating pool IDs from the array) without any client-side
plugin code. I'm not asking for it in this series; I'd just like it kept
on the map, and I'm happy to be a test case when you get to it. An array
with a REST control plane is a reasonable worst case, since a credential
check is a network round trip that can take seconds.

Meanwhile I've implemented check_connection() in my plugin -- it connects
to the management endpoint and reaches the pool, so an unreachable array
now reports as offline rather than silently passing. on_add_hook() already
did the same probe at add time.

On the deferred items, I'd rather send patches than keep asking. Starting
with P6 (the docs link) since it's the smallest and has no schema
semantics to bikeshed -- an external-marked link per plugin, as you
described. If that shape works, P5 (a human label alongside enum values,
so operators see "Ops Center Configuration Manager" instead of
"ops-center-cm") would follow.

On P4 I'd narrow what I originally asked for. Max is right that
translating arbitrary Perl regex to ECMAScript isn't worth the risk, so
not that: just a lookup table mapping the named formats that already
exist in JSONSchema.pm -- ip, ipv4, ipv6 and similar -- to the vtypes
that already exist in the widget toolkit. Driver-specific formats stay
server-side. That makes it a table rather than a translation problem.

I'll hold all three until the base series lands, unless you'd rather see
them on top of it -- no point creating rebase churn while v2 is in review.
Nothing from me on P2/P3; the default layout groundwork should come first.

The plugin code:

  https://github.com/ciroiriarte/pve-FCLUPlugin

That's a vendor-neutral framework (generic core plus per-vendor drivers);
the Hitachi VSP driver is the reference implementation and the only one
live-validated so far, against a VSP E590H. The index.html.tpl injection
I mentioned is in there, so it also serves as a worked example of the
workaround this series retires.

Thanks,
Ciro



  reply	other threads:[~2026-07-18 18:19 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-23 14:33 [PATCH common/manager/proxmox-widget-toolkit/storage 00/13] GUI Support for Custom Storage Plugins Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-common 01/13] json schema: add multiline string format Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-storage 02/13] api: plugins/storage: add initial routes and endpoints Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-storage 03/13] api: plugins/storage/plugin: include schema in plugin metadata Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-storage 04/13] api: plugins/storage/plugin: mark sensitive properties in schema Max R. Carrara
2026-07-14 11:21   ` Jakob Klocker
2026-06-23 14:33 ` [PATCH pve-storage 05/13] api: plugins/storage/plugin: factor plugin metadata code into helper Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-storage 06/13] api: plugins/storage/plugin: add plugins' 'content' to their metadata Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-storage 07/13] all plugins: add 'title' to properties, adapt 'description's Max R. Carrara
2026-07-14 11:24   ` Jakob Klocker
2026-06-23 14:33 ` [PATCH proxmox-widget-toolkit 08/13] form: introduce new 'proxmoxtextarea' field Max R. Carrara
2026-06-23 14:33 ` [PATCH proxmox-widget-toolkit 09/13] utils: introduce helper function getFieldDefFromPropertySchema Max R. Carrara
2026-06-23 14:33 ` [PATCH proxmox-widget-toolkit 10/13] acme: use helper to construct ExtJS fields from property schemas Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-manager 11/13] api: add API routes 'plugins' and 'plugins/storage' Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-manager 12/13] ui: storage view: display error when no editor for storage type exists Max R. Carrara
2026-06-23 14:33 ` [PATCH pve-manager 13/13] ui: storage: add basic UI integration for custom storage plugins Max R. Carrara
2026-07-14 11:33 ` [PATCH common/manager/proxmox-widget-toolkit/storage 00/13] GUI Support for Custom Storage Plugins Jakob Klocker
2026-07-15 13:57 ` Ciro Iriarte
2026-07-15 14:53   ` Thomas Lamprecht
2026-07-18 18:19     ` Ciro Iriarte [this message]
2026-07-16 10:20   ` Max R. Carrara
2026-07-17 15:53 ` superseded: " Max R. Carrara

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=6a5bc3aa.1728eaf3.2a2f6.730c@mx.google.com \
    --to=cyruspy@gmail.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=t.lamprecht@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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal