[pve-devel] [PATCH qemu-server] improve 'pending changes' message for clone
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue Sep 11 11:02:59 CEST 2018
On Wed, Sep 05, 2018 at 11:33:45AM +0200, Thomas Lamprecht wrote:
> On 9/4/18 3:43 PM, Dominik Csapak wrote:
> > $newconf->{pending} is a reference to an empty hash, which is not falsy,
> > thus we always printed the warning
> >
> > so check if there are actual values there and if yes,
> > give the names of the properties for which pending changes are found
> >
> > Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> > ---
> > PVE/API2/Qemu.pm | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
> > index b0af9d9..6cd0726 100644
> > --- a/PVE/API2/Qemu.pm
> > +++ b/PVE/API2/Qemu.pm
> > @@ -2785,8 +2785,9 @@ __PACKAGE__->register_method({
> > delete $newconf->{lock};
> >
> > # do not write pending changes
> > - if ($newconf->{pending}) {
> > - warn "found pending changes, discarding for clone\n";
> > + if ($newconf->{pending} && %{$newconf->{pending}}) {
>
> what about the following 'not really tested but should work'™ approach:
>
> if (my @changes = keys $newconf->{pending}) {
Needs %{} or ->%* as the experimental `keys` on references has been
removed from perl. And while it feels weird, dereferencing undef that
way doesn't even produce a warning and behaves the way you want it, so
yes, with the added % dereferencing, this version is nicer.
> my $pending = join(',', @changes);
> ...
> }
More information about the pve-devel
mailing list