refactor disk/storage checks for Disk API
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
94836d7b8c
commit
76c1e57be7
@ -201,13 +201,8 @@ __PACKAGE__->register_method ({
|
|||||||
my $type = $param->{filesystem} // 'ext4';
|
my $type = $param->{filesystem} // 'ext4';
|
||||||
|
|
||||||
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
||||||
die "device $dev is already in use\n" if PVE::Diskmanage::disk_is_used($dev);
|
PVE::Diskmanage::check_unused($dev);
|
||||||
|
PVE::Storage::check_available($name);
|
||||||
my $cfg = PVE::Storage::config();
|
|
||||||
|
|
||||||
if (my $scfg = PVE::Storage::storage_config($cfg, $name, 1)) {
|
|
||||||
die "storage ID '$name' already defined\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $worker = sub {
|
my $worker = sub {
|
||||||
my $path = "/mnt/pve/$name";
|
my $path = "/mnt/pve/$name";
|
||||||
|
|||||||
@ -149,7 +149,7 @@ __PACKAGE__->register_method ({
|
|||||||
my $node = $param->{node};
|
my $node = $param->{node};
|
||||||
|
|
||||||
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
||||||
die "device $dev is already in use\n" if PVE::Diskmanage::disk_is_used($dev);
|
PVE::Diskmanage::check_unused($dev);
|
||||||
|
|
||||||
my $worker = sub {
|
my $worker = sub {
|
||||||
PVE::Diskmanage::locked_disk_action(sub {
|
PVE::Diskmanage::locked_disk_action(sub {
|
||||||
|
|||||||
@ -103,13 +103,8 @@ __PACKAGE__->register_method ({
|
|||||||
my $node = $param->{node};
|
my $node = $param->{node};
|
||||||
|
|
||||||
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
||||||
die "device $dev is already in use\n" if PVE::Diskmanage::disk_is_used($dev);
|
PVE::Diskmanage::check_unused($dev);
|
||||||
|
PVE::Storage::check_available($name);
|
||||||
my $cfg = PVE::Storage::config();
|
|
||||||
|
|
||||||
if (my $scfg = PVE::Storage::storage_config($cfg, $name, 1)) {
|
|
||||||
die "storage ID '$name' already defined\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $worker = sub {
|
my $worker = sub {
|
||||||
PVE::Diskmanage::locked_disk_action(sub {
|
PVE::Diskmanage::locked_disk_action(sub {
|
||||||
|
|||||||
@ -341,14 +341,10 @@ __PACKAGE__->register_method ({
|
|||||||
|
|
||||||
foreach my $dev (@$devs) {
|
foreach my $dev (@$devs) {
|
||||||
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
$dev = PVE::Diskmanage::verify_blockdev_path($dev);
|
||||||
die "device $dev is already in use\n" if PVE::Diskmanage::disk_is_used($dev);
|
PVE::Diskmanage::check_unused($dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
my $cfg = PVE::Storage::config();
|
PVE::Storage::check_available($name);
|
||||||
|
|
||||||
if (my $scfg = PVE::Storage::storage_config($cfg, $name, 1)) {
|
|
||||||
die "storage ID '$name' already defined\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $numdisks = scalar(@$devs);
|
my $numdisks = scalar(@$devs);
|
||||||
my $mindisks = {
|
my $mindisks = {
|
||||||
|
|||||||
@ -602,4 +602,12 @@ sub locked_disk_action {
|
|||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_unused {
|
||||||
|
my ($dev) = @_;
|
||||||
|
|
||||||
|
die "device $dev is already in use\n" if disk_is_used($dev);
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
@ -1647,4 +1647,16 @@ sub get_bandwidth_limit {
|
|||||||
return $override;
|
return $override;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# checks if the storage id is available and dies if not
|
||||||
|
sub check_available {
|
||||||
|
my ($id) = @_;
|
||||||
|
|
||||||
|
my $cfg = config();
|
||||||
|
if (my $scfg = storage_config($cfg, $id, 1)) {
|
||||||
|
die "storage ID '$id' already defined\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
Reference in New Issue
Block a user