Class: Bootloader::DeviceMap

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Yast::Logger
Defined in:
src/lib/bootloader/device_map.rb

Overview

Class representing grub device map structure

Constant Summary

Instance Method Summary (collapse)

Constructor Details

- (DeviceMap) initialize

Returns a new instance of DeviceMap



18
19
20
21
22
23
24
25
# File 'src/lib/bootloader/device_map.rb', line 18

def initialize
  # lazy load to avoid circular dependencies
  Yast.import "Arch"
  Yast.import "BootStorage"
  Yast.import "Mode"
  Yast.import "Storage"
  @model = CFA::Grub2::DeviceMap.new
end

Instance Method Details

- (Object) clear_mapping



48
49
50
51
52
# File 'src/lib/bootloader/device_map.rb', line 48

def clear_mapping
  grub_devices.each do |grub_dev|
    remove_mapping(grub_dev)
  end
end

- (Boolean) contain_disk?(disk)

Returns:

  • (Boolean)


54
55
56
57
58
59
# File 'src/lib/bootloader/device_map.rb', line 54

def contain_disk?(disk)
  disk = grub_device_for(disk) ||
    grub_device_for(::Bootloader::UdevMapping.to_mountby_device(disk))

  !disk.nil?
end

- (Object) disks_order



61
62
63
# File 'src/lib/bootloader/device_map.rb', line 61

def disks_order
  sorted_disks.map { |d| system_device_for(d) }
end

- (Boolean) empty?

Returns:

  • (Boolean)


44
45
46
# File 'src/lib/bootloader/device_map.rb', line 44

def empty?
  size == 0
end

- (Object) propose



65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'src/lib/bootloader/device_map.rb', line 65

def propose
  @model = CFA::Grub2::DeviceMap.new

  if Yast::Mode.config
    log.info("Skipping device map proposing in Config mode")
    return
  end

  fill_mapping

  order_boot_device

  reduce_to_bios_limit
end

- (Object) read



31
32
33
# File 'src/lib/bootloader/device_map.rb', line 31

def read
  @model.load
end

- (Object) size



40
41
42
# File 'src/lib/bootloader/device_map.rb', line 40

def size
  grub_devices.size
end

- (Object) to_s



27
28
29
# File 'src/lib/bootloader/device_map.rb', line 27

def to_s
  "Device Map: #{grub_devices}"
end

- (Object) write



35
36
37
38
# File 'src/lib/bootloader/device_map.rb', line 35

def write
  log.info "writing device map: #{self}"
  @model.save
end