On 2/25/20 12:32 PM, Fabian Grünbichler wrote:
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.
Sounds good to me. I feel like the options for extras should be handled
directly in foreach_volume which could then simply be:
1. get keys
2. optionally reverse keys
3. iterate over keys
4. optionally iterate over extras
5. optionally also do the same for snapshots
On February 24, 2020 1:43 pm, Fabian Ebner wrote:
Signed-off-by: Fabian Ebner <f.eb...@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@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel