mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
71 lines
2.8 KiB
Ruby
71 lines
2.8 KiB
Ruby
module Fog
|
|
module Compute
|
|
class Ecloud
|
|
class ComputePool < Fog::Ecloud::Model
|
|
|
|
identity :href
|
|
|
|
attribute :href, :aliases => :Href
|
|
attribute :name, :aliases => :Name
|
|
attribute :type, :aliases => :Type
|
|
attribute :other_links, :aliases => :Links, :squash => :Link
|
|
attribute :all_servers, :aliases => :VirtualMachines
|
|
attribute :purchased, :aliases => :Purchased
|
|
attribute :cpu_burst, :aliases => :CpuBurst
|
|
attribute :memory_burst, :aliases => :MemoryBurst
|
|
|
|
def servers
|
|
@servers ||= Fog::Compute::Ecloud::Servers.new( :service => service, :href => "/cloudapi/ecloud/virtualMachines/computePools/#{id}" )
|
|
end
|
|
|
|
def layout
|
|
@layout ||= Fog::Compute::Ecloud::Layouts.new(:service => service, :href => "/cloudapi/ecloud/layout/computePools/#{id}").first
|
|
end
|
|
|
|
def cpu_usage
|
|
# time ? query = "/details?time=#{Time.parse(time).utc.strftime('%Y-%m-%dT%H:%M:%SZ')}" : query = ""
|
|
@cpu_usage ||= Fog::Compute::Ecloud::CpuUsageDetailSummary.new(:service => service, :href => "/cloudapi/ecloud/computePools/#{id}/usage/cpu")
|
|
end
|
|
|
|
def memory_usage
|
|
# time ? query = "/details?time=#{Time.parse(time).utc.strftime('%Y-%m-%dT%H:%M:%SZ')}" : query = ""
|
|
@memory_usage ||= Fog::Compute::Ecloud::MemoryUsageDetailSummary.new(:service => service, :href => "/cloudapi/ecloud/computePools/#{id}/usage/memory")
|
|
end
|
|
|
|
def storage_usage
|
|
@storage_usage ||= Fog::Compute::Ecloud::StorageUsageDetailSummary.new(:service => service, :href => "/cloudapi/ecloud/computePools/#{id}/usage/storage")
|
|
end
|
|
|
|
def operating_system_families
|
|
@operating_system_families ||= Fog::Compute::Ecloud::OperatingSystemFamilies.new(:service => service, :href => "/cloudapi/ecloud/operatingSystemFamilies/computePools/#{id}")
|
|
end
|
|
|
|
def templates
|
|
@templates ||= self.service.templates(:href => "/cloudapi/ecloud/templates/computePools/#{id}")
|
|
end
|
|
|
|
def detached_disks
|
|
@detached_disks ||= self.service.detached_disks(:href => "/cloudapi/ecloud/detacheddisks/computepools/#{id}")
|
|
end
|
|
|
|
def environment
|
|
@environment ||= begin
|
|
reload unless other_links
|
|
environment_link = other_links.find{|l| l[:type] == "application/vnd.tmrk.cloud.environment"}
|
|
self.service.environments.get(environment_link[:href])
|
|
end
|
|
end
|
|
|
|
def edit(options)
|
|
options[:uri] = href
|
|
data = service.compute_pool_edit(options).body
|
|
pool = collection.from_data(data)
|
|
end
|
|
|
|
def id
|
|
href.scan(/\d+/)[0]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|