From: Max Carrara <m.carr...@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. Originally-by: Max Carrara <m.carr...@proxmox.com> [FE: start out with a different function for my use case fixup Makefile] Signed-off-by: Fiona Ebner <f.eb...@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 -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel