2011-02-17 13:44:46 -05:00
|
|
|
module Fog
|
2011-06-16 19:28:54 -04:00
|
|
|
module Compute
|
|
|
|
class Ecloud
|
2011-02-17 13:44:46 -05:00
|
|
|
class Node < Fog::Ecloud::Model
|
2012-06-07 12:50:11 -04:00
|
|
|
identity :href
|
2011-02-17 13:44:46 -05:00
|
|
|
|
2012-06-07 12:50:11 -04:00
|
|
|
attribute :name, :aliases => :Name
|
|
|
|
attribute :type, :aliases => :Type
|
|
|
|
attribute :other_links, :aliases => :Links
|
2011-02-17 13:44:46 -05:00
|
|
|
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
|
2011-02-17 13:44:46 -05:00
|
|
|
attribute :description, :aliases => :Description
|
|
|
|
|
2012-06-07 12:50:11 -04:00
|
|
|
def tasks
|
|
|
|
@tasks ||= Fog::Compute::Ecloud::Tasks.new(:connection => connection, :href => "/cloudapi/ecloud/tasks/virtualMachines/#{id}")
|
2011-02-17 13:44:46 -05:00
|
|
|
end
|
|
|
|
|
2012-06-07 12:50:11 -04:00
|
|
|
def delete
|
|
|
|
data = connection.node_service_delete(href).body
|
|
|
|
task = Fog::Compute::Ecloud::Tasks.new(:connection => connection, :href => data[:href])[0]
|
2011-02-17 13:44:46 -05:00
|
|
|
end
|
|
|
|
|
2012-06-07 12:50:11 -04:00
|
|
|
def edit(options)
|
|
|
|
options[:uri] = href
|
|
|
|
options[:description] ||= ""
|
|
|
|
options = {:name => name}.merge(options)
|
|
|
|
data = connection.node_service_edit(options).body
|
|
|
|
task = Fog::Compute::Ecloud::Tasks.new(:connection => connection, :href => data[:href])[0]
|
|
|
|
end
|
|
|
|
|
|
|
|
def id
|
|
|
|
href.scan(/\d+/)[0]
|
2011-02-17 13:44:46 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|