Skip to content

Commit

Permalink
translate also dm raid names to physical ones (bsc#1004921)
Browse files Browse the repository at this point in the history
  • Loading branch information
jreidinger committed Oct 18, 2016
1 parent edc4ec7 commit e1a4eae
Show file tree
Hide file tree
Showing 3 changed files with 286 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/lib/bootloader/stage1_device.rb
Expand Up @@ -2,6 +2,7 @@

Yast.import "BootStorage"
Yast.import "Storage"
Yast.import "Partitions"

module Bootloader
# Purpose of this class is provide mapping between intentioned stage1 location
Expand Down Expand Up @@ -59,10 +60,13 @@ def underlaying_devices_one_level(dev)
if disk?(disk_data)
disk = Yast::Storage.GetDisk(tm, dev)
# md disk is just virtual device, so select underlaying device /boot partition
return underlaying_disk_with_boot_partition if disk["type"] == :CT_MD
if disk["type"] == :CT_LVM
case disk["type"]
when :CT_MD then return underlaying_disk_with_boot_partition
when :CT_LVM
res = lvm_underlaying_devices(disk)
return res.map { |r| Yast::Storage.GetDiskPartition(r)["disk"] }
when :CT_DMRAID
return disk["devices"]
end
# given device is partition
else
Expand All @@ -72,6 +76,9 @@ def underlaying_devices_one_level(dev)
return lvm_underlaying_devices(lvm_group)
elsif part["type"] == :sw_raid
return devices_on(part)
elsif part["fstype"] == Yast::Partitions.dmraid_name
mapper = Yast::Storage.GetDisk(tm, disk_data["disk"])
return mapper["devices"]
end
end

Expand Down
263 changes: 263 additions & 0 deletions test/data/storage_dm.yaml
@@ -0,0 +1,263 @@
---
"/dev/btrfs":
device: "/dev/btrfs"
name: btrfs
used_by_type: :UB_NONE
used_by_device: ''
type: :CT_BTRFS
partitions: []
"/dev/mapper/pdc_dhigiadcde":
device: "/dev/mapper/pdc_dhigiadcde"
name: pdc_dhigiadcde
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde
type: :CT_DMRAID
size_k: 312505664
cyl_size: 8225280
cyl_count: 38905
sector_size: 512
label: msdos
max_logical: 63
max_primary: 4
dasd_format: 0
dasd_type: 0
transport: :unknown
devices:
- "/dev/sda"
minor: 0
partitions:
- device: "/dev/mapper/pdc_dhigiadcde-part1"
name: pdc_dhigiadcde-part1
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part1
size_k: 102400
used_fs: :ntfs
detected_fs: :ntfs
uuid: D0AA00D4AA00B94C
label: System Reserved
nr: 1
fsid: 7
fstype: DM RAID
region:
- 0
- 13
type: :primary
boot: true
- device: "/dev/mapper/pdc_dhigiadcde-part2"
name: pdc_dhigiadcde-part2
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part2
size_k: 31455270
used_fs: :ntfs
detected_fs: :ntfs
uuid: D612035912033E4D
nr: 2
fsid: 7
fstype: DM RAID
region:
- 12
- 3917
type: :primary
- device: "/dev/mapper/pdc_dhigiadcde-part3"
name: pdc_dhigiadcde-part3
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part3
size_k: 460800
used_fs: :ntfs
detected_fs: :ntfs
uuid: A2A6CE52A6CE269F
nr: 3
fsid: 39
fstype: DM RAID
region:
- 30344
- 58
type: :primary
- device: "/dev/mapper/pdc_dhigiadcde-part4"
name: pdc_dhigiadcde-part4
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part4
size_k: 1
detected_fs: :unknown
nr: 4
fsid: 15
fstype: DM RAID
region:
- 3928
- 26417
type: :extended
- device: "/dev/mapper/pdc_dhigiadcde-part5"
name: pdc_dhigiadcde-part5
used_by:
- type: :UB_BTRFS
device: 968d933d-f5ca-408b-aa63-6d06284146f7
used_by_type: :UB_BTRFS
used_by_device: 968d933d-f5ca-408b-aa63-6d06284146f7
udev_id:
- raid-pdc_dhigiadcde-part5
size_k: 41936896
used_fs: :btrfs
detected_fs: :btrfs
nr: 5
fsid: 131
fstype: DM RAID
region:
- 3929
- 5222
type: :logical
subvol:
- name: "@/.snapshots"
- name: "@/.snapshots/1/snapshot"
- name: "@/opt"
- name: "@/srv"
- name: "@/usr/local"
- name: "@/var/cache"
- name: "@/var/crash"
- name: "@/var/lib/libvirt/images"
nocow: true
- name: "@/var/lib/machines"
- name: "@/var/lib/mailman"
- name: "@/var/lib/mariadb"
nocow: true
- name: "@/var/lib/mysql"
nocow: true
- name: "@/var/lib/named"
- name: "@/var/lib/pgsql"
nocow: true
- name: "@/var/log"
- name: "@/var/opt"
- name: "@/var/spool"
- name: "@/var/tmp"
- name: "@/.snapshots/2/snapshot"
uuid: 968d933d-f5ca-408b-aa63-6d06284146f7
inactive: true
mount: "/"
mountby: :device
- device: "/dev/mapper/pdc_dhigiadcde-part6"
name: pdc_dhigiadcde-part6
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part6
size_k: 416768
used_fs: :xfs
detected_fs: :xfs
mount: "/boot"
inactive: true
mountby: :label
uuid: d0474a93-e045-4a0a-832a-eae13ec60cad
nr: 6
fsid: 131
fstype: DM RAID
region:
- 9150
- 53
type: :logical
- device: "/dev/mapper/pdc_dhigiadcde-part7"
name: pdc_dhigiadcde-part7
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part7
size_k: 2095104
used_fs: :swap
detected_fs: :swap
mount: swap
inactive: true
mountby: :label
uuid: 1c8774a9-edc9-4af3-8416-ef35d6045dff
nr: 7
fsid: 130
fstype: DM RAID
region:
- 9202
- 261
type: :logical
- device: "/dev/mapper/pdc_dhigiadcde-part8"
name: pdc_dhigiadcde-part8
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part8
size_k: 4192256
used_fs: :xfs
detected_fs: :xfs
mount: "/tmp"
inactive: true
mountby: :label
uuid: d0ba2b0c-21e6-4a12-b37f-7f318f4d4f9f
nr: 8
fsid: 131
fstype: DM RAID
region:
- 9463
- 523
type: :logical
- device: "/dev/mapper/pdc_dhigiadcde-part9"
name: pdc_dhigiadcde-part9
used_by_type: :UB_NONE
used_by_device: ''
udev_id:
- raid-pdc_dhigiadcde-part9
size_k: 163532800
used_fs: :xfs
detected_fs: :xfs
mount: "/home"
inactive: true
mountby: :label
uuid: b3d8a081-e6e1-4a0d-95ad-c040158c50f2
nr: 9
fsid: 131
fstype: DM RAID
region:
- 9985
- 20360
type: :logical
bios_id: '0x80'
proposal_name: 1. DM RAID, 298.03 GiB, /dev/mapper/pdc_dhigiadcde
"/dev/sda":
unique: 3OOL.ZnSoRR1R_WA
bus: IDE
device: "/dev/sda"
vendor: WDC
model: WD3200AAJS-2
driver: ahci
driver_module: ahci
partitions: []
size_k: 312571224
cyl_size: 8225280
cyl_count: 38913
sector_size: 512
label: msdos
name: sda
max_logical: 255
max_primary: 4
type: :CT_DISK
transport: :sata
used_by:
- type: :UB_DMRAID
device: "/dev/mapper/pdc_dhigiadcde"
used_by_type: :UB_DMRAID
used_by_device: "/dev/mapper/pdc_dhigiadcde"
udev_id:
- ata-WDC_WD3200AAJS-22L7A0_WD-WMAV2V584345
- scsi-0ATA_WDC_WD3200AAJS-2_WD-WMAV2V584345
- scsi-1ATA_WDC_WD3200AAJS-22L7A0_WD-WMAV2V584345
- scsi-350014ee0578dd973
- scsi-SATA_WDC_WD3200AAJS-2_WD-WMAV2V584345
- scsi-SATA_WDC_WD3200AAJS-_WD-WMAV2V584345
- wwn-0x50014ee0578dd973
udev_path: pci-0000:00:11.0-ata-1
dasd_format: 0
dasd_type: 0
proposal_name: 1. IDE Disk, 298.09 GiB, /dev/sda, WDC-WD3200AAJS-2
14 changes: 14 additions & 0 deletions test/stage1_device_test.rb
Expand Up @@ -75,6 +75,20 @@
)
end

it "returns underlayed devices for dm main device" do
target_map_stub("storage_dm.yaml")

subject = Bootloader::Stage1Device.new("/dev/mapper/pdc_dhigiadcde")
expect(subject.real_devices).to eq(["/dev/sda"])
end

it "returns underlayed devices for dm part device" do
target_map_stub("storage_dm.yaml")

subject = Bootloader::Stage1Device.new("/dev/mapper/pdc_dhigiadcde-part6")
expect(subject.real_devices).to eq(["/dev/sda"])
end

it "skips disks used as partitionless lvm devices" do
target_map_stub("lvm_whole_disk.yml")

Expand Down

0 comments on commit e1a4eae

Please sign in to comment.