fog--fog/lib/fog/vcloud/models/compute/vapp.rb

54 lines
1.4 KiB
Ruby

require 'fog/vcloud/models/compute/helpers/status'
module Fog
module Vcloud
class Compute
class Vapp < Fog::Vcloud::Model
include Fog::Vcloud::Compute::Helpers::Status
identity :href, :aliases => :Href
attribute :links, :aliases => :Link, :type => :array
ignore_attributes :xmlns, :xmlns_i, :xmlns_xsi, :xmlns_xsd
attribute :name
attribute :type
attribute :status
attribute :description, :aliases => :Description
attribute :deployed, :type => :boolean
attribute :children, :aliases => :Children, :squash => :Vm
attribute :lease_settings, :aliases => :LeaseSettingsSection
attribute :network_configs, :aliases => :NetworkConfigSection
has_up :vdc
def servers
@servers ||= Fog::Vcloud::Compute::Servers.
new( :service => service,
:href => href,
:vapp => self
)
end
def networks
@networks ||= Fog::Vcloud::Compute::Networks.
new( :service => service,
:href => href
)
end
def ready?
reload_status # always ensure we have the correct status
status != '0'
end
private
def reload_status
vapp = service.get_vapp(href)
self.status = vapp.status
end
end
end
end
end