new method volume_is_base() to check if volume is a base volume

This commit is contained in:
Dietmar Maurer
2013-01-31 08:42:26 +01:00
parent fcbec6545b
commit ad27ee3e4a

View File

@ -268,6 +268,27 @@ sub parse_volume_id {
die "unable to parse volume ID '$volid'\n";
}
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) = @_;