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