[pve-devel] [PATCH] fix #6315: Add a description field for storage

Alexander Abraham a.abraham at proxmox.com
Mon Jul 14 14:54:40 CEST 2025


A description field was added to the schema for
different types of storage inside their respective
plugins.

Signed-off-by: Alexander Abraham <a.abraham at proxmox.com>
---
 src/PVE/Storage/BTRFSPlugin.pm       | 2 ++
 src/PVE/Storage/CIFSPlugin.pm        | 2 ++
 src/PVE/Storage/CephFSPlugin.pm      | 2 ++
 src/PVE/Storage/DirPlugin.pm         | 6 ++++++
 src/PVE/Storage/ESXiPlugin.pm        | 2 ++
 src/PVE/Storage/ISCSIDirectPlugin.pm | 2 ++
 src/PVE/Storage/ISCSIPlugin.pm       | 2 ++
 src/PVE/Storage/LVMPlugin.pm         | 2 ++
 src/PVE/Storage/LvmThinPlugin.pm     | 2 ++
 src/PVE/Storage/NFSPlugin.pm         | 2 ++
 src/PVE/Storage/PBSPlugin.pm         | 2 ++
 src/PVE/Storage/RBDPlugin.pm         | 2 ++
 src/PVE/Storage/ZFSPlugin.pm         | 2 ++
 src/PVE/Storage/ZFSPoolPlugin.pm     | 2 ++
 14 files changed, 32 insertions(+)

diff --git a/src/PVE/Storage/BTRFSPlugin.pm b/src/PVE/Storage/BTRFSPlugin.pm
index 8c79ea4..519bb5f 100644
--- a/src/PVE/Storage/BTRFSPlugin.pm
+++ b/src/PVE/Storage/BTRFSPlugin.pm
@@ -31,6 +31,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [
             {
                 images => 1,
@@ -64,6 +65,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         path => { fixed => 1 },
         nodes => { optional => 1 },
         shared => { optional => 1 },
diff --git a/src/PVE/Storage/CIFSPlugin.pm b/src/PVE/Storage/CIFSPlugin.pm
index c1441e9..cfe084f 100644
--- a/src/PVE/Storage/CIFSPlugin.pm
+++ b/src/PVE/Storage/CIFSPlugin.pm
@@ -98,6 +98,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [
             {
                 images => 1,
@@ -146,6 +147,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         path => { fixed => 1 },
         'content-dirs' => { optional => 1 },
         server => { fixed => 1 },
diff --git a/src/PVE/Storage/CephFSPlugin.pm b/src/PVE/Storage/CephFSPlugin.pm
index 67c79aa..78c933b 100644
--- a/src/PVE/Storage/CephFSPlugin.pm
+++ b/src/PVE/Storage/CephFSPlugin.pm
@@ -116,6 +116,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content =>
             [{ vztmpl => 1, iso => 1, backup => 1, snippets => 1, import => 1 }, { backup => 1 }],
         'sensitive-properties' => { keyring => 1 },
@@ -138,6 +139,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         path => { fixed => 1 },
         'content-dirs' => { optional => 1 },
         monhost => { optional => 1 },
diff --git a/src/PVE/Storage/DirPlugin.pm b/src/PVE/Storage/DirPlugin.pm
index 10e4f70..7e2c9c0 100644
--- a/src/PVE/Storage/DirPlugin.pm
+++ b/src/PVE/Storage/DirPlugin.pm
@@ -24,6 +24,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [
             {
                 images => 1,
@@ -44,6 +45,10 @@ sub plugindata {
 
 sub properties {
     return {
+        description => {
+          description => "The description for the storage to be added.",
+          type => "string"
+        },
         path => {
             description => "File system path.",
             type => 'string',
@@ -79,6 +84,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         path => { fixed => 1 },
         'content-dirs' => { optional => 1 },
         nodes => { optional => 1 },
diff --git a/src/PVE/Storage/ESXiPlugin.pm b/src/PVE/Storage/ESXiPlugin.pm
index ab5242d..fdd70b8 100644
--- a/src/PVE/Storage/ESXiPlugin.pm
+++ b/src/PVE/Storage/ESXiPlugin.pm
@@ -29,6 +29,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ import => 1 }, { import => 1 }],
         format => [{ raw => 1, qcow2 => 1, vmdk => 1 }, 'raw'],
         'sensitive-properties' => { password => 1 },
@@ -48,6 +49,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         nodes => { optional => 1 },
         shared => { optional => 1 },
         disable => { optional => 1 },
diff --git a/src/PVE/Storage/ISCSIDirectPlugin.pm b/src/PVE/Storage/ISCSIDirectPlugin.pm
index 9b7f77c..072a95e 100644
--- a/src/PVE/Storage/ISCSIDirectPlugin.pm
+++ b/src/PVE/Storage/ISCSIDirectPlugin.pm
@@ -64,6 +64,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, none => 1 }, { images => 1 }],
         select_existing => 1,
         'sensitive-properties' => {},
@@ -72,6 +73,7 @@ sub plugindata {
 
 sub options {
     return {
+        description => { optional => 1 },
         portal => { fixed => 1 },
         target => { fixed => 1 },
         nodes => { optional => 1 },
diff --git a/src/PVE/Storage/ISCSIPlugin.pm b/src/PVE/Storage/ISCSIPlugin.pm
index 7691ec6..71a1dfa 100644
--- a/src/PVE/Storage/ISCSIPlugin.pm
+++ b/src/PVE/Storage/ISCSIPlugin.pm
@@ -334,6 +334,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, none => 1 }, { images => 1 }],
         select_existing => 1,
         'sensitive-properties' => {},
@@ -356,6 +357,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         portal => { fixed => 1 },
         target => { fixed => 1 },
         nodes => { optional => 1 },
diff --git a/src/PVE/Storage/LVMPlugin.pm b/src/PVE/Storage/LVMPlugin.pm
index 1a992e8..484677f 100644
--- a/src/PVE/Storage/LVMPlugin.pm
+++ b/src/PVE/Storage/LVMPlugin.pm
@@ -275,6 +275,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, rootdir => 1 }, { images => 1 }],
         'sensitive-properties' => {},
     };
@@ -309,6 +310,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         vgname => { fixed => 1 },
         nodes => { optional => 1 },
         shared => { optional => 1 },
diff --git a/src/PVE/Storage/LvmThinPlugin.pm b/src/PVE/Storage/LvmThinPlugin.pm
index c244c91..f16a6f8 100644
--- a/src/PVE/Storage/LvmThinPlugin.pm
+++ b/src/PVE/Storage/LvmThinPlugin.pm
@@ -30,6 +30,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, rootdir => 1 }, { images => 1, rootdir => 1 }],
         'sensitive-properties' => {},
     };
@@ -47,6 +48,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         thinpool => { fixed => 1 },
         vgname => { fixed => 1 },
         nodes => { optional => 1 },
diff --git a/src/PVE/Storage/NFSPlugin.pm b/src/PVE/Storage/NFSPlugin.pm
index 65c5e11..08106b1 100644
--- a/src/PVE/Storage/NFSPlugin.pm
+++ b/src/PVE/Storage/NFSPlugin.pm
@@ -53,6 +53,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [
             {
                 images => 1,
@@ -87,6 +88,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         path => { fixed => 1 },
         'content-dirs' => { optional => 1 },
         server => { fixed => 1 },
diff --git a/src/PVE/Storage/PBSPlugin.pm b/src/PVE/Storage/PBSPlugin.pm
index 00170f5..02f7097 100644
--- a/src/PVE/Storage/PBSPlugin.pm
+++ b/src/PVE/Storage/PBSPlugin.pm
@@ -29,6 +29,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ backup => 1, none => 1 }, { backup => 1 }],
         'sensitive-properties' => {
             'encryption-key' => 1,
@@ -61,6 +62,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         server => { fixed => 1 },
         datastore => { fixed => 1 },
         namespace => { optional => 1 },
diff --git a/src/PVE/Storage/RBDPlugin.pm b/src/PVE/Storage/RBDPlugin.pm
index c0bbe2c..347275d 100644
--- a/src/PVE/Storage/RBDPlugin.pm
+++ b/src/PVE/Storage/RBDPlugin.pm
@@ -382,6 +382,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, rootdir => 1 }, { images => 1 }],
         'sensitive-properties' => { keyring => 1 },
     };
