1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ecloud/models/compute/node.rb

46 lines
1.3 KiB
Ruby
Raw Normal View History

module Fog
module Compute
class Ecloud
class Node < Fog::Ecloud::Model
2012-06-07 12:50:11 -04:00
identity :href
2012-06-07 12:50:11 -04:00
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
attribute :other_links, :aliases => :Links
attribute :ip_address, :aliases => :IpAddress
2012-06-07 12:50:11 -04:00
attribute :protocol, :aliases => :Protocol
attribute :port, :aliases => :Port, :type => :integer
attribute :enabled, :aliases => :Enabled, :type => :boolean
attribute :description, :aliases => :Description
2012-11-27 19:57:16 -05:00
def ready?
!self.name.nil?
end
2012-06-07 12:50:11 -04:00
def tasks
@tasks ||= Fog::Compute::Ecloud::Tasks.new(:service => service, :href => "/cloudapi/ecloud/tasks/virtualMachines/#{id}")
end
2012-06-07 12:50:11 -04:00
def delete
data = service.node_service_delete(href).body
self.service.tasks.new(data)
end
2012-06-07 12:50:11 -04:00
def edit(options)
options[:uri] = href
options[:description] ||= ""
options = {:name => name}.merge(options)
data = service.node_service_edit(options).body
task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])[0]
2012-06-07 12:50:11 -04:00
end
2012-11-27 19:57:16 -05:00
2012-06-07 12:50:11 -04:00
def id
href.scan(/\d+/)[0]
end
2012-11-27 19:57:16 -05:00
alias destroy delete
end
end
end
end