class Fission::VMConfiguration
Public Class Methods
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
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
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
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