mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
54 lines
1.4 KiB
Ruby
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
|