From: "Max Carrara" <m.carrara@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 storage 09/10] common: introduce common module
Date: Wed, 18 Dec 2024 10:36:00 +0100 [thread overview]
Message-ID: <D6EQ3GRJNK3Q.3FN6IF1I4D5WL@proxmox.com> (raw)
In-Reply-To: <20241217154814.82121-10-f.ebner@proxmox.com>
On Tue Dec 17, 2024 at 4:48 PM CET, Fiona Ebner wrote:
> From: Max Carrara <m.carrara@proxmox.com>
>
> This module's purpose is to provide shared functions, constants, etc.
> for storage plugins and storage-related operations.
>
> It also contains the `get_deprecation_warning` subroutine that makes
> it easier to warn developers and/or plugin authors that a subroutine
> will be removed in the future.
Thanks for including this patch already! Was really happy to see this :)
Since I've never included a commit from somebody else's series / RFC in
another series, is the commit message usually left as it is? You did
mention below that you start out with a different function for your use
case, but wouldn't it make sense to adapt the commit message overall
accordingly? In this case, just the paragraph above my reply here.
Just a small thing I was wondering about; if it's not necessary then I'm
of course fine with leaving the message as it is.
Also thanks for fixing up the Makefile -- that slipped under my radar
back then, woops!
Another thing I wanna note: It's actually *really* great you're adding
this already; I was first intending to add this in an upcoming larger
series, but since you're adding it already it means that we can all add
stuff to this module independently and don't have to wait for my series
to make it in.
So, big thanks! It's much appreciated.
>
> Originally-by: Max Carrara <m.carrara@proxmox.com>
> [FE: start out with a different function for my use case
> fixup Makefile]
> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
> ---
> src/PVE/Storage/Common.pm | 54 +++++++++++++++++++++++++++++++++
> src/PVE/Storage/Common/Makefile | 6 ++++
> src/PVE/Storage/Makefile | 2 ++
> 3 files changed, 62 insertions(+)
> create mode 100644 src/PVE/Storage/Common.pm
> create mode 100644 src/PVE/Storage/Common/Makefile
>
> diff --git a/src/PVE/Storage/Common.pm b/src/PVE/Storage/Common.pm
> new file mode 100644
> index 0000000..3ae20dd
> --- /dev/null
> +++ b/src/PVE/Storage/Common.pm
> @@ -0,0 +1,54 @@
> +package PVE::Storage::Common;
> +
> +use strict;
> +use warnings;
> +
> +=pod
> +
> +=head1 NAME
> +
> +PVE::Storage::Common - Shared functions and utilities for storage plugins and storage operations
> +
> +=head1 DESCRIPTION
> +
> +This module contains common subroutines that are mainly to be used by storage
> +plugins. This module's submodules contain subroutines that are tailored towards
> +a more specific or related purpose.
> +
> +Functions concerned with storage-related C<PVE::SectionConfig> things, helpers
> +for the C<PVE::Storage> API can be found in this module. Functions that can't
> +be grouped in a submodule can also be found here.
> +
> +=head1 SUBMODULES
> +
> +=over
> +
> +=back
> +
> +=head1 FUNCTIONS
> +
> +=cut
> +
> +=pod
> +
> +=head3 align_size_up
> +
> + $aligned_size = align_size_up($size, $granularity)
> +
> +Returns the next size bigger than or equal to C<$size> that is aligned with a
> +granularity of C<$granularity>. Prints a message if the aligned size is not
> +equal to the aligned size.
> +
> +=cut
> +
> +sub align_size_up : prototype($$) {
> + my ($size, $granularity) = @_;
> +
> + my $padding = ($granularity - $size % $granularity) % $granularity;
> + my $aligned_size = $size + $padding;
> + print "size $size is not aligned to granularity $granularity, rounding up to $aligned_size\n"
> + if $aligned_size != $size;
> + return $aligned_size;
> +}
> +
> +1;
> diff --git a/src/PVE/Storage/Common/Makefile b/src/PVE/Storage/Common/Makefile
> new file mode 100644
> index 0000000..0c4bba5
> --- /dev/null
> +++ b/src/PVE/Storage/Common/Makefile
> @@ -0,0 +1,6 @@
> +SOURCES = \
> +
> +
> +.PHONY: install
> +install:
> + for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/Storage/Common/$$i; done
> diff --git a/src/PVE/Storage/Makefile b/src/PVE/Storage/Makefile
> index d5cc942..ce3fd68 100644
> --- a/src/PVE/Storage/Makefile
> +++ b/src/PVE/Storage/Makefile
> @@ -1,4 +1,5 @@
> SOURCES= \
> + Common.pm \
> Plugin.pm \
> DirPlugin.pm \
> LVMPlugin.pm \
> @@ -18,5 +19,6 @@ SOURCES= \
>
> .PHONY: install
> install:
> + make -C Common install
> for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/Storage/$$i; done
> make -C LunCmd install
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2024-12-18 9:36 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-17 15:48 [pve-devel] [PATCH v2 storage 00/10] import/export for shared storages Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 01/10] iscsi direct plugin: fix return value for path() method in non-array context Fiona Ebner
2024-12-18 13:39 ` Fiona Ebner
2024-12-18 13:43 ` Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 02/10] rbd plugin: schema: document default value for 'krbd' setting Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 03/10] export: redirect stdout to avoid any unrelated messages ending up in the export stream Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 04/10] rbd plugin: factor out helper to check if volume already exists Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 05/10] rbd plugin: implement volume import/export Fiona Ebner
2024-12-18 14:20 ` Daniel Kral
2024-12-18 15:14 ` Fiona Ebner
2024-12-18 15:33 ` DERUMIER, Alexandre via pve-devel
2024-12-19 8:56 ` Fiona Ebner
2024-12-19 10:43 ` DERUMIER, Alexandre via pve-devel
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 06/10] iscsi plugin: support volume export Fiona Ebner
2024-12-18 14:05 ` Filip Schauer
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 07/10] iscsi direct " Fiona Ebner
2024-12-18 14:07 ` Filip Schauer
2024-12-17 15:48 ` [pve-devel] [RFC v2 storage 08/10] rbd plugin: volume exists helper: distinguish between different errors Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 09/10] common: introduce common module Fiona Ebner
2024-12-18 9:36 ` Max Carrara [this message]
2024-12-18 9:41 ` Fiona Ebner
2024-12-17 15:48 ` [pve-devel] [PATCH v2 storage 10/10] plugins: volume import: align size up to 1KiB Fiona Ebner
2024-12-18 10:34 ` [pve-devel] [PATCH v2 storage 00/10] import/export for shared storages Fiona Ebner
2024-12-18 14:08 ` Aaron Lauterer
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=D6EQ3GRJNK3Q.3FN6IF1I4D5WL@proxmox.com \
--to=m.carrara@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