zfs: move common code to ZFSDirPlugin
This commit is contained in:
@ -262,6 +262,41 @@ sub zfs_find_free_diskname {
|
|||||||
die "unable to allocate an image name for VM $vmid in storage '$storeid'\n";
|
die "unable to allocate an image name for VM $vmid in storage '$storeid'\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# fixme: implement me
|
sub status {
|
||||||
|
my ($class, $storeid, $scfg, $cache) = @_;
|
||||||
|
|
||||||
|
my $total = 0;
|
||||||
|
my $free = 0;
|
||||||
|
my $used = 0;
|
||||||
|
my $active = 0;
|
||||||
|
|
||||||
|
eval {
|
||||||
|
($free, $used) = $class->zfs_get_pool_stats($scfg);
|
||||||
|
$active = 1;
|
||||||
|
$total = $free + $used;
|
||||||
|
};
|
||||||
|
warn $@ if $@;
|
||||||
|
|
||||||
|
return ($total, $free, $used, $active);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub volume_size_info {
|
||||||
|
my ($class, $scfg, $storeid, $volname, $timeout) = @_;
|
||||||
|
|
||||||
|
return $class->zfs_get_zvol_size($scfg, $volname);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub volume_snapshot {
|
||||||
|
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
|
||||||
|
|
||||||
|
$class->zfs_request($scfg, undef, 'snapshot', "$scfg->{pool}/$volname\@$snap");
|
||||||
|
}
|
||||||
|
|
||||||
|
sub volume_snapshot_delete {
|
||||||
|
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
|
||||||
|
|
||||||
|
$class->zfs_request($scfg, undef, 'destroy', "$scfg->{pool}/$volname\@$snap");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
@ -357,24 +357,6 @@ sub list_images {
|
|||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub status {
|
|
||||||
my ($class, $storeid, $scfg, $cache) = @_;
|
|
||||||
|
|
||||||
my $total = 0;
|
|
||||||
my $free = 0;
|
|
||||||
my $used = 0;
|
|
||||||
my $active = 0;
|
|
||||||
|
|
||||||
eval {
|
|
||||||
($free, $used) = $class->zfs_get_pool_stats($scfg);
|
|
||||||
$active = 1;
|
|
||||||
$total = $free + $used;
|
|
||||||
};
|
|
||||||
warn $@ if $@;
|
|
||||||
|
|
||||||
return ($total, $free, $used, $active);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub activate_storage {
|
sub activate_storage {
|
||||||
my ($class, $storeid, $scfg, $cache) = @_;
|
my ($class, $storeid, $scfg, $cache) = @_;
|
||||||
return 1;
|
return 1;
|
||||||
@ -395,12 +377,6 @@ sub deactivate_volume {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub volume_size_info {
|
|
||||||
my ($class, $scfg, $storeid, $volname, $timeout) = @_;
|
|
||||||
|
|
||||||
return $class->zfs_get_zvol_size($scfg, $volname);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub volume_resize {
|
sub volume_resize {
|
||||||
my ($class, $scfg, $storeid, $volname, $size, $running) = @_;
|
my ($class, $scfg, $storeid, $volname, $size, $running) = @_;
|
||||||
|
|
||||||
@ -410,12 +386,6 @@ sub volume_resize {
|
|||||||
$class->zfs_resize_lu($scfg, $volname, $new_size);
|
$class->zfs_resize_lu($scfg, $volname, $new_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub volume_snapshot {
|
|
||||||
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
|
|
||||||
|
|
||||||
$class->zfs_request($scfg, undef, 'snapshot', "$scfg->{pool}/$volname\@$snap");
|
|
||||||
}
|
|
||||||
|
|
||||||
sub volume_snapshot_rollback {
|
sub volume_snapshot_rollback {
|
||||||
my ($class, $scfg, $storeid, $volname, $snap) = @_;
|
my ($class, $scfg, $storeid, $volname, $snap) = @_;
|
||||||
|
|
||||||
@ -443,12 +413,6 @@ sub volume_snapshot_rollback {
|
|||||||
$class->zfs_add_lun_mapping_entry($scfg, $volname);
|
$class->zfs_add_lun_mapping_entry($scfg, $volname);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub volume_snapshot_delete {
|
|
||||||
my ($class, $scfg, $storeid, $volname, $snap, $running) = @_;
|
|
||||||
|
|
||||||
$class->zfs_request($scfg, undef, 'destroy', "$scfg->{pool}/$volname\@$snap");
|
|
||||||
}
|
|
||||||
|
|
||||||
sub volume_has_feature {
|
sub volume_has_feature {
|
||||||
my ($class, $scfg, $feature, $storeid, $volname, $snapname, $running) = @_;
|
my ($class, $scfg, $feature, $storeid, $volname, $snapname, $running) = @_;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user