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/row.rb

54 lines
1.4 KiB
Ruby
Raw Normal View History

2012-06-07 12:50:11 -04:00
module Fog
module Compute
class Ecloud
class Row < Fog::Ecloud::Model
identity :href
attribute :name, :aliases => :Name
attribute :type, :aliases => :Type
attribute :other_links, :aliases => :Links
attribute :index, :aliases => :Index
def groups
@groups = Fog::Compute::Ecloud::Groups.new(:connection => connection, :href => href)
end
def edit(options)
options[:uri] = href
connection.rows_edit(options).body
end
def move_up(options)
options[:uri] = href + "/action/moveup"
connection.rows_moveup(options).body
end
def move_down(options)
options[:uri] = href + "/action/movedown"
connection.rows_movedown(options).body
end
def delete
connection.rows_delete(href).body
end
def create_group(options = {})
options[:uri] = "/cloudapi/ecloud/layoutGroups/environments/#{environment_id}/action/createLayoutGroup"
options[:row_name] = name
options[:href] = href
data = connection.groups_create(options).body
group = Fog::Compute::Ecloud::Groups.new(:connection => connection, :href => data[:href])[0]
end
def environment_id
other_links[:Link][:href].scan(/\d+/)[0]
end
def id
href.scan(/\d+/)[0]
end
end
end
end
end