return PVE::Storage::Plugin::parse_volume_id($volid, $noerr);
}
-sub volume_is_base {
- my ($cfg, $volid) = @_;
-
- my ($sid, $volname) = parse_volume_id($volid, 1);
- return 0 if !$sid;
-
- if (my $scfg = $cfg->{ids}->{$sid}) {
- my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
- my ($vtype, $name, $vmid, $basename, $basevmid, $isBase) =
- $plugin->parse_volname($volname);
- return $isBase ? 1 : 0;
- } else {
- # stale volid with undefined storage - so we can just guess
- if ($volid =~ m/base-/) {
- return 1;
- }
- }
-
- return 0;
-}
-
# try to map a filesystem path to a volume identifier
sub path_to_volume_id {
my ($cfg, $path) = @_;
print "\nrun test10 \"volume_is_base\"\n";
eval {
- if (1 == PVE::Storage::volume_is_base($cfg, "$storagename:$vmdisk")) {
+ if (1 == volume_is_base($cfg, "$storagename:$vmdisk")) {
$count++;
warn "Test10 a: is no base";
}
}
eval {
- if (0 == PVE::Storage::volume_is_base($cfg, "$storagename:$vmbase")) {
+ if (0 == volume_is_base($cfg, "$storagename:$vmbase")) {
$count++;
warn "Test10 b: is base";
}
}
eval {
- if (1 == PVE::Storage::volume_is_base($cfg, "$storagename:$vmbase\/$vmlinked")) {
+ if (1 == volume_is_base($cfg, "$storagename:$vmbase\/$vmlinked")) {
$count++;
warn "Test10 c: is no base";
}
}
eval {
- if (1 == PVE::Storage::volume_is_base($cfg, "$storagename:$ctdisk")) {
+ if (1 == volume_is_base($cfg, "$storagename:$ctdisk")) {
$count++;
warn "Test10 d: is no base";
}
}
eval {
- if (0 == PVE::Storage::volume_is_base($cfg, "$storagename:$ctbase")) {
+ if (0 == volume_is_base($cfg, "$storagename:$ctbase")) {
$count++;
warn "Test10 e: is base";
}
}
eval {
- if (1 == PVE::Storage::volume_is_base($cfg, "$storagename:$ctbase\/$ctlinked")) {
+ if (1 == volume_is_base($cfg, "$storagename:$ctbase\/$ctlinked")) {
$count++;
warn "Test10 f: is no base";
}
unlink 'zpool.img';
}
+sub volume_is_base {
+ my ($cfg, $volid) = @_;
+
+ my (undef, undef, undef, undef, undef, $isBase, undef) = PVE::Storage::parse_volname($cfg, $volid);
+
+ return $isBase;
+}
+
+
setup_zpool();
my $time = time;