all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage v3 09/13] common: introduce common module
Date: Thu, 19 Dec 2024 11:43:12 +0100	[thread overview]
Message-ID: <20241219104316.35329-10-f.ebner@proxmox.com> (raw)
In-Reply-To: <20241219104316.35329-1-f.ebner@proxmox.com>

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 starts out with a align_size_up() function, that will (initially)
be used for volume import.

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>
---

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<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


  parent reply	other threads:[~2024-12-19 10:43 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-19 10:43 [pve-devel] [PATCH storage/container v3 00/13] import/export for shared storages Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 01/13] plugin: export/import: fix calls to path() method Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 02/13] rbd plugin: schema: document default value for 'krbd' setting Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 03/13] export: redirect stdout to avoid any unrelated messages ending up in the export stream Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 04/13] rbd plugin: factor out helper to check if volume already exists Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 05/13] rbd plugin: implement volume import/export Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 06/13] rbd plugin: improve volume exists helper Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 07/13] iscsi plugin: support volume export Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 08/13] iscsi direct " Fiona Ebner
2024-12-19 10:46   ` Fiona Ebner
2024-12-19 10:43 ` Fiona Ebner [this message]
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 10/13] plugins: volume import: align size up to 1KiB Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH storage v3 11/13] rbd plugin: list: drop outdated error message check Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH container v3 12/13] migration: allow rbd storages for remote migration Fiona Ebner
2024-12-19 10:43 ` [pve-devel] [PATCH container v3 13/13] migration: add reminder to evaluate dropping seemingly useless check for PVE 9 Fiona Ebner
2024-12-19 11:45 ` [pve-devel] partially-applied: [PATCH storage/container v3 00/13] import/export for shared storages Fabian Grünbichler
2024-12-19 12:17   ` Fiona Ebner

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=20241219104316.35329-10-f.ebner@proxmox.com \
    --to=f.ebner@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal