common: introduce common module
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.
[FE: start out with a different function for my use case
fixup Makefile]
Originally-by: Max Carrara <m.carrara@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
This commit is contained in:
committed by
Fabian Grünbichler
parent
cc0efbd250
commit
c41d7755c3
54
src/PVE/Storage/Common.pm
Normal file
54
src/PVE/Storage/Common.pm
Normal file
@ -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;
|
||||||
6
src/PVE/Storage/Common/Makefile
Normal file
6
src/PVE/Storage/Common/Makefile
Normal file
@ -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
|
||||||
@ -1,4 +1,5 @@
|
|||||||
SOURCES= \
|
SOURCES= \
|
||||||
|
Common.pm \
|
||||||
Plugin.pm \
|
Plugin.pm \
|
||||||
DirPlugin.pm \
|
DirPlugin.pm \
|
||||||
LVMPlugin.pm \
|
LVMPlugin.pm \
|
||||||
@ -18,5 +19,6 @@ SOURCES= \
|
|||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
|
make -C Common install
|
||||||
for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/Storage/$$i; done
|
for i in ${SOURCES}; do install -D -m 0644 $$i ${DESTDIR}${PERLDIR}/PVE/Storage/$$i; done
|
||||||
make -C LunCmd install
|
make -C LunCmd install
|
||||||
|
|||||||
Reference in New Issue
Block a user