From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 05/14] Diskmanage: introduce get_sysdir_size helper
Date: Tue, 26 Jan 2021 12:45:21 +0100 [thread overview]
Message-ID: <20210126114530.8753-6-f.ebner@proxmox.com> (raw)
In-Reply-To: <20210126114530.8753-1-f.ebner@proxmox.com>
to be used for partitions as well.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
PVE/Diskmanage.pm | 18 ++++++++++++------
test/disk_tests/usages/sdd/sdd1/size | 1 +
test/disk_tests/usages/sdd/sdd2/size | 1 +
test/disk_tests/usages/sde/sde1/size | 1 +
test/disk_tests/usages/sdf/sdf1/size | 1 +
test/disk_tests/usages/sdm/sdm1/size | 1 +
test/disk_tests/usages/sdm/sdm9/size | 1 +
test/disklist_test.pm | 12 ++++++++++++
8 files changed, 30 insertions(+), 6 deletions(-)
create mode 100644 test/disk_tests/usages/sdd/sdd1/size
create mode 100644 test/disk_tests/usages/sdd/sdd2/size
create mode 100644 test/disk_tests/usages/sde/sde1/size
create mode 100644 test/disk_tests/usages/sdf/sdf1/size
create mode 100644 test/disk_tests/usages/sdm/sdm1/size
create mode 100644 test/disk_tests/usages/sdm/sdm9/size
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 5672d0f..6d96e77 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -369,6 +369,17 @@ sub get_udev_info {
return $data;
}
+sub get_sysdir_size {
+ my ($sysdir) = @_;
+
+ my $size = file_read_firstline("$sysdir/size");
+ return if !$size;
+
+ # linux always considers sectors to be 512 bytes,
+ # independently of real block size
+ return $size * 512;
+}
+
sub get_sysdir_info {
my ($sysdir) = @_;
@@ -376,12 +387,7 @@ sub get_sysdir_info {
my $data = {};
- my $size = file_read_firstline("$sysdir/size");
- return undef if !$size;
-
- # linux always considers sectors to be 512 bytes,
- # independently of real block size
- $data->{size} = $size * 512;
+ $data->{size} = get_sysdir_size($sysdir) or return;
# dir/queue/rotational should be 1 for hdd, 0 for ssd
$data->{rotational} = file_read_firstline("$sysdir/queue/rotational") // -1;
diff --git a/test/disk_tests/usages/sdd/sdd1/size b/test/disk_tests/usages/sdd/sdd1/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/usages/sdd/sdd1/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/usages/sdd/sdd2/size b/test/disk_tests/usages/sdd/sdd2/size
new file mode 100644
index 0000000..8bd1af1
--- /dev/null
+++ b/test/disk_tests/usages/sdd/sdd2/size
@@ -0,0 +1 @@
+2000
diff --git a/test/disk_tests/usages/sde/sde1/size b/test/disk_tests/usages/sde/sde1/size
new file mode 100644
index 0000000..13de30f
--- /dev/null
+++ b/test/disk_tests/usages/sde/sde1/size
@@ -0,0 +1 @@
+3000
diff --git a/test/disk_tests/usages/sdf/sdf1/size b/test/disk_tests/usages/sdf/sdf1/size
new file mode 100644
index 0000000..13de30f
--- /dev/null
+++ b/test/disk_tests/usages/sdf/sdf1/size
@@ -0,0 +1 @@
+3000
diff --git a/test/disk_tests/usages/sdm/sdm1/size b/test/disk_tests/usages/sdm/sdm1/size
new file mode 100644
index 0000000..83b33d2
--- /dev/null
+++ b/test/disk_tests/usages/sdm/sdm1/size
@@ -0,0 +1 @@
+1000
diff --git a/test/disk_tests/usages/sdm/sdm9/size b/test/disk_tests/usages/sdm/sdm9/size
new file mode 100644
index 0000000..8bd1af1
--- /dev/null
+++ b/test/disk_tests/usages/sdm/sdm9/size
@@ -0,0 +1 @@
+2000
diff --git a/test/disklist_test.pm b/test/disklist_test.pm
index 9cb6763..bfce1ea 100644
--- a/test/disklist_test.pm
+++ b/test/disklist_test.pm
@@ -87,6 +87,16 @@ sub mocked_get_sysdir_info {
return &$originalsub($param);
}
+sub mocked_get_sysdir_size {
+ my ($param) = @_;
+
+ my $originalsub = $diskmanage_module->original('get_sysdir_size');
+
+ $param =~ s|/sys/block|disk_tests/$testcasedir|;
+
+ return &$originalsub($param);
+}
+
sub mocked_is_iscsi {
return 0;
}
@@ -219,6 +229,8 @@ $diskmanage_module->mock('dir_glob_foreach' => \&mocked_dir_glob_foreach);
print("\tMocked dir_glob_foreach\n");
$diskmanage_module->mock('get_sysdir_info' => \&mocked_get_sysdir_info);
print("\tMocked get_sysdir_info\n");
+$diskmanage_module->mock('get_sysdir_size' => \&mocked_get_sysdir_size);
+print("\tMocked get_sysdir_size\n");
$diskmanage_module->mock('is_iscsi' => \&mocked_is_iscsi);
print("\tMocked is_iscsi\n");
$diskmanage_module->mock('assert_blockdev' => sub { return 1; });
--
2.20.1
next prev parent reply other threads:[~2021-01-26 11:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-26 11:45 [pve-devel] [PATCH-SERIES] partially fix #2285: extend Diskmanage to also list partitions Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 01/14] Disks: return correct journal disk candidates Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 02/14] Diskmanage: replace closure with direct hash access Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 03/14] Diskmanage: refactor and rename get_parttype_info Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 04/14] Diskmanage: also check for filesystem type when determining usage Fabian Ebner
2021-01-26 11:45 ` Fabian Ebner [this message]
2021-01-26 11:45 ` [pve-devel] [PATCH storage 06/14] Diskmanage: collect partitions in hash Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 07/14] Diskmanage: introduce usage helper Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 08/14] Diskmanage: also detect BIOS boot, EFI and ZFS reserved type partitions Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 09/14] Diskmanage: introduce ceph info helper Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 10/14] Diskmanage: save OSD information for individual partitions Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH storage 11/14] Diskmanage: also include partitions with get_disks if flag is set Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH manager 12/14] api: Ceph: add reminder to remove 'disks' call Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH widget-toolkit 13/14] convert disk list to disk tree including the partitions Fabian Ebner
2021-01-26 11:45 ` [pve-devel] [PATCH widget-toolkit 14/14] move DiskList.js from grid/ to panel/ Fabian Ebner
2021-02-06 13:13 ` [pve-devel] partially-applied: [PATCH-SERIES] partially fix #2285: extend Diskmanage to also list partitions Thomas Lamprecht
2021-02-08 7:58 ` Fabian 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=20210126114530.8753-6-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