Class: ManageIQ::ApplianceConsole::TempStorageConfiguration
- Inherits:
-
Object
- Object
- ManageIQ::ApplianceConsole::TempStorageConfiguration
show all
- Includes:
- Logging
- Defined in:
- lib/manageiq/appliance_console/temp_storage_configuration.rb
Constant Summary
collapse
- TEMP_DISK_FILESYSTEM_TYPE =
"xfs".freeze
- TEMP_DISK_MOUNT_POINT =
Pathname.new("/var/www/miq_tmp").freeze
- TEMP_DISK_MOUNT_OPTS =
"rw,noatime".freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Logging
#error_and_logging_from_command_result_error, #error_and_logging_from_standard_error, #interactive, #interactive=, interactive?, #interactive?, #log_and_feedback, #log_and_feedback_exception, #log_and_feedback_info, #log_error, #log_prefix, #logger, #logger=, #say_error, #say_info
Constructor Details
Returns a new instance of TempStorageConfiguration.
12
13
14
|
# File 'lib/manageiq/appliance_console/temp_storage_configuration.rb', line 12
def initialize(config = {})
@disk = config[:disk]
end
|
Instance Attribute Details
#disk ⇒ Object
Returns the value of attribute disk.
8
9
10
|
# File 'lib/manageiq/appliance_console/temp_storage_configuration.rb', line 8
def disk
@disk
end
|
Instance Method Details
#activate ⇒ Object
16
17
18
19
|
# 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) ⇒ Object
26
27
28
29
30
31
32
33
|
# 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 ⇒ Object
21
22
23
24
|
# 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) ⇒ Object
FIXME: Copied from InternalDatabaseConfiguration - remove both when LinuxAdmin updated
68
69
70
71
72
73
74
75
76
|
# File 'lib/manageiq/appliance_console/temp_storage_configuration.rb', line 68
def create_partition_to_fill_disk(disk)
disk.create_partition_table AwesomeSpawn.run!("parted -s #{disk.path} mkpart primary 0% 100%")
disk = LinuxAdmin::Disk.local.find { |d| d.path == disk.path }
disk.partitions.first
end
|
35
36
37
|
# 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) ⇒ Object
#update_fstab(partition) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# 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! end
|