public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Dominik Csapak <d.csapak@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH storage] BTRFSPlugin: reuse DirPlugin update/get_volume_attribute
Date: Mon, 2 May 2022 09:04:41 +0200	[thread overview]
Message-ID: <4b9aa1ea-df4a-a2cd-8147-4cb778ed8df7@proxmox.com> (raw)
In-Reply-To: <8f52f28f-e96c-d8df-e355-92564ec66f29@proxmox.com>

Am 5/2/22 um 08:48 schrieb Dominik Csapak:
> On 5/2/22 08:36, Thomas Lamprecht wrote:
>> Am 4/29/22 um 12:00 schrieb Dominik Csapak:
>>> this allows setting notes+protected for backups on btrfs
>>>
>>> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
>>> ---
>>>   PVE/Storage/BTRFSPlugin.pm | 20 ++++++++++++++++++--
>>>   1 file changed, 18 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/PVE/Storage/BTRFSPlugin.pm b/PVE/Storage/BTRFSPlugin.pm
>>> index be613f4..dd5f139 100644
>>> --- a/PVE/Storage/BTRFSPlugin.pm
>>> +++ b/PVE/Storage/BTRFSPlugin.pm
>>> @@ -138,9 +138,25 @@ sub status {
>>>       return PVE::Storage::DirPlugin::status($class, $storeid, $scfg, $cache);
>>>   }
>>>   -# TODO: sub get_volume_attribute {}
>>> +# FIXME remove on the next APIAGE reset.
>>> +# Deprecated, use get_volume_attribute instead.
>>> +sub get_volume_notes {
>>> +    return PVE::Storage::DirPlugin::get_volume_notes(@_);
>>> +}
>>> +
>>> +# FIXME remove on the next APIAGE reset.
>>> +# Deprecated, use update_volume_attribute instead.
>>> +sub update_volume_notes {
>>> +    return PVE::Storage::DirPlugin::update_volume_notes( @_);
>>> +}
>>
>> makes no sense to add these? they are deprecated and unused anyway
> 
> no actually, the DirPlugin implementation calls
> $class->get_volume_notes for now, so it would try to call the
> BtrfsPlugin version of those which inherits from Plugin which dies in those...
> (CephFs/CIFS/NFS actually do the same as i did here)

such thing would be good things to include in the commit message ;-)

Anyhow, as removal of that method is planned anyhow the real fix would be to move
the implementation in update_volume_notes away from it, be it through inlining the
small logic or moving it to a new, private, helper.

> 
> i guess we could do (untested)
> --8<--
> shift @_; # discard class
> PVE::Storage::DirPlugin->update_volume_notes(@_);
> -->8--

most often it's way nicer to avoid the (@_) calls in general and do an explicit

my ($class, $...) = @_;
return foo($class, $...) # or whatever

anyway, allows to see the actual "signature" and makes things more explicit.


> 
> not sure if thats a good idea though
> 
> we could also factor out the get/update_volume_notes impl in DirPlugin
> and call it from both paths? then we'd not have to implement
> the _notes subs here
> 
>>
>>>   -# TODO: sub update_volume_attribute {}
>>> +sub get_volume_attribute {
>>> +    return PVE::Storage::DirPlugin::get_volume_attribute(@_);
>>> +}
>>> +
>>> +sub update_volume_attribute {
>>> +    return PVE::Storage::DirPlugin::update_volume_attribute(@_);
>>> +}
>>
>> This is so trivial that I'm wondering if Wolfgang had a reason to not do it for the
>> original get_volume_notes that was there long before the BTRFS plugin got added..
> 
> i mean it's possible, but idk how else you'd implement it? notes & protected
> are only files where we read/write the content or test the existance?
> 
> we could probably do something btrfs specific, but is it worth that?


as hinted, Wolfgang will be the one to answer the reason, even if it was just "forgot".
And yeah, it's IMO worth it to actually understand first why some seemingly trivial feature
was skipped before just doing something "blindly", seemingly obvious or not.




  parent reply	other threads:[~2022-05-02  7:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-29 10:00 Dominik Csapak
2022-05-02  6:36 ` Thomas Lamprecht
2022-05-02  6:48   ` Dominik Csapak
2022-05-02  6:51     ` Dominik Csapak
2022-05-02  7:04     ` Thomas Lamprecht [this message]
2022-05-02  7:20       ` Dominik Csapak
2022-05-25 10:48 Wolfgang Bumiller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4b9aa1ea-df4a-a2cd-8147-4cb778ed8df7@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal