my $node = $param->{node};
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
- die "device $dev is already in use\n" if PVE::Diskmanage::disk_is_used($dev);
-
- my $cfg = PVE::Storage::config();
-
- if (my $scfg = PVE::Storage::storage_config($cfg, $name, 1)) {
- die "storage ID '$name' already defined\n";
- }
+ PVE::Diskmanage::assert_disk_unused($dev);
+ PVE::Storage::assert_sid_unused($name) if $param->{add_storage};
my $worker = sub {
- lock_file('/run/lock/pve-diskmanage.lck', undef, sub {
+ PVE::Diskmanage::locked_disk_action(sub {
PVE::Storage::LVMPlugin::lvm_create_volume_group($dev, $name);
# create thinpool with size 100%, let lvm handle the metadata size
PVE::API2::Storage::Config->create($storage_params);
}
});
-
- die $@ if $@;
};
return $rpcenv->fork_worker('lvmthincreate', $name, $user, $worker);