class Fission::VMConfiguration

Public Class Methods

new(vm) click to toggle source

Internal: Creates a new VMConfiguration object. This accepts a VM object

vm - An instance of VM

Examples:

Fission::VMConfiguration.new @my_vm

Returns a new VMConfiguration object

# File lib/fission/vm_configuration.rb, line 14
def initialize(vm)
  @vm = vm
end

Public Instance Methods

config_data() click to toggle source

Internal: Gathers the the configuration data for the VM. This essentially parses the key/value pairs from the configuration file (.vmx) into a Hash.

Exaples:

@vm_config.config_data.data
# => { 'memsize' => '384', 'ethernet0.present' => 'TRUE',... }

Returns a Response object with the result. If successful, the Response's data attribute will be a Hash. All keys and values are represented as a String (even when the value in the configuration file is 'TRUE'). If a value is an empty string in the configuration file, it will be represented in the Hash as an empty String. If there is an error, an unsuccessful Response will be returned.

# File lib/fission/vm_configuration.rb, line 32
def config_data
  return Response.new :code => 1, :message => 'VM does not exist' unless @vm.exists?

  conf_file_response = @vm.conf_file
  return conf_file_response unless conf_file_response.successful?

  @conf_file_location = conf_file_response.data

  Response.new :code => 0, :data => parse_vm_config_file
end

Private Instance Methods

parse_line_data(line) click to toggle source

Internal: Splits and formats a single line from a VM configuration file into an Array.

Examples:

@vm_config.parse_line_data('foo = "bar"')

Returns an Array. The first item will be the left side of the '=' and the second item will be the right side. This will also strip any whitespace characters from the beginning or end of the provided line.

# File lib/fission/vm_configuration.rb, line 73
def parse_line_data(line)
  line.strip.gsub('"', '').split ' = '
end
parse_vm_config_file() click to toggle source

Internal: Parses the configuration file (i.e. '.vmx')

Examples:

@vm_config.parse_vm_config_file
# => { 'memsize' => '384', 'ethernet0.present' => 'TRUE',... }

Returns a Hash. All keys and values are represented as a String (even when the value in the conf file is 'TRUE'). If a value is an empty string in the configuration file, it will be represented in the Hash as an empty String.

# File lib/fission/vm_configuration.rb, line 55
def parse_vm_config_file
  File.readlines(@conf_file_location).inject({}) do |result, line|
    data = parse_line_data(line)
    result[data[0]] = (data[1].nil? ? '' : data[1])
    result
  end
end