zfs: move some code
move the most part of alloc_image to ZFSDirPlugin Signed-off-by: Wolfgang Link <w.link@proxmox.com>
This commit is contained in:
committed by
Dietmar Maurer
parent
52f8fb7191
commit
b3ba95e493
@ -149,6 +149,21 @@ sub zfs_request {
|
|||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub alloc_image {
|
||||||
|
my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_;
|
||||||
|
|
||||||
|
die "unsupported format '$fmt'" if $fmt ne 'raw';
|
||||||
|
|
||||||
|
die "illegal name '$name' - sould be 'vm-$vmid-*'\n"
|
||||||
|
if $name && $name !~ m/^vm-$vmid-/;
|
||||||
|
|
||||||
|
$name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
||||||
|
|
||||||
|
$class->zfs_create_zvol($scfg, $name, $size);
|
||||||
|
|
||||||
|
return $name;
|
||||||
|
}
|
||||||
|
|
||||||
sub zfs_get_pool_stats {
|
sub zfs_get_pool_stats {
|
||||||
my ($class, $scfg) = @_;
|
my ($class, $scfg) = @_;
|
||||||
|
|
||||||
|
|||||||
@ -286,18 +286,12 @@ sub clone_image {
|
|||||||
sub alloc_image {
|
sub alloc_image {
|
||||||
my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_;
|
my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_;
|
||||||
|
|
||||||
die "unsupported format '$fmt'" if $fmt ne 'raw';
|
my $volname = $class->SUPER::alloc_image($storeid, $scfg, $vmid, $fmt, $name, $size);
|
||||||
|
|
||||||
die "illegal name '$name' - sould be 'vm-$vmid-*'\n"
|
my $guid = $class->zfs_create_lu($scfg, $volname);
|
||||||
if $name && $name !~ m/^vm-$vmid-/;
|
$class->zfs_add_lun_mapping_entry($scfg, $volname, $guid);
|
||||||
|
|
||||||
$name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name;
|
return $volname;
|
||||||
|
|
||||||
$class->zfs_create_zvol($scfg, $name, $size);
|
|
||||||
my $guid = $class->zfs_create_lu($scfg, $name);
|
|
||||||
$class->zfs_add_lun_mapping_entry($scfg, $name, $guid);
|
|
||||||
|
|
||||||
return $name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub free_image {
|
sub free_image {
|
||||||
|
|||||||
Reference in New Issue
Block a user