Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
joseivanlopez committed Jan 28, 2025
1 parent 8badbd0 commit 4372ca3
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 8 deletions.
10 changes: 7 additions & 3 deletions service/lib/agama/dbus/storage/volume_conversion/to_dbus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
40 changes: 36 additions & 4 deletions service/test/agama/dbus/storage/volume_conversion/to_dbus_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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" => "",
Expand All @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion web/src/components/storage/PartitionPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ export default function PartitionPage() {
<SelectToggle
value={filesystem}
label={<FilesystemOptionLabel value={filesystem} target={target} />}
onChange={setFilesystem}
onChange={(v: string) => setFilesystem(v)}
isDisabled={mountPoint === ""}
>
<FilesystemOptions mountPoint={mountPoint} target={target} />
Expand Down

0 comments on commit 4372ca3

Please sign in to comment.