schema: add pve-volume-id-or-absolute-path

Signed-off-by: Dominic Jäger <d.jaeger@proxmox.com>
[split into its own patch + style fixes]
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fabian Ebner 2022-03-09 11:09:11 +01:00 committed by Fabian Grünbichler
parent ff84f0e36b
commit 6e55f5799e

View File

@ -1036,11 +1036,17 @@ PVE::JSONSchema::register_format('pve-volume-id-or-qm-path', \&verify_volume_id_
sub verify_volume_id_or_qm_path {
my ($volid, $noerr) = @_;
if ($volid eq 'none' || $volid eq 'cdrom' || $volid =~ m|^/|) {
return $volid;
}
return $volid if $volid eq 'none' || $volid eq 'cdrom';
return verify_volume_id_or_absolute_path($volid, $noerr);
}
PVE::JSONSchema::register_format('pve-volume-id-or-absolute-path', \&verify_volume_id_or_absolute_path);
sub verify_volume_id_or_absolute_path {
my ($volid, $noerr) = @_;
return $volid if $volid =~ m|^/|;
# if its neither 'none' nor 'cdrom' nor a path, check if its a volume-id
$volid = eval { PVE::JSONSchema::check_format('pve-volume-id', $volid, '') };
if ($@) {
return if $noerr;