]> git.proxmox.com Git - pve-storage.git/blobdiff - PVE/API2/Disks/LVM.pm
disks: allow add_storage for already configured local storage
[pve-storage.git] / PVE / API2 / Disks / LVM.pm
index ef341d1ce67ebd54bb4d9ee9c341f35a8fda385c..fe875452bdaa170040b36a98f493f7876ff51f4b 100644 (file)
@@ -150,7 +150,26 @@ __PACKAGE__->register_method ({
 
        $dev = PVE::Diskmanage::verify_blockdev_path($dev);
        PVE::Diskmanage::assert_disk_unused($dev);
-       PVE::Storage::assert_sid_unused($name) if $param->{add_storage};
+
+       my $storage_params = {
+           type => 'lvm',
+           vgname => $name,
+           storage => $name,
+           content => 'rootdir,images',
+           shared => 0,
+           nodes => $node,
+       };
+       my $verify_params = [qw(vgname)];
+
+       if ($param->{add_storage}) {
+           PVE::API2::Storage::Config->create_or_update(
+               $name,
+               $node,
+               $storage_params,
+               $verify_params,
+               1,
+           );
+       }
 
        my $worker = sub {
            PVE::Diskmanage::locked_disk_action(sub {
@@ -168,16 +187,12 @@ __PACKAGE__->register_method ({
                PVE::Diskmanage::udevadm_trigger($dev);
 
                if ($param->{add_storage}) {
-                   my $storage_params = {
-                       type => 'lvm',
-                       vgname => $name,
-                       storage => $name,
-                       content => 'rootdir,images',
-                       shared => 0,
-                       nodes => $node,
-                   };
-
-                   PVE::API2::Storage::Config->create($storage_params);
+                   PVE::API2::Storage::Config->create_or_update(
+                       $name,
+                       $node,
+                       $storage_params,
+                       $verify_params,
+                   );
                }
            });
        };