From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 6BE641FF163 for ; Thu, 19 Dec 2024 11:43:50 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A9103E9B; Thu, 19 Dec 2024 11:43:27 +0100 (CET) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Thu, 19 Dec 2024 11:43:12 +0100 Message-Id: <20241219104316.35329-10-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241219104316.35329-1-f.ebner@proxmox.com> References: <20241219104316.35329-1-f.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.052 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH storage v3 09/13] common: introduce common module X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" From: Max Carrara This module's purpose is to provide shared functions, constants, etc. for storage plugins and storage-related operations. It starts out with a align_size_up() function, that will (initially) be used for volume import. Originally-by: Max Carrara [FE: start out with a different function for my use case fixup Makefile] Signed-off-by: Fiona Ebner --- Changes in v3: * fix commit message 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 things, helpers +for the C 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 -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel