mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
2990a6eba0
Added missing HostMetrics model that wraps Host.metrics OpaqueRef. conn = Fog::Compute.new({ :provider => 'XenServer', :xenserver_url => 'xenserver-test', :xenserver_username => 'root', :xenserver_password => 'secret', }) pp conn.hosts.first.metrics # => yields # <Fog::Compute::XenServer::HostMetrics # reference="OpaqueRef:161923b3-47e4-7f8c-8995-3030be9d58f8", # uuid="00d47697-3682-1e91-154b-00116a5b7878", # live=true, # memory_free="3311230976", # memory_total="4217688064", # other_config={}, # last_updated=2012-12-06 21:19:59 UTC # >
52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
require 'fog/core/model'
|
|
|
|
module Fog
|
|
module Compute
|
|
class XenServer
|
|
|
|
class Host < Fog::Model
|
|
# API Reference here:
|
|
# http://docs.vmd.citrix.com/XenServer/5.6.0/1.0/en_gb/api/?c=host
|
|
|
|
identity :reference
|
|
|
|
attribute :name, :aliases => :name_label
|
|
attribute :uuid
|
|
attribute :address
|
|
attribute :allowed_operations
|
|
attribute :enabled
|
|
attribute :hostname
|
|
attribute :__metrics, :aliases => :metrics
|
|
attribute :name_description
|
|
attribute :other_config
|
|
attribute :__pbds, :aliases => :PBDs
|
|
attribute :__pifs, :aliases => :PIFs
|
|
attribute :__resident_vms, :aliases => :resident_VMs
|
|
|
|
def pifs
|
|
__pifs.collect { |pif| connection.pifs.get pif }
|
|
end
|
|
|
|
def pbds
|
|
__pbds.collect { |pbd| connection.pbds.get pbd }
|
|
end
|
|
|
|
def resident_servers
|
|
__resident_vms.collect { |ref| connection.servers.get ref }
|
|
end
|
|
|
|
def resident_vms
|
|
resident_servers
|
|
end
|
|
|
|
def metrics
|
|
return nil unless __metrics
|
|
rec = connection.get_record(__metrics, 'host_metrics' )
|
|
Fog::Compute::XenServer::HostMetrics.new(rec)
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|