Class: ManageIQ::ApplianceConsole::LogicalVolumeManagement

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/manageiq/appliance_console/logical_volume_management.rb

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

#initialize(options = {}) ⇒ LogicalVolumeManagement

Returns a new instance of LogicalVolumeManagement.



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 18

def initialize(options = {})
  # Required instantiation parameters
  self.disk        = options[:disk]        || raise(ArgumentError, "disk object required")
  self.mount_point = options[:mount_point] || raise(ArgumentError, "mount point required")
  self.name        = options[:name]        || raise(ArgumentError, "unique name required")

  # Derived or optionally provided instantiation parameters
  self.volume_group_name   ||= "vg_#{name}"
  self.filesystem_type     ||= "xfs"
  self.logical_volume_path ||= "/dev/#{volume_group_name}/lv_#{name}"
end

Instance Attribute Details

#diskObject

Required instantiation parameters



10
11
12
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 10

def disk
  @disk
end

#filesystem_typeObject

Derived or optionally provided instantiation parameters



13
14
15
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 13

def filesystem_type
  @filesystem_type
end

#logical_volumeObject (readonly)

Logical Disk creation objects



16
17
18
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 16

def logical_volume
  @logical_volume
end

#logical_volume_pathObject

Derived or optionally provided instantiation parameters



13
14
15
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 13

def logical_volume_path
  @logical_volume_path
end

#mount_pointObject

Required instantiation parameters



10
11
12
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 10

def mount_point
  @mount_point
end

#nameObject

Required instantiation parameters



10
11
12
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 10

def name
  @name
end

#partitionObject (readonly)

Logical Disk creation objects



16
17
18
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 16

def partition
  @partition
end

#physical_volumeObject (readonly)

Logical Disk creation objects



16
17
18
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 16

def physical_volume
  @physical_volume
end

#volume_groupObject (readonly)

Logical Disk creation objects



16
17
18
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 16

def volume_group
  @volume_group
end

#volume_group_nameObject

Derived or optionally provided instantiation parameters



13
14
15
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 13

def volume_group_name
  @volume_group_name
end

Instance Method Details

#setupObject

Helper method



31
32
33
34
35
36
37
38
39
40
# File 'lib/manageiq/appliance_console/logical_volume_management.rb', line 31

def setup
  create_partition_to_fill_disk
  create_physical_volume
  create_volume_group
  create_logical_volume_to_fill_volume_group
  format_logical_volume
  update_fstab
  lazy_unmount_mount_point
  mount_disk
end