class ManageIQ::ApplianceConsole::TempStorageConfiguration
Constants
- TEMP_DISK_FILESYSTEM_TYPE
- TEMP_DISK_MOUNT_OPTS
- TEMP_DISK_MOUNT_POINT
Attributes
disk[R]
Public Class Methods
new(config = {})
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 12 def initialize(config = {}) @disk = config[:disk] end
Public Instance Methods
activate()
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 16 def activate say("Configuring #{disk.path} as temp storage...") add_temp_disk(disk) end
add_temp_disk(disk)
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 26 def add_temp_disk(disk) log_and_feedback(__method__) do partition = create_partition_to_fill_disk(disk) format_partition(partition) mount_temp_disk(partition) update_fstab(partition) end end
ask_questions()
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 21 def ask_questions @disk = ask_for_disk("temp storage disk", false) disk && are_you_sure?("configure #{disk.path} as temp storage") end
create_partition_to_fill_disk(disk)
click to toggle source
FIXME: Copied from InternalDatabaseConfiguration
- remove both when LinuxAdmin updated
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 68 def create_partition_to_fill_disk(disk) # @disk.create_partition('primary', '100%') disk.create_partition_table # LinuxAdmin::Disk.create_partition has this already... AwesomeSpawn.run!("parted -s #{disk.path} mkpart primary 0% 100%") # FIXME: Refetch the disk after creating the partition disk = LinuxAdmin::Disk.local.find { |d| d.path == disk.path } disk.partitions.first end
format_partition(partition)
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 35 def format_partition(partition) AwesomeSpawn.run!("mkfs.#{TEMP_DISK_FILESYSTEM_TYPE} #{partition.path}") end
mount_temp_disk(partition)
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 39 def mount_temp_disk(partition) # TODO: should this be moved into LinuxAdmin? FileUtils.rm_rf(TEMP_DISK_MOUNT_POINT) FileUtils.mkdir_p(TEMP_DISK_MOUNT_POINT) AwesomeSpawn.run!("mount", :params => { "-t" => TEMP_DISK_FILESYSTEM_TYPE, "-o" => TEMP_DISK_MOUNT_OPTS, nil => [partition.path, TEMP_DISK_MOUNT_POINT] }) end
update_fstab(partition)
click to toggle source
# File lib/manageiq/appliance_console/temp_storage_configuration.rb, line 50 def update_fstab(partition) fstab = LinuxAdmin::FSTab.instance return if fstab.entries.detect { |e| e.mount_point == TEMP_DISK_MOUNT_POINT } entry = LinuxAdmin::FSTabEntry.new( :device => partition.path, :mount_point => TEMP_DISK_MOUNT_POINT, :fs_type => TEMP_DISK_FILESYSTEM_TYPE, :mount_options => TEMP_DISK_MOUNT_OPTS, :dumpable => 0, :fsck_order => 0 ) fstab.entries << entry fstab.write! # Test this more, whitespace is removed end