@@ -428,6 +429,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         nodes => { optional => 1 },
         disable => { optional => 1 },
         monhost => { optional => 1 },
diff --git a/src/PVE/Storage/ZFSPlugin.pm b/src/PVE/Storage/ZFSPlugin.pm
index f0fa522..d404fe5 100644
--- a/src/PVE/Storage/ZFSPlugin.pm
+++ b/src/PVE/Storage/ZFSPlugin.pm
@@ -174,6 +174,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1 }, { images => 1 }],
         'sensitive-properties' => {},
     };
@@ -209,6 +210,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         nodes => { optional => 1 },
         disable => { optional => 1 },
         portal => { fixed => 1 },
diff --git a/src/PVE/Storage/ZFSPoolPlugin.pm b/src/PVE/Storage/ZFSPoolPlugin.pm
index 713d26f..e9c9aa0 100644
--- a/src/PVE/Storage/ZFSPoolPlugin.pm
+++ b/src/PVE/Storage/ZFSPoolPlugin.pm
@@ -20,6 +20,7 @@ sub type {
 
 sub plugindata {
     return {
+        description => {},
         content => [{ images => 1, rootdir => 1 }, { images => 1, rootdir => 1 }],
         format => [{ raw => 1, subvol => 1 }, 'raw'],
         'sensitive-properties' => {},
@@ -46,6 +47,7 @@ sub properties {
 
 sub options {
     return {
+        description => { optional => 1 },
         pool => { fixed => 1 },
         blocksize => { optional => 1 },
         sparse => { optional => 1 },
-- 
2.39.5





More information about the pve-devel mailing list