From: Michal Fojtik <[email protected]>
Signed-off-by: Michal fojtik <[email protected]> --- .../lib/deltacloud/drivers/rhevm/rhevm_client.rb | 6 +++++- .../lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 1 + .../lib/deltacloud/helpers/application_helper.rb | 1 + 3 files changed, 7 insertions(+), 1 deletions(-) diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb index cadaaff..c5ffebe 100644 --- a/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb +++ b/server/lib/deltacloud/drivers/rhevm/rhevm_client.rb @@ -197,7 +197,7 @@ module RHEVM class VM < BaseObject attr_reader :description, :status, :memory, :profile, :display, :host, :cluster, :template, :macs attr_reader :storage, :cores, :username, :creation_time - attr_reader :ip + attr_reader :ip, :vnc def initialize(client, xml) super(client, xml[:id], xml[:href], (xml/'name').first.text) @@ -227,6 +227,10 @@ module RHEVM @macs = (xml/'nics/nic/mac').collect { |mac| mac[:address] } @creation_time = (xml/'creation_time').text @ip = ((xml/'guest_info/ip').first[:address] rescue nil) + unless @ip + @vnc = ((xml/'display/address').first.text rescue "127.0.0.1") + @vnc += ":#{((xml/'display/port').first.text rescue "5890")}" + end end end diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb index c0087e8..832620a 100644 --- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb +++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb @@ -213,6 +213,7 @@ class RHEVMDriver < Deltacloud::BaseDriver # If everything fails fallback to report MAC address public_addresses = inst.macs if public_addresses.empty? public_addresses.flatten! + public_addresses << inst.vnc if inst.vnc Instance.new( :id => inst.id, :name => inst.name, diff --git a/server/lib/deltacloud/helpers/application_helper.rb b/server/lib/deltacloud/helpers/application_helper.rb index 37bfec4..4b13d48 100644 --- a/server/lib/deltacloud/helpers/application_helper.rb +++ b/server/lib/deltacloud/helpers/application_helper.rb @@ -250,6 +250,7 @@ module ApplicationHelper def address_type(address) case address when /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?$/; :ipv4 + when /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?:([\-\d]+)$/; :vnc when /^(\S{1,2}:\S{1,2}:\S{1,2}:\S{1,2}:\S{1,2}:\S{1,2})?$/; :mac else :hostname end -- 1.7.4.1
