From 4372ca38c28f9ed0ef6ecab632d6efd43c49054c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Iv=C3=A1n=20L=C3=B3pez=20Gonz=C3=A1lez?= Date: Tue, 28 Jan 2025 11:59:02 +0000 Subject: [PATCH] wip --- .../dbus/storage/volume_conversion/to_dbus.rb | 10 +++-- .../storage/volume_conversion/to_dbus_test.rb | 40 +++++++++++++++++-- web/src/components/storage/PartitionPage.tsx | 2 +- 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/service/lib/agama/dbus/storage/volume_conversion/to_dbus.rb b/service/lib/agama/dbus/storage/volume_conversion/to_dbus.rb index 8aa4cbe397..7d5064e7f2 100644 --- a/service/lib/agama/dbus/storage/volume_conversion/to_dbus.rb +++ b/service/lib/agama/dbus/storage/volume_conversion/to_dbus.rb @@ -67,15 +67,19 @@ def convert # @return [Agama::Storage::Volume] attr_reader :volume + # @return [Integer] def min_size_conversion - volume.auto_size? ? volume.outline.base_min_size.to_i : volume.min_size.to_i + min_size = volume.min_size + min_size ||= volume.outline.base_min_size if volume.auto_size? + min_size.to_i end # @param target [Hash] def max_size_conversion(target) - max_size = volume.auto_size? ? volume.outline.base_max_size : volume.max_size - + max_size = volume.max_size + max_size ||= volume.outline.base_max_size if volume.auto_size? return if max_size.nil? || max_size.unlimited? + target["MaxSize"] = max_size.to_i end diff --git a/service/test/agama/dbus/storage/volume_conversion/to_dbus_test.rb b/service/test/agama/dbus/storage/volume_conversion/to_dbus_test.rb index 9fc2db2749..ffd01b6d07 100644 --- a/service/test/agama/dbus/storage/volume_conversion/to_dbus_test.rb +++ b/service/test/agama/dbus/storage/volume_conversion/to_dbus_test.rb @@ -26,9 +26,19 @@ require "y2storage/disk_size" describe Agama::DBus::Storage::VolumeConversion::ToDBus do - let(:default_volume) { Agama::Storage::Volume.new("/test") } + let(:volume1) { Agama::Storage::Volume.new("/test") } - let(:custom_volume) do + let(:volume2) do + Agama::Storage::Volume.new("/test").tap do |volume| + volume.min_size = nil + volume.max_size = nil + volume.auto_size = true + volume.outline.base_min_size = Y2Storage::DiskSize.new(1024) + volume.outline.base_max_size = Y2Storage::DiskSize.new(4096) + end + end + + let(:volume3) do volume_outline = Agama::Storage::VolumeOutline.new.tap do |outline| outline.required = true outline.filesystems = [Y2Storage::Filesystems::Type::EXT3, Y2Storage::Filesystems::Type::EXT4] @@ -57,7 +67,7 @@ describe "#convert" do it "converts the volume to a D-Bus hash" do - expect(described_class.new(default_volume).convert).to eq( + expect(described_class.new(volume1).convert).to eq( "MountPath" => "/test", "MountOptions" => [], "TargetDevice" => "", @@ -78,7 +88,29 @@ } ) - expect(described_class.new(custom_volume).convert).to eq( + expect(described_class.new(volume2).convert).to eq( + "MountPath" => "/test", + "MountOptions" => [], + "TargetDevice" => "", + "Target" => "default", + "FsType" => "", + "MinSize" => 1024, + "MaxSize" => 4096, + "AutoSize" => true, + "Snapshots" => false, + "Transactional" => false, + "Outline" => { + "Required" => false, + "FsTypes" => [], + "SupportAutoSize" => false, + "AdjustByRam" => false, + "SnapshotsConfigurable" => false, + "SnapshotsAffectSizes" => false, + "SizeRelevantVolumes" => [] + } + ) + + expect(described_class.new(volume3).convert).to eq( "MountPath" => "/test", "MountOptions" => ["rw", "default"], "TargetDevice" => "/dev/sda", diff --git a/web/src/components/storage/PartitionPage.tsx b/web/src/components/storage/PartitionPage.tsx index d1bfd5e7a0..c4315d79d7 100644 --- a/web/src/components/storage/PartitionPage.tsx +++ b/web/src/components/storage/PartitionPage.tsx @@ -618,7 +618,7 @@ export default function PartitionPage() { } - onChange={setFilesystem} + onChange={(v: string) => setFilesystem(v)} isDisabled={mountPoint === ""} >