[pve-devel] [PATCH v2 guest-common 06/28] Add snapshot_foreach_unused_volume
Fabian Grünbichler
f.gruenbichler at proxmox.com
Tue Feb 25 12:32:19 CET 2020
like discussed off-list, this should lose the 'snapshot_' prefix if it
is to be used as a general method.
alternatively, we could also generalize PVE::LXC::Config::mountpoint_names
and PVE::QemuServer::Drive::valid_drive_names into a single method
returning a list of config keys where volumes are found in correct
order. then foreach_volume could entirely be defined as iteration over
that, a call to parse_volume, and a call to the passed function. this
new method could take the $opts defining any extras like include unused
or include vmstate, or foreach_volume could add them. note that
pve-container needs an option to reverse iterate, but that could also be
handled in either method.
On February 24, 2020 1:43 pm, Fabian Ebner wrote:
> Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
> ---
> PVE/AbstractConfig.pm | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/PVE/AbstractConfig.pm b/PVE/AbstractConfig.pm
> index bd43cbe..5c449f6 100644
> --- a/PVE/AbstractConfig.pm
> +++ b/PVE/AbstractConfig.pm
> @@ -508,6 +508,19 @@ sub __snapshot_foreach_volume {
> die "abstract method - implement me\n";
> }
>
> +# Iterate over all unused volumes, calling $func for each key/value pair
> +# with additional parameters @param.
> +sub snapshot_foreach_unused_volume {
> + my ($class, $conf, $func, @param) = @_;
> +
> + foreach my $key (keys %{$conf}) {
> + if ($key =~ m/^unused\d+$/) {
> + my $volume = $class->parse_volume($key, $conf->{$key});
> + $func->($key, $volume, @param);
> + }
> + }
> +}
> +
> # Copy the current config $source to the snapshot config $dest
> sub __snapshot_copy_config {
> my ($class, $source, $dest) = @_;
> --
> 2.20.1
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
More information about the pve-devel
mailing list